Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Часть функционала AutoSwap на рв | exp 3.1 & litka & night dlc | Подписывает шар

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
23 Сен 2024
Сообщения
326
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
 
=
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
сяб
 
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
вижу вижу куски моего старого свапа дружище, не с екзос вара случайно взял?? у него мой свап был
 
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
авто свап на 370 строк? а не многовато?
 
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
Да братан) Наговнокодил красава)

Если все в одну строку делается)
Text message = Text.empty().append(Text.literal("Свапнул на ").formatted(Formatting.GRAY)).append(itemStack.getName().copy().formatted(Formatting.WHITE));
 
Да братан) Наговнокодил красава)

Если все в одну строку делается)
Text message = Text.empty().append(Text.literal("Свапнул на ").formatted(Formatting.GRAY)).append(itemStack.getName().copy().formatted(Formatting.WHITE));
чатгпт так писать не умеет
 
Всем привет, сделал вот Auto Swap в котором если при свапе на определённый шар на Really World, то он подписывается тем или иным цветом, например "Пасхальное Яйцо" оно будет писаться жёлтым светом, для работы нужна система шрифтов от Excellent Recode 1.16.5, также ColorFormatting, короче вот Auto Swap:
AutoSwap:
Expand Collapse Copy
package vesencePackage.main.module.impl.combat;

import vesencePackage.events.EventKey;
import vesencePackage.events.EventUpdate;
import vesencePackage.main.component.impl.MovementManager;
import vesencePackage.main.module.api.Category;
import vesencePackage.main.module.api.Module;
import vesencePackage.main.module.api.ModuleRegister;
import vesencePackage.main.module.api.NotifySystem;
import vesencePackage.main.module.settings.impl.BindSetting;
import vesencePackage.main.module.settings.impl.BooleanSetting;
import vesencePackage.main.module.settings.impl.ModeSetting;
import vesencePackage.util.client.LockManager;
import vesencePackage.util.client.StopWatchShadow;
import vesencePackage.util.client.SwapHelpers;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;
import vesencePackage.util.display.text.ColorFormatting;

@ModuleRegister(
        name = "Auto Swap",
        type = Category.Combat,
        desc = "Автоматическая смена предмета в левой руке по бинду"
)
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private final SwapHelpers swaps = new SwapHelpers();
    private boolean swap;
    private boolean hand;
    public final StopWatchShadow swapWatch = new StopWatchShadow();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.hasTimeElapsed(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.getValue()) {
                    String itemName = getOffhandItemName();
                    if(itemName.contains("Тотем бессмертия")) {
                        NotifySystem.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else {
                        if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                            NotifySystem.NOTIFICATION_MANAGER.add(
                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                            ColorFormatting.getColor(173, 124, 87) + itemName,
                                    "",
                                    2
                            );
                       } else {
                            if(itemName.contains("Золотое яблоко")) {
                                NotifySystem.NOTIFICATION_MANAGER.add(
                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                ColorFormatting.getColor(255, 227, 156) + itemName,
                                        "",
                                        2
                                );
                            } else {
                                if(itemName.contains("Шар Огня")) {
                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                    ColorFormatting.getColor(255, 116, 94) + itemName,
                                            "",
                                            2
                                    );
                                } else {
                                    if(itemName.contains("Шар Воды")) {
                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                                "",
                                                2
                                        );
                                    } else {
                                        if(itemName.contains("Шар Земли")) {
                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                            ColorFormatting.getColor(255, 143, 69) + itemName,
                                                    "",
                                                    2
                                            );
                                        } else {
                                            if(itemName.contains("Шар Света")) {
                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                        "",
                                                        2
                                                );
                                            } else {
                                                if(itemName.contains("Шар Порядка")) {
                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                    ColorFormatting.getColor(236, 69, 255) + itemName,
                                                            "",
                                                            2
                                                    );
                                                } else {
                                                    if(itemName.contains("Шар Хаоса")) {
                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                                                "",
                                                                2
                                                        );
                                                    } else {
                                                        if(itemName.contains("Шар Хаоса")) {
                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                    "",
                                                                    2
                                                            );
                                                        } else {
                                                            if(itemName.contains("Шар Д.Хелпера")) {
                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                        "",
                                                                        2
                                                                );
                                                            } else {
                                                                if(itemName.contains("Тигринная голова")) {
                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                    ColorFormatting.getColor(255, 143, 69) + itemName,
                                                                            "",
                                                                            2
                                                                    );
                                                                } else {
                                                                    if(itemName.contains("Голова Дракулы")) {
                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                                                                "",
                                                                                2
                                                                        );
                                                                    } else {
                                                                        if(itemName.contains("Шар BUNNY")) {
                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                            ColorFormatting.getColor(115, 115, 115) + itemName,
                                                                                    "",
                                                                                    2
                                                                            );
                                                                        } else {
                                                                            if(itemName.contains("Пасхальное Яйцо")) {
                                                                                NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                        "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                ColorFormatting.getColor(255, 230, 69) + itemName,
                                                                                        "",
                                                                                        2
                                                                                );
                                                                            } else {
                                                                                if(itemName.contains("Голова Гидры")) {
                                                                                    NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                            "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                    ColorFormatting.getColor(92, 224, 83) + itemName,
                                                                                            "",
                                                                                            2
                                                                                    );
                                                                                } else {
                                                                                    if(itemName.contains("Голова Кобры")) {
                                                                                        NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                                                                                "",
                                                                                                2
                                                                                        );
                                                                                    } else {
                                                                                        if(itemName.contains("ШАР БОГА")) {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        } else {
                                                                                            NotifySystem.NOTIFICATION_MANAGER.add(
                                                                                                    "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                                                                                            ColorFormatting.getColor(255, 255, 255) + itemName,
                                                                                                    "",
                                                                                                    2
                                                                                            );
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.hasTimeElapsed(80)) {
                MovementManager.getInstance().unlockMovement("AutoSwap");
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.firstItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.getValue().equals("Шар")) {
                this.swap(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.getValue().equals("Золотое яблоко")) {
                this.swap(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.getValue().equals("Тотем")) {
                this.swap(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.getValue());
            } else if (this.secondItemSetting.getValue().equals("Щит")) {
                this.swap(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.getValue());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return this.swaps.find(item, false, onlyEnchanted);
        } else {
            return this.swaps.find(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swap(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.getValue()) {
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        if (LockManager.isLocked()) {
            this.swap = false;
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.getValue().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.getValue()) {
                String itemNameDisplay = getOffhandItemName();
                NotifySystem.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.getValue().equals("Новый")) {
            MovementManager.getInstance().lockMovement("AutoSwap");

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }
}

Кто сможет тот нормально перенесёт, всем удачи!
ща на литку деланем)
нате (только хз кому он надо немного raptor mini github copilot)
Код:
Expand Collapse Copy
package client.main.module.impl.combat;

import client.events.EventKey;
import client.events.EventUpdate;
import client.main.Client;
import client.main.module.api.Category;
import client.main.module.api.Module;
import client.main.module.api.ModuleRegister;
import client.main.module.api.NotifyNigt;
import client.main.module.settings.impl.BindSetting;
import client.main.module.settings.impl.BooleanSetting;
import client.main.module.settings.impl.ModeSetting;
import client.main.other.StopWatch;
import client.util.display.text.ColorFormatting;
import com.google.common.eventbus.Subscribe;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CCloseWindowPacket;

@ModuleRegister(name = "Auto Swap", type = Category.Combat, desc = "Автоматическая смена предмета в левой руке по бинду")
public class AutoSwap extends Module {
    private final ModeSetting mode = new ModeSetting("Мод свапа", "Стандарт", "Стандарт", "Новый");
    private final ModeSetting firstItemSetting = new ModeSetting("1-ый предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final ModeSetting secondItemSetting = new ModeSetting("2-ой предмет для свапа", "Шар", "Шар", "Золотое яблоко", "Щит", "Тотем");
    private final BindSetting bind = new BindSetting("Кнопка для свапа", -1);
    private final BooleanSetting swaprender = new BooleanSetting("Показывать на какой предмет произошёл свап", true);
    private final BooleanSetting onlyEnchanted = new BooleanSetting("Только зачарованные тотемы", false);

    public AutoSwap() {
        addSettings(mode, firstItemSetting, secondItemSetting, bind, swaprender, onlyEnchanted);
    }

    private boolean swap;
    private boolean hand;
    public final StopWatch swapWatch = new StopWatch();
    private boolean bypassActive;
    private boolean bypassSwapped;
    private int bypassSlot = -1;
    private String bypassItemName = "";

    @Subscribe
    public void update(EventUpdate event) {
        if (bypassActive) {
            if (swapWatch.finished(20) && !bypassSwapped && bypassSlot != -1) {
                mc.playerController.windowClick(0, bypassSlot < 9 ? bypassSlot + 36 : bypassSlot, 40, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CCloseWindowPacket());

                if (swaprender.get()) {
                    String itemName = getOffhandItemName();

                    if(itemName.contains("Тотем бессмертия")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 250, 85) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Щит") || itemName.contains("Цыганский щит")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(173, 124, 87) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Золотое яблоко")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 227, 156) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Огня")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 116, 94) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Воды")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(94, 116, 255) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Земли")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 143, 69) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Света")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 230, 69) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Порядка")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(236, 69, 255) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Хаоса")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(86, 21, 130) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар Д.Хелпера") || itemName.contains("Тигринная голова") || itemName.contains("Голова Дракулы")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 143, 69) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Шар BUNNY")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(115, 115, 115) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Пасхальное Яйцо")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 230, 69) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Голова Гидры")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(92, 224, 83) + itemName,
                                "",
                                2
                        );
                    } else if(itemName.contains("Голова Кобры")) {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(48, 130, 42) + itemName,
                                "",
                                2
                        );
                    } else {
                        NotifyNigt.NOTIFICATION_MANAGER.add(
                                "Auto Swap:" + ColorFormatting.getColor(65, 65, 65) + "  | " +
                                        ColorFormatting.getColor(255, 255, 255) + itemName,
                                "",
                                2
                        );
                    }
                }
                bypassSwapped = true;
            }

            if (swapWatch.finished(80)) {
                Client.getInstance().getModuleManager().getScreenWalk().tick = 0;
                bypassActive = false;
                bypassSwapped = false;
                bypassSlot = -1;
                bypassItemName = "";
            }
            return;
        }

        if (this.swap && this.hand) {
            if (this.firstItemSetting.get().equals("Шар")) {
                this.swapItem(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.firstItemSetting.get().equals("Тотем")) {
                this.swapItem(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.get());
            } else if (this.firstItemSetting.get().equals("Золотое яблоко")) {
                this.swapItem(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.firstItemSetting.get().equals("Щит")) {
                this.swapItem(Items.SHIELD, "Щит", false);
            }
            this.hand = false;
        }

        if (this.swap) {
            if (this.secondItemSetting.get().equals("Шар")) {
                this.swapItem(Items.PLAYER_HEAD, "Шар", false);
            } else if (this.secondItemSetting.get().equals("Золотое яблоко")) {
                this.swapItem(Items.GOLDEN_APPLE, "Золотое яблоко", false);
            } else if (this.secondItemSetting.get().equals("Тотем")) {
                this.swapItem(Items.TOTEM_OF_UNDYING, "Тотем", this.onlyEnchanted.get());
            } else if (this.secondItemSetting.get().equals("Щит")) {
                this.swapItem(Items.SHIELD, "Щит", false);
            }
            this.hand = true;
        }
    }

    @Subscribe
    public void input(EventKey event) {
        this.swap = event.isKeyDown(bind.get());
    }

    private boolean hasHeadOnHead() {
        return mc.player != null && mc.player.inventory != null &&
                mc.player.inventory.getStackInSlot(103).getItem() == Items.PLAYER_HEAD;
    }

    private boolean canSwapToItem(Item item) {
        if (item == Items.PLAYER_HEAD && hasHeadOnHead()) {
            return false;
        }
        return true;
    }

    private int findItemSlot(Item item, boolean onlyEnchanted) {
        if (item == Items.PLAYER_HEAD) {
            for (int i = 0; i < 36; i++) {
                if (i != 103 - 36) {
                    if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                        return i;
                    }
                }
            }
            return -1;
        } else if (item == Items.TOTEM_OF_UNDYING) {
            return getSlot(item) ;
        } else {
            return getSlot(item);
        }
    }

    private String getOffhandItemName() {
        if (mc.player == null || mc.player.inventory == null) return "Предмет";
        ItemStack offhandStack = mc.player.inventory.offHandInventory.get(0);
        if (offhandStack.isEmpty()) return "Пусто";
        return offhandStack.getDisplayName().getString();
    }

    private void swapItem(Item item, String itemName, boolean onlyEnchanted) {
        if (!canSwapToItem(item)) {
            this.swap = false;
            if (swaprender.get()) {
                NotifyNigt.NOTIFICATION_MANAGER.add(
                        "AutoSwap: Нельзя свапнуться на " + itemName + " (шар на голове)", "", 2
                );
            }
            return;
        }

        int slot = findItemSlot(item, onlyEnchanted);

        if (slot == -1) {
            this.swap = false;
            return;
        }

        if (this.mode.get().equals("Стандарт")) {
            mc.playerController.windowClick(
                    0,
                    slot < 9 ? slot + 36 : slot,
                    40,
                    ClickType.SWAP,
                    mc.player
            );

            mc.player.connection.sendPacket(new CCloseWindowPacket());

            if (swaprender.get()) {
                String itemNameDisplay = getOffhandItemName();
                NotifyNigt.NOTIFICATION_MANAGER.add(
                        "Произошёл свап!" + ColorFormatting.getColor(65,65,65) + "  | " +
                                ColorFormatting.getColor(138,204,84) + itemNameDisplay,
                        "",
                        2
                );
            }

            this.swap = false;
        }

        if (this.mode.get().equals("Новый")) {
            Client.getInstance().getModuleManager().getScreenWalk().tick = 1;

            bypassActive = true;
            bypassSwapped = false;
            bypassSlot = slot;

            swapWatch.reset();

            this.swap = false;
        }
    }

    public boolean isMoving() {
        return mc.player.moveForward != 0 || mc.player.moveStrafing != 0;
    }

    private int getSlot(Item item) {
        for (int i = 0; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() == item) {
                if (item == Items.TOTEM_OF_UNDYING && onlyEnchanted.get()) {
                    if (stack.isEnchanted()) return i;
                } else return i;
            }
        }
        return -1;
    }
}
 
Последнее редактирование:
Назад
Сверху Снизу