Fix AutoMend bugs and close #786

This commit is contained in:
Bella 2020-05-07 11:21:04 -04:00
parent 7396b50bcc
commit 2efdf0663f
No known key found for this signature in database
GPG Key ID: DBD4A6030080C8B3
1 changed files with 14 additions and 4 deletions

View File

@ -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 })
}