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

Вопрос Проблема с клик перлом expensive 2.0

  • Автор темы Автор темы okopkk
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Июн 2022
Сообщения
71
Реакции
0
Сделал чтобы перка кидалась с инва, а не только с хот бара, когда кидаю с хот бара все норм, но когда перка в инве, то меня просто кикает с сервера
Java:
Expand Collapse Copy
@FeatureInfo(
name = "MiddleClickPearl",
        type = Category.Util
)
public class MiddleClickPearl extends Feature {

public MiddleClickPearl() {

}

@Override
    public void onEvent(Event event) {
if (event instanceof EventMouseTick mouseTick) {
if (mouseTick.getButton() == 2) {
this.handleMiddleClick();
            }
}

}

private void handleMiddleClick() {
ItemStack enderPearlStack = findEnderPearlInInventory();
        if (enderPearlStack != null && !IMinecraft.mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
int pearlSlot = findSlotOfItemStack(enderPearlStack);
            if (pearlSlot != -1) {
sendHeldItemChangePacket(pearlSlot);
                useItem(Hand.MAIN_HAND);
                sendHeldItemChangePacket(IMinecraft.mc.player.inventory.currentItem);
            }
}
}

private ItemStack findEnderPearlInInventory() {
for (int i = 0; i < IMinecraft.mc.player.inventory.mainInventory.size(); i++) {
ItemStack stackInSlot = IMinecraft.mc.player.inventory.getStackInSlot(i);
            if (!stackInSlot.isEmpty() && stackInSlot.getItem() == Items.ENDER_PEARL) {
return stackInSlot;
            }
}
return null;
    }

private int findSlotOfItemStack(ItemStack stack) {
for (int i = 0; i < IMinecraft.mc.player.inventory.mainInventory.size(); i++) {
ItemStack stackInSlot = IMinecraft.mc.player.inventory.getStackInSlot(i);
            if (!stackInSlot.isEmpty() && ItemStack.areItemStacksEqual(stack, stackInSlot)) {
return i;
            }
}
return -1;
    }

private void sendHeldItemChangePacket(int itemSlot) {
IMinecraft.mc.player.connection.sendPacket(new CHeldItemChangePacket(itemSlot));
    }

private void useItem(Hand hand) {
IMinecraft.mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(hand));
    }
}
 
Назад
Сверху Снизу