From 9fff15529cfdb8f6eec8d252bfae9a04c31a220f Mon Sep 17 00:00:00 2001 From: Bella Date: Tue, 7 Apr 2020 10:26:24 -0400 Subject: [PATCH] fixed automend and closed #242 --- .../combat/{AutoExp.java => AutoMend.java} | 58 ++++++++++--------- 1 file changed, 31 insertions(+), 27 deletions(-) rename src/main/java/me/zeroeightsix/kami/module/modules/combat/{AutoExp.java => AutoMend.java} (51%) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoExp.java b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java similarity index 51% rename from src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoExp.java rename to src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java index 4e352128..b91088db 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoExp.java +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.java @@ -9,22 +9,25 @@ import me.zeroeightsix.kami.setting.Setting; import me.zeroeightsix.kami.setting.Settings; import net.minecraft.init.Items; +import static me.zeroeightsix.kami.util.InfoCalculator.reverseNumber; + /** * Created 17 October 2019 by hub * Updated 21 November 2019 by hub + * Updated by S-B99 on 07/04/20 */ -@Module.Info(name = "AutoExp", category = Module.Category.COMBAT, description = "Automatically mends armour") -public class AutoExp extends Module { +@Module.Info(name = "AutoMend", category = Module.Category.COMBAT, description = "Automatically mends armour") +public class AutoMend extends Module { private Setting autoThrow = register(Settings.b("Auto Throw", true)); private Setting autoSwitch = register(Settings.b("Auto Switch", true)); - private Setting autoDisable = register(Settings.booleanBuilder("Auto Disable").withValue(true).withVisibility(o -> autoSwitch.getValue()).build()); + private Setting autoDisable = register(Settings.booleanBuilder("Auto Disable").withValue(false).withVisibility(o -> autoSwitch.getValue()).build()); + private Setting threshold = register(Settings.integerBuilder("Repair %").withMinimum(1).withMaximum(100).withValue(75)); private int initHotbarSlot = -1; @EventHandler - private Listener receiveListener = new Listener<>(event -> - { + private Listener receiveListener = new Listener<>(event -> { if (mc.player != null && (mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE)) { mc.rightClickDelayTimer = 0; } @@ -32,10 +35,7 @@ public class AutoExp extends Module { @Override protected void onEnable() { - - if (mc.player == null) { - return; - } + if (mc.player == null) return; if (autoSwitch.getValue()) { initHotbarSlot = mc.player.inventory.currentItem; @@ -45,10 +45,7 @@ public class AutoExp extends Module { @Override protected void onDisable() { - - if (mc.player == null) { - return; - } + if (mc.player == null) return; if (autoSwitch.getValue()) { if (initHotbarSlot != -1 && initHotbarSlot != mc.player.inventory.currentItem) { @@ -60,25 +57,25 @@ public class AutoExp extends Module { @Override public void onUpdate() { + if (mc.player == null) return; - if (mc.player == null) { - return; - } + if (shouldMend(0) || shouldMend(1) || shouldMend(2) || shouldMend(3)) { - if (autoSwitch.getValue() && (mc.player.getHeldItemMainhand().getItem() != Items.EXPERIENCE_BOTTLE)) { - int xpSlot = findXpPots(); - if (xpSlot == -1) { - if (autoDisable.getValue()) { - Command.sendWarningMessage(getChatName() + " No XP in hotbar, disabling"); - disable(); + if (autoSwitch.getValue() && (mc.player.getHeldItemMainhand().getItem() != Items.EXPERIENCE_BOTTLE)) { + int xpSlot = findXpPots(); + if (xpSlot == -1) { + if (autoDisable.getValue()) { + Command.sendWarningMessage(getChatName() + " No XP in hotbar, disabling"); + disable(); + } + return; } - return; + mc.player.inventory.currentItem = xpSlot; } - mc.player.inventory.currentItem = xpSlot; - } - if (autoThrow.getValue() && mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE) { - mc.rightClickMouse(); + if (autoThrow.getValue() && mc.player.getHeldItemMainhand().getItem() == Items.EXPERIENCE_BOTTLE) { + mc.rightClickMouse(); + } } } @@ -94,4 +91,11 @@ public class AutoExp extends Module { return slot; } + private boolean shouldMend(int i) { // (100 * damage / max damage) >= (100 - 70) + if (mc.player.inventory.armorInventory.get(i).getMaxDamage() == 0) return false; + return (100 * mc.player.inventory.armorInventory.get(i).getItemDamage()) + / mc.player.inventory.armorInventory.get(i).getMaxDamage() + > reverseNumber(threshold.getValue(), 1, 100); + } + }