Исходник HolyWorld Helper | Excellent

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

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

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

Спасибо!

SS - прост юзает предмет из инвентаря


CODE:
package dev.excellent.client.module.impl.misc;

import dev.excellent.api.event.impl.input.KeyboardPressEvent;
import dev.excellent.api.event.impl.input.MouseInputEvent;
import dev.excellent.api.event.impl.player.UpdateEvent;
import dev.excellent.api.event.impl.server.PacketEvent;
import dev.excellent.api.interfaces.event.Listener;
import dev.excellent.client.module.api.Category;
import dev.excellent.client.module.api.Module;
import dev.excellent.client.module.api.ModuleInfo;
import dev.excellent.client.script.ScriptConstructor;
import dev.excellent.impl.util.pattern.Singleton;
import dev.excellent.impl.util.player.InvUtil;
import dev.excellent.impl.value.impl.KeyValue;
import net.minecraft.item.AirItem;
import net.minecraft.item.Item;
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;

@ModuleInfo(name = "HolyWorld Helper", description = "Помощник для холиворлда", category = Category.MISC)
public class HolyWorldHelper extends Module {
    public static Singleton<FunTimeHelper> singleton = Singleton.create(() -> Module.link(FunTimeHelper.class));
    private final KeyValue useFireCharge = new KeyValue("Исп Штучку", this, -1);
    private final KeyValue useNetherStar = new KeyValue("Исп Стан", this, -1);
    private final KeyValue usePrismarineShard = new KeyValue("Исп Трапку", this, -1);
    private final ScriptConstructor scriptConstructor = ScriptConstructor.create();
    private final InvUtil.Hand handUtil = new InvUtil.Hand();
    private long delay;

    @Override
    public void onDisable() {
        super.onDisable();
        delay = 0;
    }

    private final Listener<KeyboardPressEvent> onKey = event -> {
        if (event.getKeyCode() == useFireCharge.getValue()) {
            useItemFromInventory(ItemType.BLAZE_ROD);
        }
        if (event.getKeyCode() == useNetherStar.getValue()) {
            useItemFromInventory(ItemType.NETHER_STAR);
        }
        if (event.getKeyCode() == usePrismarineShard.getValue()) {
            useItemFromInventory(ItemType.PRISMARINE_SHARD);
        }
    };

    private final Listener<MouseInputEvent> onMouse = event -> {
        if (event.getMouseButton() == useFireCharge.getValue()) {
            useItemFromInventory(ItemType.BLAZE_ROD);
        }
        if (event.getMouseButton() == useNetherStar.getValue()) {
            useItemFromInventory(ItemType.NETHER_STAR);
        }
        if (event.getMouseButton() == usePrismarineShard.getValue()) {
            useItemFromInventory(ItemType.PRISMARINE_SHARD);
        }
    };

    private final Listener<PacketEvent> packet = handUtil::onEventPacket;
    private final Listener<UpdateEvent> update = event -> {
        scriptConstructor.update();
        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    };

    public void useItemFromInventory(ItemType itemType) {
        scriptConstructor.cleanup().addStep(0, () -> {
            switch (itemType) {
                case BLAZE_ROD -> findAndUseItem("взрывная палочка", Items.BLAZE_ROD);
                case NETHER_STAR -> findAndUseItem("оглушение", Items.NETHER_STAR);
                case PRISMARINE_SHARD -> findAndUseItem("взрывная трапка", Items.PRISMARINE_SHARD);
            }
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
        });
    }

    private void findAndUseItem(String name, Item item) {
        int hbSlot = getItemForName(name, true);
        int invSlot = getItemForName(name, false);

        if (invSlot == -1 && hbSlot == -1) {
            return;
        }

        if (!mc.player.getCooldownTracker().hasCooldown(item)) {
            int old = mc.player.inventory.currentItem;
            int slot = findAndTrowItem(hbSlot, invSlot);
            if (slot > 8) {
                mc.playerController.pickItem(slot);
            }
            if (InvUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                mc.player.inventory.currentItem = old;
            }
        }
    }

    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;
    }

    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;
    }

    public enum ItemType {
        BLAZE_ROD, NETHER_STAR, PRISMARINE_SHARD
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
31 Дек 2020
Сообщения
302
Реакции[?]
14
Поинты[?]
3K
SS - прост юзает предмет из инвентаря


CODE:
package dev.excellent.client.module.impl.misc;

import dev.excellent.api.event.impl.input.KeyboardPressEvent;
import dev.excellent.api.event.impl.input.MouseInputEvent;
import dev.excellent.api.event.impl.player.UpdateEvent;
import dev.excellent.api.event.impl.server.PacketEvent;
import dev.excellent.api.interfaces.event.Listener;
import dev.excellent.client.module.api.Category;
import dev.excellent.client.module.api.Module;
import dev.excellent.client.module.api.ModuleInfo;
import dev.excellent.client.script.ScriptConstructor;
import dev.excellent.impl.util.pattern.Singleton;
import dev.excellent.impl.util.player.InvUtil;
import dev.excellent.impl.value.impl.KeyValue;
import net.minecraft.item.AirItem;
import net.minecraft.item.Item;
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;

@ModuleInfo(name = "HolyWorld Helper", description = "Помощник для холиворлда", category = Category.MISC)
public class HolyWorldHelper extends Module {
    public static Singleton<FunTimeHelper> singleton = Singleton.create(() -> Module.link(FunTimeHelper.class));
    private final KeyValue useFireCharge = new KeyValue("Исп Штучку", this, -1);
    private final KeyValue useNetherStar = new KeyValue("Исп Стан", this, -1);
    private final KeyValue usePrismarineShard = new KeyValue("Исп Трапку", this, -1);
    private final ScriptConstructor scriptConstructor = ScriptConstructor.create();
    private final InvUtil.Hand handUtil = new InvUtil.Hand();
    private long delay;

    @Override
    public void onDisable() {
        super.onDisable();
        delay = 0;
    }

    private final Listener<KeyboardPressEvent> onKey = event -> {
        if (event.getKeyCode() == useFireCharge.getValue()) {
            useItemFromInventory(ItemType.BLAZE_ROD);
        }
        if (event.getKeyCode() == useNetherStar.getValue()) {
            useItemFromInventory(ItemType.NETHER_STAR);
        }
        if (event.getKeyCode() == usePrismarineShard.getValue()) {
            useItemFromInventory(ItemType.PRISMARINE_SHARD);
        }
    };

    private final Listener<MouseInputEvent> onMouse = event -> {
        if (event.getMouseButton() == useFireCharge.getValue()) {
            useItemFromInventory(ItemType.BLAZE_ROD);
        }
        if (event.getMouseButton() == useNetherStar.getValue()) {
            useItemFromInventory(ItemType.NETHER_STAR);
        }
        if (event.getMouseButton() == usePrismarineShard.getValue()) {
            useItemFromInventory(ItemType.PRISMARINE_SHARD);
        }
    };

    private final Listener<PacketEvent> packet = handUtil::onEventPacket;
    private final Listener<UpdateEvent> update = event -> {
        scriptConstructor.update();
        this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
    };

    public void useItemFromInventory(ItemType itemType) {
        scriptConstructor.cleanup().addStep(0, () -> {
            switch (itemType) {
                case BLAZE_ROD -> findAndUseItem("взрывная палочка", Items.BLAZE_ROD);
                case NETHER_STAR -> findAndUseItem("оглушение", Items.NETHER_STAR);
                case PRISMARINE_SHARD -> findAndUseItem("взрывная трапка", Items.PRISMARINE_SHARD);
            }
            this.handUtil.handleItemChange(System.currentTimeMillis() - this.delay > 200L);
        });
    }

    private void findAndUseItem(String name, Item item) {
        int hbSlot = getItemForName(name, true);
        int invSlot = getItemForName(name, false);

        if (invSlot == -1 && hbSlot == -1) {
            return;
        }

        if (!mc.player.getCooldownTracker().hasCooldown(item)) {
            int old = mc.player.inventory.currentItem;
            int slot = findAndTrowItem(hbSlot, invSlot);
            if (slot > 8) {
                mc.playerController.pickItem(slot);
            }
            if (InvUtil.findEmptySlot(true) != -1 && mc.player.inventory.currentItem != old) {
                mc.player.inventory.currentItem = old;
            }
        }
    }

    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;
    }

    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;
    }

    public enum ItemType {
        BLAZE_ROD, NETHER_STAR, PRISMARINE_SHARD
    }
}
вместо оглушение будет стан, если что
 
Сверху Снизу