Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос MaceSlotSwap

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Янв 2024
Сообщения
65
Реакции
1
Как можно сделать такую функцию которая сама с допустим меча переключается на булаву?

Я щас своего друна насиловал и он мне высрал чат лгбт код

По типу MaceSlotSwap должен работать так -
Пожалуйста, авторизуйтесь для просмотра ссылки.


jv:
Expand Collapse Copy
package akakiy.recode.features.modules.combat;

import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.packet.c2s.play.UpdateSelectedSlotC2SPacket;
import akakiy.recode.features.modules.Module;
import akakiy.recode.setting.Setting;

public class MaceSlotSwap extends Module {
    public MaceSlotSwap() {
        super("MaceSlotSwap", Category.COMBAT);
    }

    private final Setting<Integer> switchDelay = new Setting<>("SwitchDelay", 0, 0, 5);
    private final Setting<Mode> mode = new Setting<>("Mode", Mode.Normal);
    private int originalSlot = -1;
    private int maceSlot = -1;
    private boolean slotSwapped = false;
    private int attackTickCounter = 0;
    private boolean attackStarted = false;

    @Override
    public void onUpdate() {
        if (mc.player == null || mc.world == null) return;
        if (maceSlot == -1) {
            maceSlot = findMaceSlot();
        }
        if (maceSlot == -1) return;
        boolean isAttacking = mc.options.attackKey.isPressed();
        ItemStack currentItem = mc.player.getMainHandStack();
        boolean hasMaceInHand = !currentItem.isEmpty() && currentItem.getItem() == Items.MACE;
        if (isAttacking && !attackStarted) {
            attackStarted = true;
            attackTickCounter = 0;
        }

        if (attackStarted) {
            attackTickCounter++;
            
            if (!slotSwapped && attackTickCounter >= switchDelay.getValue() && !hasMaceInHand) {
                
                originalSlot = mc.player.getInventory().selectedSlot;
                
                
                switchToSlot(maceSlot);
                slotSwapped = true;
                
            } else if (slotSwapped && attackTickCounter >= switchDelay.getValue() + 1) {
                switchToSlot(originalSlot);
                
                slotSwapped = false;
                attackStarted = false;
                attackTickCounter = 0;
            }
        }
    }
    private void switchToSlot(int slot) {
        if (mode.getValue() == Mode.Packet) { 
            mc.getNetworkHandler().sendPacket(new UpdateSelectedSlotC2SPacket(slot));
        } else {
            mc.player.getInventory().selectedSlot = slot;
        }
    }
    private int findMaceSlot() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.getInventory().getStack(i);
            if (!stack.isEmpty() && stack.getItem() == Items.MACE) {
                return i;
            }
        }
        return -1;
    }
    private enum Mode {
        Packet, Normal
    }
}
 
Назад
Сверху Снизу