• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Часть функционала ElytraFly Grim-2.3.69 Grim-2.3.71 EXP 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
2 Май 2025
Сообщения
63
Реакции
0
Выберите загрузчик игры
  1. Forge
  2. OptiFine
  3. Прочие моды
ElytraFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.InventoryUtil;
import im.expensive.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.*;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerPacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import java.util.concurrent.ThreadLocalRandom;

@FunctionRegister(name = "ElytraFly", type = Category.Movement)
public class ElytraFly extends Function {
    StopWatch stopWatch = new StopWatch();
    int oldSlot = -1;
    int bestSlot = -1;
    long delay;
    private int packetCounter = 0;

    private final ModeSetting mode = new ModeSetting("Mode", "Normal", "Normal", "Grim-2.3.69", "Grim-2.3.71");

    public ElytraFly() {
        addSettings(mode);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
        boolean slotNotNull = mc.player.inventory.getStackInSlot(bestSlot).getItem() != Items.AIR;
        int invSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, false);
        int hbSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, true);

        if (InventoryUtil.getInstance().getSlotInInventory(Items.FIREWORK_ROCKET) == -1) {
            return;
        }

        int elytraSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.ELYTRA, true);
        if (elytraSlot == -1) {
            IMinecraft.print("Возьмите элитру в хотбар.");
            toggle();
            return;
        }

        if (mc.player.isOnGround() && !mc.gameSettings.keyBindJump.pressed) {
            mc.gameSettings.keyBindJump.setPressed(true);
        }
        if (!mc.player.isInWater() && !mc.player.isOnGround() && !mc.player.isElytraFlying()) {
            if (!(mc.player.inventory.armorItemInSlot(2).getItem() instanceof ElytraItem)) {
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                if (this.stopWatch.isReached(500)) {
                    swapAndUseFireWorkFromInv(invSlot, hbSlot, slotNotNull);
                    this.stopWatch.reset();
                }
            } else if (bestSlot != -1){
                mc.playerController.windowClick(0, 6, bestSlot, ClickType.SWAP, mc.player);
            }
        }

        if (mode.is("Grim-2.3.69")) {
            handleGrim269();
        } else if (mode.is("Grim-2.3.71")) {
            handleGrim271();
        }
    }

    private void handleGrim269() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 3 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02
                );
            }

            if (packetCounter % 5 == 0) {
                for (int i = 0; i < 2; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.2) {
                double motionX = mc.player.getMotion().x * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionY = mc.player.getMotion().y * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionZ = mc.player.getMotion().z * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    private void handleGrim271() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 2 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03
                );
            }

            if (packetCounter % 4 == 0) {
                for (int i = 0; i < 3; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.3) {
                double motionX = mc.player.getMotion().x * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionY = mc.player.getMotion().y * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionZ = mc.player.getMotion().z * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    public static int findNullSlot() {
        for (int i = 0; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() instanceof AirItem) {
                if (i < 9) {
                    i += 36;
                }
                return i;
            }
        }
        return 999;
    }

    private void swapAndUseFireWorkFromInv(int slot, int hbSlot, boolean slotNotNull) {
        if (hbSlot == -1) {
            if (slot >= 0) {
                InventoryUtil.moveItem(slot, bestSlot + 36, slotNotNull);
                if (slotNotNull && oldSlot == -1) {
                    oldSlot = slot;
                }

                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.syncCurrentPlayItem();
                mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.syncCurrentPlayItem();
                MoveUtils.setMotion(MoveUtils.getMotion());
                if (oldSlot != -1) {
                    mc.playerController.windowClick(0, oldSlot, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClickFixed(0, oldSlot, 0, ClickType.PICKUP, mc.player, 100);
                    oldSlot = -1;
                    bestSlot = -1;
                    mc.player.resetActiveHand();
                }

            } else {
                IMinecraft.print("Феерверки не найдены!");
            }
        } else {
            useItem(hbSlot, Hand.MAIN_HAND);
        }
    }

    private void useItem(int slot, Hand hand) {
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(slot));
        }
        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(hand));
        mc.player.swingArm(Hand.MAIN_HAND);
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
        }
    }

    @Override
    public boolean onDisable() {
        super.onDisable();
        packetCounter = 0;
        return false;
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
ElytraFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.InventoryUtil;
import im.expensive.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.*;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerPacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import java.util.concurrent.ThreadLocalRandom;

@FunctionRegister(name = "ElytraFly", type = Category.Movement)
public class ElytraFly extends Function {
    StopWatch stopWatch = new StopWatch();
    int oldSlot = -1;
    int bestSlot = -1;
    long delay;
    private int packetCounter = 0;

    private final ModeSetting mode = new ModeSetting("Mode", "Normal", "Normal", "Grim-2.3.69", "Grim-2.3.71");

    public ElytraFly() {
        addSettings(mode);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
        boolean slotNotNull = mc.player.inventory.getStackInSlot(bestSlot).getItem() != Items.AIR;
        int invSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, false);
        int hbSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, true);

        if (InventoryUtil.getInstance().getSlotInInventory(Items.FIREWORK_ROCKET) == -1) {
            return;
        }

        int elytraSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.ELYTRA, true);
        if (elytraSlot == -1) {
            IMinecraft.print("Возьмите элитру в хотбар.");
            toggle();
            return;
        }

        if (mc.player.isOnGround() && !mc.gameSettings.keyBindJump.pressed) {
            mc.gameSettings.keyBindJump.setPressed(true);
        }
        if (!mc.player.isInWater() && !mc.player.isOnGround() && !mc.player.isElytraFlying()) {
            if (!(mc.player.inventory.armorItemInSlot(2).getItem() instanceof ElytraItem)) {
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                if (this.stopWatch.isReached(500)) {
                    swapAndUseFireWorkFromInv(invSlot, hbSlot, slotNotNull);
                    this.stopWatch.reset();
                }
            } else if (bestSlot != -1){
                mc.playerController.windowClick(0, 6, bestSlot, ClickType.SWAP, mc.player);
            }
        }

        if (mode.is("Grim-2.3.69")) {
            handleGrim269();
        } else if (mode.is("Grim-2.3.71")) {
            handleGrim271();
        }
    }

    private void handleGrim269() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 3 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02
                );
            }

            if (packetCounter % 5 == 0) {
                for (int i = 0; i < 2; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.2) {
                double motionX = mc.player.getMotion().x * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionY = mc.player.getMotion().y * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionZ = mc.player.getMotion().z * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    private void handleGrim271() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 2 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03
                );
            }

            if (packetCounter % 4 == 0) {
                for (int i = 0; i < 3; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.3) {
                double motionX = mc.player.getMotion().x * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionY = mc.player.getMotion().y * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionZ = mc.player.getMotion().z * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    public static int findNullSlot() {
        for (int i = 0; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() instanceof AirItem) {
                if (i < 9) {
                    i += 36;
                }
                return i;
            }
        }
        return 999;
    }

    private void swapAndUseFireWorkFromInv(int slot, int hbSlot, boolean slotNotNull) {
        if (hbSlot == -1) {
            if (slot >= 0) {
                InventoryUtil.moveItem(slot, bestSlot + 36, slotNotNull);
                if (slotNotNull && oldSlot == -1) {
                    oldSlot = slot;
                }

                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.syncCurrentPlayItem();
                mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.syncCurrentPlayItem();
                MoveUtils.setMotion(MoveUtils.getMotion());
                if (oldSlot != -1) {
                    mc.playerController.windowClick(0, oldSlot, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClickFixed(0, oldSlot, 0, ClickType.PICKUP, mc.player, 100);
                    oldSlot = -1;
                    bestSlot = -1;
                    mc.player.resetActiveHand();
                }

            } else {
                IMinecraft.print("Феерверки не найдены!");
            }
        } else {
            useItem(hbSlot, Hand.MAIN_HAND);
        }
    }

    private void useItem(int slot, Hand hand) {
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(slot));
        }
        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(hand));
        mc.player.swingArm(Hand.MAIN_HAND);
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
        }
    }

    @Override
    public boolean onDisable() {
        super.onDisable();
        packetCounter = 0;
        return false;
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
Сойдёт
Но надо доработать
 
ElytraFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.client.IMinecraft;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.InventoryUtil;
import im.expensive.utils.player.MoveUtils;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.*;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerPacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import java.util.concurrent.ThreadLocalRandom;

@FunctionRegister(name = "ElytraFly", type = Category.Movement)
public class ElytraFly extends Function {
    StopWatch stopWatch = new StopWatch();
    int oldSlot = -1;
    int bestSlot = -1;
    long delay;
    private int packetCounter = 0;

    private final ModeSetting mode = new ModeSetting("Mode", "Normal", "Normal", "Grim-2.3.69", "Grim-2.3.71");

    public ElytraFly() {
        addSettings(mode);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
        boolean slotNotNull = mc.player.inventory.getStackInSlot(bestSlot).getItem() != Items.AIR;
        int invSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, false);
        int hbSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.FIREWORK_ROCKET, true);

        if (InventoryUtil.getInstance().getSlotInInventory(Items.FIREWORK_ROCKET) == -1) {
            return;
        }

        int elytraSlot = InventoryUtil.getInstance().getSlotInInventoryOrHotbar(Items.ELYTRA, true);
        if (elytraSlot == -1) {
            IMinecraft.print("Возьмите элитру в хотбар.");
            toggle();
            return;
        }

        if (mc.player.isOnGround() && !mc.gameSettings.keyBindJump.pressed) {
            mc.gameSettings.keyBindJump.setPressed(true);
        }
        if (!mc.player.isInWater() && !mc.player.isOnGround() && !mc.player.isElytraFlying()) {
            if (!(mc.player.inventory.armorItemInSlot(2).getItem() instanceof ElytraItem)) {
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                mc.playerController.windowClick(0, 6, elytraSlot, ClickType.SWAP, mc.player);
                if (this.stopWatch.isReached(500)) {
                    swapAndUseFireWorkFromInv(invSlot, hbSlot, slotNotNull);
                    this.stopWatch.reset();
                }
            } else if (bestSlot != -1){
                mc.playerController.windowClick(0, 6, bestSlot, ClickType.SWAP, mc.player);
            }
        }

        if (mode.is("Grim-2.3.69")) {
            handleGrim269();
        } else if (mode.is("Grim-2.3.71")) {
            handleGrim271();
        }
    }

    private void handleGrim269() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 3 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02
                );
            }

            if (packetCounter % 5 == 0) {
                for (int i = 0; i < 2; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.02,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.2) {
                double motionX = mc.player.getMotion().x * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionY = mc.player.getMotion().y * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                double motionZ = mc.player.getMotion().z * (0.95 + ThreadLocalRandom.current().nextDouble() * 0.1);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    private void handleGrim271() {
        if (mc.player.isElytraFlying()) {
            if (packetCounter % 2 == 0) {
                mc.player.setPosition(
                        mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                        mc.player.getPosY(),
                        mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03
                );
            }

            if (packetCounter % 4 == 0) {
                for (int i = 0; i < 3; i++) {
                    mc.player.connection.sendPacket(new CPlayerPacket.PositionPacket(
                            mc.player.getPosX() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            mc.player.getPosY() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.03,
                            mc.player.getPosZ() + (ThreadLocalRandom.current().nextDouble() - 0.5) * 0.04,
                            false
                    ));
                }
            }

            if (ThreadLocalRandom.current().nextFloat() < 0.3) {
                double motionX = mc.player.getMotion().x * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionY = mc.player.getMotion().y * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                double motionZ = mc.player.getMotion().z * (0.9 + ThreadLocalRandom.current().nextDouble() * 0.2);
                mc.player.setMotion(motionX, motionY, motionZ);
            }
        }
        packetCounter++;
    }

    public static int findNullSlot() {
        for (int i = 0; i < 36; i++) {
            ItemStack stack = mc.player.inventory.getStackInSlot(i);
            if (stack.getItem() instanceof AirItem) {
                if (i < 9) {
                    i += 36;
                }
                return i;
            }
        }
        return 999;
    }

    private void swapAndUseFireWorkFromInv(int slot, int hbSlot, boolean slotNotNull) {
        if (hbSlot == -1) {
            if (slot >= 0) {
                InventoryUtil.moveItem(slot, bestSlot + 36, slotNotNull);
                if (slotNotNull && oldSlot == -1) {
                    oldSlot = slot;
                }

                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.syncCurrentPlayItem();
                mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.syncCurrentPlayItem();
                MoveUtils.setMotion(MoveUtils.getMotion());
                if (oldSlot != -1) {
                    mc.playerController.windowClick(0, oldSlot, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClickFixed(0, oldSlot, 0, ClickType.PICKUP, mc.player, 100);
                    oldSlot = -1;
                    bestSlot = -1;
                    mc.player.resetActiveHand();
                }

            } else {
                IMinecraft.print("Феерверки не найдены!");
            }
        } else {
            useItem(hbSlot, Hand.MAIN_HAND);
        }
    }

    private void useItem(int slot, Hand hand) {
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(slot));
        }
        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(hand));
        mc.player.swingArm(Hand.MAIN_HAND);
        if (mc.player.getHeldItemMainhand().getItem() != Items.FIREWORK_ROCKET) {
            mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
        }
    }

    @Override
    public boolean onDisable() {
        super.onDisable();
        packetCounter = 0;
        return false;
    }
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
под хвх пойдет мб
 

Похожие темы

Ответы
14
Просмотры
724
Ответы
4
Просмотры
757
Ответы
7
Просмотры
1K
Ответы
13
Просмотры
3K
Ответы
24
Просмотры
4K
Назад
Сверху Снизу