diff --git a/CHANGELOG.md b/CHANGELOG.md index f602516e2..faaeaeb1b 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). by [@necauqua](https://github.com/necauqua) and [@Darkere](https://github.com/Darkere). - Fixed autocrafting task getting stuck if two tasks fulfilled each others requirements. - Fixed fluid autocrafting breaking when using 2 stacks of the same fluid in a pattern. +- Amount specifying screen is now limited to valid values. ## [v1.10.0-beta.4] - 2021-12-28 diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java index f2050d9e6..0e05c5371 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/AmountSpecifyingScreen.java @@ -64,6 +64,18 @@ public abstract class AmountSpecifyingScreen ex amountField.setTextColor(RenderSettings.INSTANCE.getSecondaryColor()); amountField.setCanLoseFocus(false); amountField.changeFocus(true); + amountField.setResponder(text -> { + int amount = 0; + try { + amount = Integer.parseInt(amountField.getText()); + } catch (NumberFormatException e) { + // NO OP + } + + if (amount > getMaxAmount()) { + amountField.setText(String.valueOf(getMaxAmount())); + } + }); addRenderableWidget(amountField); diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java index dce27f567..9a27f1840 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java @@ -205,7 +205,7 @@ public abstract class BaseScreen extends Abstra minecraft.player, slot.index, slot.getItem(), - slot.getMaxStackSize(), + Math.min(slot.getMaxStackSize(), slot.getItem().getMaxStackSize()), ((FilterSlot) slot).isAlternativesAllowed() ? (parent -> new AlternativesScreen( parent, minecraft.player,