Исходник Простой HWHelper | Expensive 3.1

Начинающий
Статус
Оффлайн
Регистрация
29 Фев 2024
Сообщения
52
Реакции[?]
0
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Вот вам простой HolyHelper
HWHelper.java:
//
//
//
//

package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventKey;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BindSetting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

@FunctionRegister(
        name = "HWHelper",
        type = Category.Misc,
)
public class HWHelper extends Function {
    private final ModeListSetting mode = new ModeListSetting("Тип", new BooleanSetting[]{new BooleanSetting("Использование по бинду", true), new BooleanSetting("Закрывать меню", true)});
    private final BindSetting fireKey = (new BindSetting("Кнопка взрывной штучки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting stanKey = (new BindSetting("Кнопка стана", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting trapKey = (new BindSetting("Кнопка взрывной трапки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean FireThrow;
    boolean trapThrow;
    boolean StanThrow;

    public HWHelper() {
        this.addSettings(new Setting[]{this.fireKey, this.trapKey, this.stanKey});
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == (Integer)this.fireKey.get()) {
            this.FireThrow = true;
        }

        if (e.getKey() == (Integer)this.stanKey.get()) {
            this.StanThrow = true;
        }

        if (e.getKey() == (Integer)this.trapKey.get()) {
            this.trapThrow = true;
        }

    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        int old;
        int invSlot;
        int hbSlot;
        if (this.FireThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            hbSlot = this.getItemForName("взрывная штучка", true);
            invSlot = this.getItemForName("взрывная штучка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная штучка не найдена!");
                this.FireThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
                this.print("Заюзал взрывную штучку!");
                old = this.findAndTrowItem(hbSlot, invSlot);
                if (old > 8) {
                    GriefHelper.mc.playerController.pickItem(old);
                }
            }

            this.FireThrow = false;
        }

        int slot;
        if (this.StanThrow) {
            hbSlot = this.getItemForName("стан", true);
            invSlot = this.getItemForName("стан", true);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Стан не найден!");
                this.StanThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                this.print("Заюзал стан!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.StanThrow = false;
        }

        if (this.trapThrow) {
            hbSlot = this.getItemForName("взрывная трапка", true);
            invSlot = this.getItemForName("взрывная трапка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная трапка не найдена!");
                this.trapThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                this.print("Заюзал взрывную трапку!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.trapThrow = false;
        }

        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }

    @Subscribe
    private void onPacket(EventPacket e) {
        this.handUtil.onEventPacket(e);
    }

    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            Minecraft.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        } else if (invSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            GriefHelper.mc.playerController.pickItem(invSlot);
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        } else {
            return -1;
        }
    }

    public void onDisable() {
        this.FireThrow = false;
        this.trapThrow = false;
        this.delay = 0L;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;

        for(int i = firstSlot; i < lastSlot; ++i) {
            ItemStack itemStack = Minecraft.player.inventory.getStackInSlot(i);
            String displayName;
            if (!(itemStack.getItem() instanceof AirItem) && (displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString())) != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }

        return -1;
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
3 Май 2024
Сообщения
182
Реакции[?]
0
Поинты[?]
0
В целом все круто, без говна, но это просто переделанный FTHelper, его любой мог сделать просто заменив предметы на нужные
 
Начинающий
Статус
Оффлайн
Регистрация
29 Фев 2024
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
В целом все круто, без говна, но это просто переделанный FTHelper, его любой мог сделать просто заменив предметы на нужные
Так то да, но это мой первый пост на югейме в исходниках :roflanEbalo:
 
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
222
Реакции[?]
4
Поинты[?]
1K
Вот вам простой HolyHelper
HWHelper.java:
//
//
//
//

package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventKey;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BindSetting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

@FunctionRegister(
        name = "HWHelper",
        type = Category.Misc,
)
public class HWHelper extends Function {
    private final ModeListSetting mode = new ModeListSetting("Тип", new BooleanSetting[]{new BooleanSetting("Использование по бинду", true), new BooleanSetting("Закрывать меню", true)});
    private final BindSetting fireKey = (new BindSetting("Кнопка взрывной штучки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting stanKey = (new BindSetting("Кнопка стана", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting trapKey = (new BindSetting("Кнопка взрывной трапки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean FireThrow;
    boolean trapThrow;
    boolean StanThrow;

    public HWHelper() {
        this.addSettings(new Setting[]{this.fireKey, this.trapKey, this.stanKey});
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == (Integer)this.fireKey.get()) {
            this.FireThrow = true;
        }

        if (e.getKey() == (Integer)this.stanKey.get()) {
            this.StanThrow = true;
        }

        if (e.getKey() == (Integer)this.trapKey.get()) {
            this.trapThrow = true;
        }

    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        int old;
        int invSlot;
        int hbSlot;
        if (this.FireThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            hbSlot = this.getItemForName("взрывная штучка", true);
            invSlot = this.getItemForName("взрывная штучка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная штучка не найдена!");
                this.FireThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
                this.print("Заюзал взрывную штучку!");
                old = this.findAndTrowItem(hbSlot, invSlot);
                if (old > 8) {
                    GriefHelper.mc.playerController.pickItem(old);
                }
            }

            this.FireThrow = false;
        }

        int slot;
        if (this.StanThrow) {
            hbSlot = this.getItemForName("стан", true);
            invSlot = this.getItemForName("стан", true);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Стан не найден!");
                this.StanThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                this.print("Заюзал стан!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.StanThrow = false;
        }

        if (this.trapThrow) {
            hbSlot = this.getItemForName("взрывная трапка", true);
            invSlot = this.getItemForName("взрывная трапка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная трапка не найдена!");
                this.trapThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                this.print("Заюзал взрывную трапку!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.trapThrow = false;
        }

        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }

    @Subscribe
    private void onPacket(EventPacket e) {
        this.handUtil.onEventPacket(e);
    }

    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            Minecraft.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        } else if (invSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            GriefHelper.mc.playerController.pickItem(invSlot);
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        } else {
            return -1;
        }
    }

    public void onDisable() {
        this.FireThrow = false;
        this.trapThrow = false;
        this.delay = 0L;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;

        for(int i = firstSlot; i < lastSlot; ++i) {
            ItemStack itemStack = Minecraft.player.inventory.getStackInSlot(i);
            String displayName;
            if (!(itemStack.getItem() instanceof AirItem) && (displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString())) != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }

        return -1;
    }
}
декомпилер забустил?)
 
Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Вот вам простой HolyHelper
HWHelper.java:
//
//
//
//

package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventKey;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BindSetting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

@FunctionRegister(
        name = "HWHelper",
        type = Category.Misc,
)
public class HWHelper extends Function {
    private final ModeListSetting mode = new ModeListSetting("Тип", new BooleanSetting[]{new BooleanSetting("Использование по бинду", true), new BooleanSetting("Закрывать меню", true)});
    private final BindSetting fireKey = (new BindSetting("Кнопка взрывной штучки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting stanKey = (new BindSetting("Кнопка стана", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting trapKey = (new BindSetting("Кнопка взрывной трапки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean FireThrow;
    boolean trapThrow;
    boolean StanThrow;

    public HWHelper() {
        this.addSettings(new Setting[]{this.fireKey, this.trapKey, this.stanKey});
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == (Integer)this.fireKey.get()) {
            this.FireThrow = true;
        }

        if (e.getKey() == (Integer)this.stanKey.get()) {
            this.StanThrow = true;
        }

        if (e.getKey() == (Integer)this.trapKey.get()) {
            this.trapThrow = true;
        }

    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        int old;
        int invSlot;
        int hbSlot;
        if (this.FireThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            hbSlot = this.getItemForName("взрывная штучка", true);
            invSlot = this.getItemForName("взрывная штучка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная штучка не найдена!");
                this.FireThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
                this.print("Заюзал взрывную штучку!");
                old = this.findAndTrowItem(hbSlot, invSlot);
                if (old > 8) {
                    GriefHelper.mc.playerController.pickItem(old);
                }
            }

            this.FireThrow = false;
        }

        int slot;
        if (this.StanThrow) {
            hbSlot = this.getItemForName("стан", true);
            invSlot = this.getItemForName("стан", true);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Стан не найден!");
                this.StanThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                this.print("Заюзал стан!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.StanThrow = false;
        }

        if (this.trapThrow) {
            hbSlot = this.getItemForName("взрывная трапка", true);
            invSlot = this.getItemForName("взрывная трапка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная трапка не найдена!");
                this.trapThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                this.print("Заюзал взрывную трапку!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.trapThrow = false;
        }

        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }

    @Subscribe
    private void onPacket(EventPacket e) {
        this.handUtil.onEventPacket(e);
    }

    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            Minecraft.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        } else if (invSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            GriefHelper.mc.playerController.pickItem(invSlot);
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        } else {
            return -1;
        }
    }

    public void onDisable() {
        this.FireThrow = false;
        this.trapThrow = false;
        this.delay = 0L;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;

        for(int i = firstSlot; i < lastSlot; ++i) {
            ItemStack itemStack = Minecraft.player.inventory.getStackInSlot(i);
            String displayName;
            if (!(itemStack.getItem() instanceof AirItem) && (displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString())) != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }

        return -1;
    }
}
Не ужели с netreex`а взял:coldsweat:
 
Начинающий
Статус
Оффлайн
Регистрация
16 Дек 2023
Сообщения
494
Реакции[?]
8
Поинты[?]
4K
Вот вам простой HolyHelper
HWHelper.java:
//
//
//
//

package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventKey;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BindSetting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

@FunctionRegister(
        name = "HWHelper",
        type = Category.Misc,
)
public class HWHelper extends Function {
    private final ModeListSetting mode = new ModeListSetting("Тип", new BooleanSetting[]{new BooleanSetting("Использование по бинду", true), new BooleanSetting("Закрывать меню", true)});
    private final BindSetting fireKey = (new BindSetting("Кнопка взрывной штучки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting stanKey = (new BindSetting("Кнопка стана", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting trapKey = (new BindSetting("Кнопка взрывной трапки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean FireThrow;
    boolean trapThrow;
    boolean StanThrow;

    public HWHelper() {
        this.addSettings(new Setting[]{this.fireKey, this.trapKey, this.stanKey});
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == (Integer)this.fireKey.get()) {
            this.FireThrow = true;
        }

        if (e.getKey() == (Integer)this.stanKey.get()) {
            this.StanThrow = true;
        }

        if (e.getKey() == (Integer)this.trapKey.get()) {
            this.trapThrow = true;
        }

    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        int old;
        int invSlot;
        int hbSlot;
        if (this.FireThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            hbSlot = this.getItemForName("взрывная штучка", true);
            invSlot = this.getItemForName("взрывная штучка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная штучка не найдена!");
                this.FireThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
                this.print("Заюзал взрывную штучку!");
                old = this.findAndTrowItem(hbSlot, invSlot);
                if (old > 8) {
                    GriefHelper.mc.playerController.pickItem(old);
                }
            }

            this.FireThrow = false;
        }

        int slot;
        if (this.StanThrow) {
            hbSlot = this.getItemForName("стан", true);
            invSlot = this.getItemForName("стан", true);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Стан не найден!");
                this.StanThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                this.print("Заюзал стан!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.StanThrow = false;
        }

        if (this.trapThrow) {
            hbSlot = this.getItemForName("взрывная трапка", true);
            invSlot = this.getItemForName("взрывная трапка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная трапка не найдена!");
                this.trapThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                this.print("Заюзал взрывную трапку!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.trapThrow = false;
        }

        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }

    @Subscribe
    private void onPacket(EventPacket e) {
        this.handUtil.onEventPacket(e);
    }

    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            Minecraft.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        } else if (invSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            GriefHelper.mc.playerController.pickItem(invSlot);
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        } else {
            return -1;
        }
    }

    public void onDisable() {
        this.FireThrow = false;
        this.trapThrow = false;
        this.delay = 0L;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;

        for(int i = firstSlot; i < lastSlot; ++i) {
            ItemStack itemStack = Minecraft.player.inventory.getStackInSlot(i);
            String displayName;
            if (!(itemStack.getItem() instanceof AirItem) && (displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString())) != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }

        return -1;
    }
}
Тоже самое что и grief helper только с другими названиями предметов :roflanPominki:
 
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
827
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот вам простой HolyHelper
HWHelper.java:
//
//
//
//

package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventKey;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BindSetting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

@FunctionRegister(
        name = "HWHelper",
        type = Category.Misc,
)
public class HWHelper extends Function {
    private final ModeListSetting mode = new ModeListSetting("Тип", new BooleanSetting[]{new BooleanSetting("Использование по бинду", true), new BooleanSetting("Закрывать меню", true)});
    private final BindSetting fireKey = (new BindSetting("Кнопка взрывной штучки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting stanKey = (new BindSetting("Кнопка стана", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    private final BindSetting trapKey = (new BindSetting("Кнопка взрывной трапки", -1)).setVisible(() -> {
        return (Boolean)this.mode.getValueByName("Использование по бинду").get();
    });
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean FireThrow;
    boolean trapThrow;
    boolean StanThrow;

    public HWHelper() {
        this.addSettings(new Setting[]{this.fireKey, this.trapKey, this.stanKey});
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == (Integer)this.fireKey.get()) {
            this.FireThrow = true;
        }

        if (e.getKey() == (Integer)this.stanKey.get()) {
            this.StanThrow = true;
        }

        if (e.getKey() == (Integer)this.trapKey.get()) {
            this.trapThrow = true;
        }

    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        int old;
        int invSlot;
        int hbSlot;
        if (this.FireThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            hbSlot = this.getItemForName("взрывная штучка", true);
            invSlot = this.getItemForName("взрывная штучка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная штучка не найдена!");
                this.FireThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.FIRE_CHARGE)) {
                this.print("Заюзал взрывную штучку!");
                old = this.findAndTrowItem(hbSlot, invSlot);
                if (old > 8) {
                    GriefHelper.mc.playerController.pickItem(old);
                }
            }

            this.FireThrow = false;
        }

        int slot;
        if (this.StanThrow) {
            hbSlot = this.getItemForName("стан", true);
            invSlot = this.getItemForName("стан", true);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Стан не найден!");
                this.StanThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                this.print("Заюзал стан!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.StanThrow = false;
        }

        if (this.trapThrow) {
            hbSlot = this.getItemForName("взрывная трапка", true);
            invSlot = this.getItemForName("взрывная трапка", false);
            if (invSlot == -1 && hbSlot == -1) {
                this.print("Взрывная трапка не найдена!");
                this.trapThrow = false;
                return;
            }

            if (!Minecraft.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                this.print("Заюзал взрывную трапку!");
                old = Minecraft.player.inventory.currentItem;
                slot = this.findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    GriefHelper.mc.playerController.pickItem(slot);
                }

                if (InventoryUtil.findEmptySlot(true) != -1 && Minecraft.player.inventory.currentItem != old) {
                    Minecraft.player.inventory.currentItem = old;
                }
            }

            this.trapThrow = false;
        }

        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }

    @Subscribe
    private void onPacket(EventPacket e) {
        this.handUtil.onEventPacket(e);
    }

    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            Minecraft.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        } else if (invSlot != -1) {
            this.handUtil.setOriginalSlot(Minecraft.player.inventory.currentItem);
            GriefHelper.mc.playerController.pickItem(invSlot);
            Minecraft.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        } else {
            return -1;
        }
    }

    public void onDisable() {
        this.FireThrow = false;
        this.trapThrow = false;
        this.delay = 0L;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;

        for(int i = firstSlot; i < lastSlot; ++i) {
            ItemStack itemStack = Minecraft.player.inventory.getStackInSlot(i);
            String displayName;
            if (!(itemStack.getItem() instanceof AirItem) && (displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString())) != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }

        return -1;
    }
}
Java:
package fun.ellant.functions.impl.player;

import com.google.common.eventbus.Subscribe;
import fun.ellant.events.EventKey;
import fun.ellant.events.EventPacket;
import fun.ellant.events.EventUpdate;
import fun.ellant.functions.api.Category;
import fun.ellant.functions.api.Function;
import fun.ellant.functions.api.FunctionRegister;
import fun.ellant.functions.settings.impl.BindSetting;
import fun.ellant.functions.settings.impl.BooleanSetting;
import fun.ellant.functions.settings.impl.ModeListSetting;
import fun.ellant.utils.math.StopWatch;
import fun.ellant.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "HWHelper", type = Category.PLAYER, desc = "Юзает по нажатию кнопки предмет")
public class GriefHelper2 extends Function {

    private final ModeListSetting mode = new ModeListSetting("Тип",
            new BooleanSetting("Использование по бинду", true));

    private final BindSetting stanKey = new BindSetting("Кнопка стана", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting opitKey = new BindSetting("Кнопка пузыря опыта", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting vzrivtrapKey = new BindSetting("Кнопка взрывной трапки", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting flamepalkaKey = new BindSetting("Кнопка взрывной палочки", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting serkaKey = new BindSetting("Кнопка молочного зелья", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());

    final StopWatch stopWatch = new StopWatch();
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean stanThrow, opitThrow, vzrivtrapkaThrow, flamepalkaThrow, serkaThrow;

    public GriefHelper2() {
        addSettings(mode, stanKey, opitKey, vzrivtrapKey, flamepalkaKey, serkaKey);
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == stanKey.get()) {
            stanThrow = true;
        }
        if (e.getKey() == opitKey.get()) {
            opitThrow = true;
        }
        if (e.getKey() == vzrivtrapKey.get()) {
            vzrivtrapkaThrow = true;
        }
        if (e.getKey() == flamepalkaKey.get()) {
            flamepalkaThrow = true;
        }
        if (e.getKey() == serkaKey.get()) {
            serkaThrow = true;
        }
    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        if (stanThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("оглушение", true);
            int invSlot = getItemForName("оглушение", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Стан не найден!");
                stanThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                print("Использовал стан!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            stanThrow = false;
        }
        if (opitThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("пузырь опыта", true);
            int invSlot = getItemForName("пузырь опыта", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Пузырь опыта не найден!");
                opitThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.EXPERIENCE_BOTTLE)) {
                print("Использовал пузырь с опытом!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            opitThrow = false;
        }
        if (vzrivtrapkaThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("взрывная трапка", true);
            int invSlot = getItemForName("взрывная трапка", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Взрывная трапка не найдена!");
                vzrivtrapkaThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                print("Заюзал взрывную трапку!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            vzrivtrapkaThrow = false;
        }
        if (flamepalkaThrow) {
            // САЛАТ СПАСАЙ
            int hbSlot = getItemForName("взрывная палочка", true); // мега поиск ящика
            int invSlot = getItemForName("взрывная палочка", false); // мега поиск ящика


            if (invSlot == -1 && hbSlot == -1) {
                print("Взрыв. палка не найдена!");
                flamepalkaThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.BLAZE_ROD)) {
                print("Использовал взрывную палочку!");
                int old = mc.player.inventory.currentItem;

                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
                if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                    mc.player.inventory.currentItem = old;
                }
            }
            flamepalkaThrow = false;
        }
        if (serkaThrow) {
            int hbSlot = getItemForName("молочно", true);
            int invSlot = getItemForName("молочно", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Молочное зелье не найдено");
                serkaThrow = false;
                return;
            }


            if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
                print("Использовал молочное зелье!");
                int old = mc.player.inventory.currentItem;

                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
                if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                    mc.player.inventory.currentItem = old;
                }
            }
            serkaThrow = false;
        }
        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }


    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(mc.player.inventory.currentItem);
            mc.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            mc.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        }
        if (invSlot != -1) {
            handUtil.setOriginalSlot(mc.player.inventory.currentItem);
            mc.playerController.pickItem(invSlot);
            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            mc.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        }
        return -1;
    }

    @Override
    public void onDisable() {
        flamepalkaThrow = false;
        vzrivtrapkaThrow = false;
        opitThrow = false;
        stanThrow = false;
        serkaThrow = false;
        delay = 0;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        for (int i = firstSlot; i < lastSlot; i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

            if (itemStack.getItem() instanceof AirItem) {
                continue;
            }

            String displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString());
            if (displayName != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }
        return -1;
    }
}
Эхх, так сложно добавить пару предметов..
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2023
Сообщения
58
Реакции[?]
2
Поинты[?]
2K
лол, а зачем вообще тут нужен onUpdate? Что мешало сделать все в ивенте нажатия клавиши?
 
Начинающий
Статус
Оффлайн
Регистрация
29 Фев 2024
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
Java:
package fun.ellant.functions.impl.player;

import com.google.common.eventbus.Subscribe;
import fun.ellant.events.EventKey;
import fun.ellant.events.EventPacket;
import fun.ellant.events.EventUpdate;
import fun.ellant.functions.api.Category;
import fun.ellant.functions.api.Function;
import fun.ellant.functions.api.FunctionRegister;
import fun.ellant.functions.settings.impl.BindSetting;
import fun.ellant.functions.settings.impl.BooleanSetting;
import fun.ellant.functions.settings.impl.ModeListSetting;
import fun.ellant.utils.math.StopWatch;
import fun.ellant.utils.player.InventoryUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.item.AirItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.network.play.server.SChatPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.TextFormatting;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@FunctionRegister(name = "HWHelper", type = Category.PLAYER, desc = "Юзает по нажатию кнопки предмет")
public class GriefHelper2 extends Function {

    private final ModeListSetting mode = new ModeListSetting("Тип",
            new BooleanSetting("Использование по бинду", true));

    private final BindSetting stanKey = new BindSetting("Кнопка стана", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting opitKey = new BindSetting("Кнопка пузыря опыта", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting vzrivtrapKey = new BindSetting("Кнопка взрывной трапки", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting flamepalkaKey = new BindSetting("Кнопка взрывной палочки", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());
    private final BindSetting serkaKey = new BindSetting("Кнопка молочного зелья", -1)
            .setVisible(() -> mode.getValueByName("Использование по бинду").get());

    final StopWatch stopWatch = new StopWatch();
    InventoryUtil.Hand handUtil = new InventoryUtil.Hand();
    long delay;
    boolean stanThrow, opitThrow, vzrivtrapkaThrow, flamepalkaThrow, serkaThrow;

    public GriefHelper2() {
        addSettings(mode, stanKey, opitKey, vzrivtrapKey, flamepalkaKey, serkaKey);
    }

    @Subscribe
    private void onKey(EventKey e) {
        if (e.getKey() == stanKey.get()) {
            stanThrow = true;
        }
        if (e.getKey() == opitKey.get()) {
            opitThrow = true;
        }
        if (e.getKey() == vzrivtrapKey.get()) {
            vzrivtrapkaThrow = true;
        }
        if (e.getKey() == flamepalkaKey.get()) {
            flamepalkaThrow = true;
        }
        if (e.getKey() == serkaKey.get()) {
            serkaThrow = true;
        }
    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        if (stanThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("оглушение", true);
            int invSlot = getItemForName("оглушение", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Стан не найден!");
                stanThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.NETHER_STAR)) {
                print("Использовал стан!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            stanThrow = false;
        }
        if (opitThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("пузырь опыта", true);
            int invSlot = getItemForName("пузырь опыта", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Пузырь опыта не найден!");
                opitThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.EXPERIENCE_BOTTLE)) {
                print("Использовал пузырь с опытом!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            opitThrow = false;
        }
        if (vzrivtrapkaThrow) {
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
            int hbSlot = getItemForName("взрывная трапка", true);
            int invSlot = getItemForName("взрывная трапка", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Взрывная трапка не найдена!");
                vzrivtrapkaThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.PRISMARINE_SHARD)) {
                print("Заюзал взрывную трапку!");
                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
            }
            vzrivtrapkaThrow = false;
        }
        if (flamepalkaThrow) {
            // САЛАТ СПАСАЙ
            int hbSlot = getItemForName("взрывная палочка", true); // мега поиск ящика
            int invSlot = getItemForName("взрывная палочка", false); // мега поиск ящика


            if (invSlot == -1 && hbSlot == -1) {
                print("Взрыв. палка не найдена!");
                flamepalkaThrow = false;
                return;
            }

            if (!mc.player.getCooldownTracker().hasCooldown(Items.BLAZE_ROD)) {
                print("Использовал взрывную палочку!");
                int old = mc.player.inventory.currentItem;

                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
                if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                    mc.player.inventory.currentItem = old;
                }
            }
            flamepalkaThrow = false;
        }
        if (serkaThrow) {
            int hbSlot = getItemForName("молочно", true);
            int invSlot = getItemForName("молочно", false);

            if (invSlot == -1 && hbSlot == -1) {
                print("Молочное зелье не найдено");
                serkaThrow = false;
                return;
            }


            if (!mc.player.getCooldownTracker().hasCooldown(Items.SPLASH_POTION)) {
                print("Использовал молочное зелье!");
                int old = mc.player.inventory.currentItem;

                int slot = findAndTrowItem(hbSlot, invSlot);
                if (slot > 8) {
                    mc.playerController.pickItem(slot);
                }
                if (InventoryUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                    mc.player.inventory.currentItem = old;
                }
            }
            serkaThrow = false;
        }
        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    }


    private int findAndTrowItem(int hbSlot, int invSlot) {
        if (hbSlot != -1) {
            this.handUtil.setOriginalSlot(mc.player.inventory.currentItem);
            mc.player.connection.sendPacket(new CHeldItemChangePacket(hbSlot));
            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            mc.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return hbSlot;
        }
        if (invSlot != -1) {
            handUtil.setOriginalSlot(mc.player.inventory.currentItem);
            mc.playerController.pickItem(invSlot);
            mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
            mc.player.swingArm(Hand.MAIN_HAND);
            this.delay = System.currentTimeMillis();
            return invSlot;
        }
        return -1;
    }

    @Override
    public void onDisable() {
        flamepalkaThrow = false;
        vzrivtrapkaThrow = false;
        opitThrow = false;
        stanThrow = false;
        serkaThrow = false;
        delay = 0;
        super.onDisable();
    }

    private int getItemForName(String name, boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        for (int i = firstSlot; i < lastSlot; i++) {
            ItemStack itemStack = mc.player.inventory.getStackInSlot(i);

            if (itemStack.getItem() instanceof AirItem) {
                continue;
            }

            String displayName = TextFormatting.getTextWithoutFormattingCodes(itemStack.getDisplayName().getString());
            if (displayName != null && displayName.toLowerCase().contains(name)) {
                return i;
            }
        }
        return -1;
    }
}
Эхх, так сложно добавить пару предметов..
Я самое нужное добавил только
 
Сверху Снизу