diff options
author | 2024-04-21 19:06:12 -0400 | |
---|---|---|
committer | 2024-04-21 19:06:12 -0400 | |
commit | 6f26fe46c2537d6a2438c3c4061d3ef8a6d5ff50 (patch) | |
tree | 309b17ff208cbe98a1a3749919d27b18bb379cef /src/main/java/org/chrisoft/trashyaddon | |
parent | 083ddabb85d0acab1127f2c70765ef76ad0631fb (diff) | |
download | meteor-trashy-addon-6f26fe46c2537d6a2438c3c4061d3ef8a6d5ff50.tar.xz |
Fix trading of items that can't be finished in one go.
Diffstat (limited to 'src/main/java/org/chrisoft/trashyaddon')
-rw-r--r-- | src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java b/src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java index 5cfacdc..07c6995 100644 --- a/src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java +++ b/src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.network.packet.s2c.play.ScreenHandlerSlotUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.SetTradeOffersS2CPacket; +import net.minecraft.screen.MerchantScreenHandler; import net.minecraft.village.TradeOffer; import net.minecraft.village.TradeOfferList; import org.chrisoft.trashyaddon.mixin.MerchantScreenAccessor; @@ -124,7 +125,7 @@ public class AutoTrade extends Module { .name("Interaction Rate") .description("Number of ticks between interactions.") .min(0) - .max(10) + .max(20) .build() ); private final Setting<Boolean> autoClose = sgGeneral.add(new BoolSetting.Builder() @@ -134,7 +135,7 @@ public class AutoTrade extends Module { ); private final Setting<Boolean> logSummary = sgGeneral.add(new BoolSetting.Builder() .name("Log Summary") - .description("Give a summary of what has been traded once it finishes trading.") + .description("Give a summary of what has been traded once trading is complete.") .build() ); @@ -270,7 +271,10 @@ public class AutoTrade extends Module { endTrading(); return; } - if (waitState != WaitState.None && currentOffer < offers.size() && offers.get(currentOffer).isDisabled()) { + if (waitState != WaitState.None && currentOffer < offers.size() && (offers.get(currentOffer).isDisabled() || + screen.getScreenHandler().slots.get(0).getStack().getCount() < offers.get(currentOffer).getAdjustedFirstBuyItem().getCount())) { + // the WaitingForInventoryUpdate state is mostly useless because ScreenHandlerSlotUpdateS2CPacket + // isn't sent after the shift-click... finalizeCurrentTrade(); waitState = WaitState.None; ticksRemaining = interactionRate.get(); |