Исходник AutoTotem - с minced 1.16.5 : )

Забаненный
Статус
Оффлайн
Регистрация
5 Окт 2023
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
О нет туски меня сватнит : )


AutoTotem:
import tusky.yougame.client.module.impl.combat.AutoTotem;
import tusky.yougame.client.setting.BooleanSetting;
import tusky.yougame.client.setting.NumberSetting;
import tusky.yougame.client.setting.TimerHelper;
import tusky.yougame.client.util.Fonts;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;

public class AutoTotem extends Module {
    private final BooleanSetting switchBack = new BooleanSetting("Swap Back", true, () -> true);
    private final BooleanSetting checkFall = new BooleanSetting("Check Fall", true, () -> true);
    private final BooleanSetting checkObsidian = new BooleanSetting("Check Obsidian", true, () -> true);
    private final NumberSetting swapBackDelay = new NumberSetting("Swap back delay", 100, 10, 500, 5, switchBack::getBoolValue);
    private final NumberSetting fallDistance = new NumberSetting("Fall Distance", 15.0f, 5.0f, 125.0f, 5.0f, checkFall::getBoolValue);
    private final NumberSetting obsidianDistance = new NumberSetting("Obsidian Distance", 6, 1, 8, 1, checkObsidian::getBoolValue);

    private final List<Integer> lastItem = new ArrayList<>();
    private final TimerHelper timerHelper = new TimerHelper();
    private boolean swap = false;
    private String previousTotem = "";
    private int lastTotemSlot = -1;

    public AutoTotem() {
        super("AutoTotem", Category.COMBAT);

        settings.add(switchBack);
        settings.add(checkFall);
        settings.add(checkObsidian);
        settings.add(swapBackDelay);
        settings.add(fallDistance);
        settings.add(obsidianDistance);
    }

    @Override
    public void onEnable() {
        if (mc.player != null && mc.world != null) {
            if (ModuleManager.isModuleEnabled("AutoCrystal")) {
                ChatUtil.printChatWithPrefix(TextFormatting.RED + "Отключите AutoCrystal перед использованием этого модуля, чтобы избежать потенциальных конфликтов!");
                toggle();
                return;
            }
            previousTotem = mc.player.getHeldItemOffhand().getItem().getRegistryName().toString();
        }
    }

    @Override
    public void onRender2D(EventRender2D event) {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                Fonts.minecraftFontRenderer.drawCenteredStringWithShadow(totemCount + "", (event.getResolution().getScaledWidth() / 2f + 19), (event.getResolution().getScaledHeight() / 2f), 0xFFFFFFFF);
                for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
                    ItemStack stack = mc.player.inventory.getStackInSlot(i);
                    if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                        GlStateManager.pushMatrix();
                        GlStateManager.disableBlend();
                        mc.getItemRenderer().renderItemAndEffectIntoGUI(stack, event.getResolution().getScaledWidth() / 2 + 4, event.getResolution().getScaledHeight() / 2 - 7);
                        GlStateManager.popMatrix();
                    }
                }
            }
        }
    }

    @Override
    public void onUpdate() {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                boolean totemChanged = updateTotemStatus(totemCount);

                if (mc.player.getHealth() < health.getNumberValue() || checkFall() || checkObsidian() && totemCount != 0 && mc.player.getHeldItemOffhand().isEmpty() && !mc.player.isHandActive()) {
                    int totemSlot = findTotemSlot();
                    if (totemSlot != -1 && totemSlot != lastTotemSlot) {
                        swapWithOffhand(totemSlot);
                        swap = true;
                        lastItem.clear();
                        lastItem.add(totemSlot);
                        lastTotemSlot = totemSlot;
                    }
                } else if (switchBack.getBoolValue() && swap && totemCount == 0 && !previousTotem.isEmpty() && totemChanged) {
                    if (!(mc.player.inventory.getStackInSlot(lastItem.get(0)).getItem() instanceof AirItem)) {
                        if (timerHelper.hasTimeElapsed(swapBackDelay.getNumberValue())) {
                            swapBack();
                            timerHelper.reset();
                            lastTotemSlot = -1;
                        }
                    }
                }
            }
        }
    }

    private int findTotemSlot() {
        List<Integer> totemSlots = new ArrayList<>();
        for (int i = 0; i < 45; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                totemSlots.add(i);
            }
        }
        if (totemSlots.isEmpty()) {
            return -1;
        } else {
            int randomIndex = new Random().nextInt(totemSlots.size());
            return totemSlots.get(randomIndex);
        }
    }

    private void swapWithOffhand(int slot) {
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 1, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player);
    }

    private void swapBack() {
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
    }

    private boolean checkFall() {
        return mc.player.fallDistance >= fallDistance.getNumberValue();
    }

    private boolean checkObsidian() {
        if (!checkObsidian.getBoolValue() || mc.objectMouseOver == null || mc.objectMouseOver.typeOfHit != RayTraceResult.Type.BLOCK) {
            return false;
        }

        BlockPos pos = mc.objectMouseOver.getBlockPos();
        Block block = mc.world.getBlockState(pos).getBlock();
        return block == Blocks.OBSIDIAN || block == Blocks.CRYING_OBSIDIAN;
    }

    @Override
    public void onDisable() {
        swap = false;
        lastItem.clear();
        previousTotem = "";
        lastTotemSlot = -1;
    }

    @Override
    public List<Setting<?>> getSettings() {
        return settings;
    }
}
 
эксперт в майнкрафт апи
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2023
Сообщения
247
Реакции[?]
115
Поинты[?]
14K
О нет туски меня сватнит : )


AutoTotem:
import tusky.yougame.client.module.impl.combat.AutoTotem;
import tusky.yougame.client.setting.BooleanSetting;
import tusky.yougame.client.setting.NumberSetting;
import tusky.yougame.client.setting.TimerHelper;
import tusky.yougame.client.util.Fonts;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;

public class AutoTotem extends Module {
    private final BooleanSetting switchBack = new BooleanSetting("Swap Back", true, () -> true);
    private final BooleanSetting checkFall = new BooleanSetting("Check Fall", true, () -> true);
    private final BooleanSetting checkObsidian = new BooleanSetting("Check Obsidian", true, () -> true);
    private final NumberSetting swapBackDelay = new NumberSetting("Swap back delay", 100, 10, 500, 5, switchBack::getBoolValue);
    private final NumberSetting fallDistance = new NumberSetting("Fall Distance", 15.0f, 5.0f, 125.0f, 5.0f, checkFall::getBoolValue);
    private final NumberSetting obsidianDistance = new NumberSetting("Obsidian Distance", 6, 1, 8, 1, checkObsidian::getBoolValue);

    private final List<Integer> lastItem = new ArrayList<>();
    private final TimerHelper timerHelper = new TimerHelper();
    private boolean swap = false;
    private String previousTotem = "";
    private int lastTotemSlot = -1;

    public AutoTotem() {
        super("AutoTotem", Category.COMBAT);

        settings.add(switchBack);
        settings.add(checkFall);
        settings.add(checkObsidian);
        settings.add(swapBackDelay);
        settings.add(fallDistance);
        settings.add(obsidianDistance);
    }

    @Override
    public void onEnable() {
        if (mc.player != null && mc.world != null) {
            if (ModuleManager.isModuleEnabled("AutoCrystal")) {
                ChatUtil.printChatWithPrefix(TextFormatting.RED + "Отключите AutoCrystal перед использованием этого модуля, чтобы избежать потенциальных конфликтов!");
                toggle();
                return;
            }
            previousTotem = mc.player.getHeldItemOffhand().getItem().getRegistryName().toString();
        }
    }

    @Override
    public void onRender2D(EventRender2D event) {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                Fonts.minecraftFontRenderer.drawCenteredStringWithShadow(totemCount + "", (event.getResolution().getScaledWidth() / 2f + 19), (event.getResolution().getScaledHeight() / 2f), 0xFFFFFFFF);
                for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
                    ItemStack stack = mc.player.inventory.getStackInSlot(i);
                    if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                        GlStateManager.pushMatrix();
                        GlStateManager.disableBlend();
                        mc.getItemRenderer().renderItemAndEffectIntoGUI(stack, event.getResolution().getScaledWidth() / 2 + 4, event.getResolution().getScaledHeight() / 2 - 7);
                        GlStateManager.popMatrix();
                    }
                }
            }
        }
    }

    @Override
    public void onUpdate() {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                boolean totemChanged = updateTotemStatus(totemCount);

                if (mc.player.getHealth() < health.getNumberValue() || checkFall() || checkObsidian() && totemCount != 0 && mc.player.getHeldItemOffhand().isEmpty() && !mc.player.isHandActive()) {
                    int totemSlot = findTotemSlot();
                    if (totemSlot != -1 && totemSlot != lastTotemSlot) {
                        swapWithOffhand(totemSlot);
                        swap = true;
                        lastItem.clear();
                        lastItem.add(totemSlot);
                        lastTotemSlot = totemSlot;
                    }
                } else if (switchBack.getBoolValue() && swap && totemCount == 0 && !previousTotem.isEmpty() && totemChanged) {
                    if (!(mc.player.inventory.getStackInSlot(lastItem.get(0)).getItem() instanceof AirItem)) {
                        if (timerHelper.hasTimeElapsed(swapBackDelay.getNumberValue())) {
                            swapBack();
                            timerHelper.reset();
                            lastTotemSlot = -1;
                        }
                    }
                }
            }
        }
    }

    private int findTotemSlot() {
        List<Integer> totemSlots = new ArrayList<>();
        for (int i = 0; i < 45; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                totemSlots.add(i);
            }
        }
        if (totemSlots.isEmpty()) {
            return -1;
        } else {
            int randomIndex = new Random().nextInt(totemSlots.size());
            return totemSlots.get(randomIndex);
        }
    }

    private void swapWithOffhand(int slot) {
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 1, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player);
    }

    private void swapBack() {
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
    }

    private boolean checkFall() {
        return mc.player.fallDistance >= fallDistance.getNumberValue();
    }

    private boolean checkObsidian() {
        if (!checkObsidian.getBoolValue() || mc.objectMouseOver == null || mc.objectMouseOver.typeOfHit != RayTraceResult.Type.BLOCK) {
            return false;
        }

        BlockPos pos = mc.objectMouseOver.getBlockPos();
        Block block = mc.world.getBlockState(pos).getBlock();
        return block == Blocks.OBSIDIAN || block == Blocks.CRYING_OBSIDIAN;
    }

    @Override
    public void onDisable() {
        swap = false;
        lastItem.clear();
        previousTotem = "";
        lastTotemSlot = -1;
    }

    @Override
    public List<Setting<?>> getSettings() {
        return settings;
    }
}
троксил реди?
 
эксперт в майнкрафт апи
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2023
Сообщения
247
Реакции[?]
115
Поинты[?]
14K
minced client
Read Only
Статус
Оффлайн
Регистрация
8 Май 2022
Сообщения
616
Реакции[?]
62
Поинты[?]
3K
О нет туски меня сватнит : )


AutoTotem:
import tusky.yougame.client.module.impl.combat.AutoTotem;
import tusky.yougame.client.setting.BooleanSetting;
import tusky.yougame.client.setting.NumberSetting;
import tusky.yougame.client.setting.TimerHelper;
import tusky.yougame.client.util.Fonts;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;

public class AutoTotem extends Module {
    private final BooleanSetting switchBack = new BooleanSetting("Swap Back", true, () -> true);
    private final BooleanSetting checkFall = new BooleanSetting("Check Fall", true, () -> true);
    private final BooleanSetting checkObsidian = new BooleanSetting("Check Obsidian", true, () -> true);
    private final NumberSetting swapBackDelay = new NumberSetting("Swap back delay", 100, 10, 500, 5, switchBack::getBoolValue);
    private final NumberSetting fallDistance = new NumberSetting("Fall Distance", 15.0f, 5.0f, 125.0f, 5.0f, checkFall::getBoolValue);
    private final NumberSetting obsidianDistance = new NumberSetting("Obsidian Distance", 6, 1, 8, 1, checkObsidian::getBoolValue);

    private final List<Integer> lastItem = new ArrayList<>();
    private final TimerHelper timerHelper = new TimerHelper();
    private boolean swap = false;
    private String previousTotem = "";
    private int lastTotemSlot = -1;

    public AutoTotem() {
        super("AutoTotem", Category.COMBAT);

        settings.add(switchBack);
        settings.add(checkFall);
        settings.add(checkObsidian);
        settings.add(swapBackDelay);
        settings.add(fallDistance);
        settings.add(obsidianDistance);
    }

    @Override
    public void onEnable() {
        if (mc.player != null && mc.world != null) {
            if (ModuleManager.isModuleEnabled("AutoCrystal")) {
                ChatUtil.printChatWithPrefix(TextFormatting.RED + "Отключите AutoCrystal перед использованием этого модуля, чтобы избежать потенциальных конфликтов!");
                toggle();
                return;
            }
            previousTotem = mc.player.getHeldItemOffhand().getItem().getRegistryName().toString();
        }
    }

    @Override
    public void onRender2D(EventRender2D event) {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                Fonts.minecraftFontRenderer.drawCenteredStringWithShadow(totemCount + "", (event.getResolution().getScaledWidth() / 2f + 19), (event.getResolution().getScaledHeight() / 2f), 0xFFFFFFFF);
                for (int i = 0; i < mc.player.inventory.getSizeInventory(); i++) {
                    ItemStack stack = mc.player.inventory.getStackInSlot(i);
                    if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                        GlStateManager.pushMatrix();
                        GlStateManager.disableBlend();
                        mc.getItemRenderer().renderItemAndEffectIntoGUI(stack, event.getResolution().getScaledWidth() / 2 + 4, event.getResolution().getScaledHeight() / 2 - 7);
                        GlStateManager.popMatrix();
                    }
                }
            }
        }
    }

    @Override
    public void onUpdate() {
        if (isEnabled()) {
            if (mc.player != null && mc.world != null) {
                int totemCount = foundTotemCount();
                boolean totemChanged = updateTotemStatus(totemCount);

                if (mc.player.getHealth() < health.getNumberValue() || checkFall() || checkObsidian() && totemCount != 0 && mc.player.getHeldItemOffhand().isEmpty() && !mc.player.isHandActive()) {
                    int totemSlot = findTotemSlot();
                    if (totemSlot != -1 && totemSlot != lastTotemSlot) {
                        swapWithOffhand(totemSlot);
                        swap = true;
                        lastItem.clear();
                        lastItem.add(totemSlot);
                        lastTotemSlot = totemSlot;
                    }
                } else if (switchBack.getBoolValue() && swap && totemCount == 0 && !previousTotem.isEmpty() && totemChanged) {
                    if (!(mc.player.inventory.getStackInSlot(lastItem.get(0)).getItem() instanceof AirItem)) {
                        if (timerHelper.hasTimeElapsed(swapBackDelay.getNumberValue())) {
                            swapBack();
                            timerHelper.reset();
                            lastTotemSlot = -1;
                        }
                    }
                }
            }
        }
    }

    private int findTotemSlot() {
        List<Integer> totemSlots = new ArrayList<>();
        for (int i = 0; i < 45; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == Items.TOTEM_OF_UNDYING) {
                totemSlots.add(i);
            }
        }
        if (totemSlots.isEmpty()) {
            return -1;
        } else {
            int randomIndex = new Random().nextInt(totemSlots.size());
            return totemSlots.get(randomIndex);
        }
    }

    private void swapWithOffhand(int slot) {
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 1, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, slot < 9 ? slot + 36 : slot, 0, ClickType.PICKUP, mc.player);
    }

    private void swapBack() {
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, 45, 0, ClickType.PICKUP, mc.player);
        mc.playerController.windowClick(0, lastItem.get(0) < 9 ? lastItem.get(0) + 36 : lastItem.get(0), 0, ClickType.PICKUP, mc.player);
    }

    private boolean checkFall() {
        return mc.player.fallDistance >= fallDistance.getNumberValue();
    }

    private boolean checkObsidian() {
        if (!checkObsidian.getBoolValue() || mc.objectMouseOver == null || mc.objectMouseOver.typeOfHit != RayTraceResult.Type.BLOCK) {
            return false;
        }

        BlockPos pos = mc.objectMouseOver.getBlockPos();
        Block block = mc.world.getBlockState(pos).getBlock();
        return block == Blocks.OBSIDIAN || block == Blocks.CRYING_OBSIDIAN;
    }

    @Override
    public void onDisable() {
        swap = false;
        lastItem.clear();
        previousTotem = "";
        lastTotemSlot = -1;
    }

    @Override
    public List<Setting<?>> getSettings() {
        return settings;
    }
}
На трохилл сойдет? Просто мне на трохилл надо, пробовал рич, но чет не то. Надеюсь поможешь -> tuskevichdog20
 
Забаненный
Статус
Оффлайн
Регистрация
5 Окт 2023
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
5 Окт 2023
Сообщения
3
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу