From 2efdf0663f7584e43dbd97c9de979d1d72b229ae Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 7 May 2020 11:21:04 -0400 Subject: [PATCH] Fix AutoMend bugs and close #786 --- .../kami/module/modules/combat/AutoMend.kt | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.kt b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.kt index b95a78c71..bacba7bfb 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.kt +++ b/src/main/java/me/zeroeightsix/kami/module/modules/combat/AutoMend.kt @@ -3,18 +3,21 @@ package me.zeroeightsix.kami.module.modules.combat import me.zero.alpine.listener.EventHandler import me.zero.alpine.listener.EventHook import me.zero.alpine.listener.Listener +import me.zeroeightsix.kami.event.events.GuiScreenEvent.Displayed import me.zeroeightsix.kami.event.events.PacketEvent import me.zeroeightsix.kami.module.Module import me.zeroeightsix.kami.setting.Settings import me.zeroeightsix.kami.util.MathsUtils.reverseNumber import me.zeroeightsix.kami.util.MessageSendHelper import net.minecraft.init.Items +import net.minecraft.util.EnumHand /** * Created 17 October 2019 by hub * Updated 21 November 2019 by hub - * Updated by dominikaaaa on 07/04/20 + * Rewritten by dominikaaaa on 07/04/20 + * Updated by dominikaaaa on 07/05/20 */ @Module.Info( name = "AutoMend", @@ -24,14 +27,17 @@ import net.minecraft.init.Items class AutoMend : Module() { private val autoThrow = register(Settings.b("Auto Throw", true)) private val autoSwitch = register(Settings.b("Auto Switch", true)) - private val autoDisable = register(Settings.booleanBuilder("Auto Disable").withValue(false).withVisibility { o: Boolean? -> autoSwitch.value }.build()) + private val autoDisable = register(Settings.booleanBuilder("Auto Disable").withValue(false).withVisibility { autoSwitch.value }.build()) private val threshold = register(Settings.integerBuilder("Repair %").withMinimum(1).withMaximum(100).withValue(75)) + private val fast = register(Settings.b("FastUse", true)) + private val gui = register(Settings.b("Run in GUIs", false)) private var initHotbarSlot = -1 + private var isGuiOpened = false @EventHandler private val receiveListener = Listener(EventHook { event: PacketEvent.Receive? -> - if (mc.player != null && mc.player.heldItemMainhand.getItem() === Items.EXPERIENCE_BOTTLE) { + if (mc.player != null && fast.value && mc.player.heldItemMainhand.getItem() === Items.EXPERIENCE_BOTTLE) { mc.rightClickDelayTimer = 0 } }) @@ -54,6 +60,7 @@ class AutoMend : Module() { override fun onUpdate() { if (mc.player == null) return + if (isGuiOpened && !gui.value) return if (shouldMend(0) || shouldMend(1) || shouldMend(2) || shouldMend(3)) { if (autoSwitch.value && mc.player.heldItemMainhand.getItem() !== Items.EXPERIENCE_BOTTLE) { @@ -69,7 +76,7 @@ class AutoMend : Module() { mc.player.inventory.currentItem = xpSlot } if (autoThrow.value && mc.player.heldItemMainhand.getItem() === Items.EXPERIENCE_BOTTLE) { - mc.rightClickMouse() + mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND) } } } @@ -89,4 +96,7 @@ class AutoMend : Module() { return if (mc.player.inventory.armorInventory[i].maxDamage == 0) false else 100 * mc.player.inventory.armorInventory[i].getItemDamage() / mc.player.inventory.armorInventory[i].maxDamage > reverseNumber(threshold.value, 1, 100) } + + @EventHandler + var listener = Listener(EventHook { event: Displayed -> isGuiOpened = event.screen != null }) } \ No newline at end of file