From db761445ba649293f9739a51ce0bb72fa143424a Mon Sep 17 00:00:00 2001 From: HausemasterIssue <90464553+HausemasterIssue@users.noreply.github.com> Date: Fri, 22 Oct 2021 14:52:43 -0400 Subject: [PATCH] autoeat rewrite --- .../client/module/modules/misc/AutoEat.java | 122 +++++++----------- 1 file changed, 45 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/gamesense/client/module/modules/misc/AutoEat.java b/src/main/java/com/gamesense/client/module/modules/misc/AutoEat.java index 2a28706fc..fdae5e7c6 100644 --- a/src/main/java/com/gamesense/client/module/modules/misc/AutoEat.java +++ b/src/main/java/com/gamesense/client/module/modules/misc/AutoEat.java @@ -1,19 +1,18 @@ package com.gamesense.client.module.modules.misc; import com.gamesense.api.setting.values.IntegerSetting; -import com.gamesense.api.util.player.PlayerUtil; import com.gamesense.client.module.Category; import com.gamesense.client.module.Module; import net.minecraft.client.settings.KeyBinding; -import net.minecraft.init.Items; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumHand; +import net.minecraft.util.FoodStats; /* * @author hausemasterissue -* @since 8/10/2021 -* creds to salhack (spidermod B)) for the code +* @since 22/10/2021 +* creds to catalyst src leak */ @Module.Declaration(name = "AutoEat", category = Category.Misc) @@ -22,82 +21,51 @@ public class AutoEat extends Module { IntegerSetting health = registerInteger("Health", 16, 1, 36); IntegerSetting hunger = registerInteger("Hunger", 8, 1, 36); - private boolean m_WasEating = false; - - @Override - protected void onDisable() - { - if (m_WasEating) - { - m_WasEating = false; + public boolean eating; + public int lastSlot; + + public void onUpdate() { + if(mc.player == null || mc.player == null) { + return; + } + + if (eating && !mc.player.isHandActive()) { + if (lastSlot != -1) { + mc.player.inventory.currentItem = lastSlot; + lastSlot = -1; + } + eating = false; KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), false); + return; + } + if (eating) { + return; + } + final FoodStats foodStats = mc.player.getFoodStats(); + if (isValid(mc.player.getHeldItemOffhand(), foodStats.getFoodLevel())) { + mc.player.setActiveHand(EnumHand.OFF_HAND); + eating = true; + KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); + mc.rightClickMouse(); } + else { + for (int i = 0; i < 9; ++i) { + if (isValid(mc.player.inventory.getStackInSlot(i), foodStats.getFoodLevel())) { + lastSlot = mc.player.inventory.currentItem; + mc.player.inventory.currentItem = i; + eating = true; + KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); + mc.rightClickMouse(); + return; + } + } + } + } + + public boolean isValid(final ItemStack itemStack, final int n) { + return mc.player.getHealth() <= health.getValue() || (itemStack.getItem() instanceof ItemFood && 20 - n >= ((ItemFood)itemStack.getItem()).getHealAmount(itemStack)); } - @Override - public void onUpdate() { - float l_Health = mc.player.getHealth() + mc.player.getAbsorptionAmount(); - - if (health.getValue() >= l_Health && PlayerUtil.IsEating()) - { - if (mc.player.getHeldItemMainhand().getItem() != Items.GOLDEN_APPLE) - { - for (int l_I = 0; l_I < 9; ++l_I) - { - if (mc.player.inventory.getStackInSlot(l_I).isEmpty() || mc.player.inventory.getStackInSlot(l_I).getItem() != Items.GOLDEN_APPLE) - continue; - - mc.player.inventory.currentItem = l_I; - mc.playerController.updateController(); - break; - } - - if (mc.currentScreen != null) - KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); - else - mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND); - - m_WasEating = true; - } - return; - } - - if (PlayerUtil.IsEating() && hunger.getValue() >= mc.player.getFoodStats().getFoodLevel()) - { - boolean l_CanEat = false; - - for (int l_I = 0; l_I < 9; ++l_I) - { - ItemStack l_Stack = mc.player.inventory.getStackInSlot(l_I); - - if (mc.player.inventory.getStackInSlot(l_I).isEmpty()) - continue; - - if (l_Stack.getItem() instanceof ItemFood) - { - l_CanEat = true; - mc.player.inventory.currentItem = l_I; - mc.playerController.updateController(); - break; - } - } - - if (l_CanEat) - { - if (mc.currentScreen != null) - KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); - else - mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND); - - m_WasEating = true; - } - } - - if (m_WasEating) - { - m_WasEating = false; - KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), false); - } - } + }