aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2024-04-21 19:06:12 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2024-04-21 19:06:12 -0400
commit6f26fe46c2537d6a2438c3c4061d3ef8a6d5ff50 (patch)
tree309b17ff208cbe98a1a3749919d27b18bb379cef
parent083ddabb85d0acab1127f2c70765ef76ad0631fb (diff)
downloadmeteor-trashy-addon-6f26fe46c2537d6a2438c3c4061d3ef8a6d5ff50.tar.xz
Fix trading of items that can't be finished in one go.
-rw-r--r--src/main/java/org/chrisoft/trashyaddon/modules/AutoTrade.java10
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();