Исходник AutoTool MoonProject 1.20.1(Mcp)

Начинающий
Статус
Оффлайн
Регистрация
31 Авг 2022
Сообщения
364
Реакции[?]
4
Поинты[?]
7K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

ss - ну это дефолт функция зачем к ней ss


Java:
/*
 * Было сделано FakeSystem(Апельсин)
 */

package zxc.moon.feature.impl.player;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import zxc.moon.events.impl.EventUpdate;
import zxc.moon.feature.Feature;
import zxc.moon.feature.FeatureCategory;

public class AutoTool extends Feature {
    public AutoTool() {
        super("AutoTool", "Берет лучший предмет при ломании блока", FeatureCategory.Player);
    }

    private int oldSlot = -1;

    public void onUpdate(EventUpdate e) {
        final MultiPlayerGameMode gameMode = mc.gameMode;
        final Inventory inventory = mc.player.getInventory();

        int best = getBestSlot();

        if (gameMode.isDestroying && best != -1) {
            if (this.oldSlot == -1) {
                this.oldSlot = inventory.selected;
            }

            inventory.selected = best;
            gameMode.carriedIndex = best;

            mc.getConnection().send(new ServerboundSetCarriedItemPacket(best));
        } else if (oldSlot != -1) {
            inventory.selected = this.oldSlot;

            this.oldSlot = -1;
        }
    }

    private int getBestSlot() {
        final HitResult hitResult = mc.hitResult;

        if (hitResult instanceof BlockHitResult blockHitResult) {
            final BlockPos blockPos = blockHitResult.getBlockPos();
            final BlockState blockState = mc.level.getBlockState(blockPos);
            final Inventory inventory = mc.player.getInventory();

            int bestSlot = inventory.selected;
            float bestDestroySpeed = inventory.getItem(bestSlot).getDestroySpeed(blockState);

            for (int i = 0; i < 9; i++) {
                ItemStack itemStack = inventory.getItem(i);
                float destroySpeed = itemStack.getDestroySpeed(blockState);

                if (bestSlot == -1
                        || destroySpeed > bestDestroySpeed) {
                    bestSlot = i;
                    bestDestroySpeed = destroySpeed;
                }
            }

            return bestSlot;
        }

        return -1;
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
25 Янв 2024
Сообщения
347
Реакции[?]
0
Поинты[?]
1K
ss - ну это дефолт функция зачем к ней ss


Java:
/*
* Было сделано FakeSystem(Апельсин)
*/

package zxc.moon.feature.impl.player;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import zxc.moon.events.impl.EventUpdate;
import zxc.moon.feature.Feature;
import zxc.moon.feature.FeatureCategory;

public class AutoTool extends Feature {
    public AutoTool() {
        super("AutoTool", "Берет лучший предмет при ломании блока", FeatureCategory.Player);
    }

    private int oldSlot = -1;

    public void onUpdate(EventUpdate e) {
        final MultiPlayerGameMode gameMode = mc.gameMode;
        final Inventory inventory = mc.player.getInventory();

        int best = getBestSlot();

        if (gameMode.isDestroying && best != -1) {
            if (this.oldSlot == -1) {
                this.oldSlot = inventory.selected;
            }

            inventory.selected = best;
            gameMode.carriedIndex = best;

            mc.getConnection().send(new ServerboundSetCarriedItemPacket(best));
        } else if (oldSlot != -1) {
            inventory.selected = this.oldSlot;

            this.oldSlot = -1;
        }
    }

    private int getBestSlot() {
        final HitResult hitResult = mc.hitResult;

        if (hitResult instanceof BlockHitResult blockHitResult) {
            final BlockPos blockPos = blockHitResult.getBlockPos();
            final BlockState blockState = mc.level.getBlockState(blockPos);
            final Inventory inventory = mc.player.getInventory();

            int bestSlot = inventory.selected;
            float bestDestroySpeed = inventory.getItem(bestSlot).getDestroySpeed(blockState);

            for (int i = 0; i < 9; i++) {
                ItemStack itemStack = inventory.getItem(i);
                float destroySpeed = itemStack.getDestroySpeed(blockState);

                if (bestSlot == -1
                        || destroySpeed > bestDestroySpeed) {
                    bestSlot = i;
                    bestDestroySpeed = destroySpeed;
                }
            }

            return bestSlot;
        }

        return -1;
    }
}
Евентики что как в тх сделал ? просто там ебнутый говнокод там в суперкалссе onupdate prerender итд, так вроде нормас
 
Начинающий
Статус
Оффлайн
Регистрация
31 Авг 2022
Сообщения
364
Реакции[?]
4
Поинты[?]
7K
Евентики что как в тх сделал ? просто там ебнутый говнокод там в суперкалссе onupdate prerender итд, так вроде нормас
Через рефлексию, знаю не оптимизировано. Мой клиент не гониться за оптимизацией.
 
Забаненный
Статус
Оффлайн
Регистрация
10 Май 2023
Сообщения
827
Реакции[?]
9
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ss - ну это дефолт функция зачем к ней ss


Java:
/*
* Было сделано FakeSystem(Апельсин)
*/

package zxc.moon.feature.impl.player;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.core.BlockPos;
import net.minecraft.network.protocol.game.ServerboundSetCarriedItemPacket;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult;
import zxc.moon.events.impl.EventUpdate;
import zxc.moon.feature.Feature;
import zxc.moon.feature.FeatureCategory;

public class AutoTool extends Feature {
    public AutoTool() {
        super("AutoTool", "Берет лучший предмет при ломании блока", FeatureCategory.Player);
    }

    private int oldSlot = -1;

    public void onUpdate(EventUpdate e) {
        final MultiPlayerGameMode gameMode = mc.gameMode;
        final Inventory inventory = mc.player.getInventory();

        int best = getBestSlot();

        if (gameMode.isDestroying && best != -1) {
            if (this.oldSlot == -1) {
                this.oldSlot = inventory.selected;
            }

            inventory.selected = best;
            gameMode.carriedIndex = best;

            mc.getConnection().send(new ServerboundSetCarriedItemPacket(best));
        } else if (oldSlot != -1) {
            inventory.selected = this.oldSlot;

            this.oldSlot = -1;
        }
    }

    private int getBestSlot() {
        final HitResult hitResult = mc.hitResult;

        if (hitResult instanceof BlockHitResult blockHitResult) {
            final BlockPos blockPos = blockHitResult.getBlockPos();
            final BlockState blockState = mc.level.getBlockState(blockPos);
            final Inventory inventory = mc.player.getInventory();

            int bestSlot = inventory.selected;
            float bestDestroySpeed = inventory.getItem(bestSlot).getDestroySpeed(blockState);

            for (int i = 0; i < 9; i++) {
                ItemStack itemStack = inventory.getItem(i);
                float destroySpeed = itemStack.getDestroySpeed(blockState);

                if (bestSlot == -1
                        || destroySpeed > bestDestroySpeed) {
                    bestSlot = i;
                    bestDestroySpeed = destroySpeed;
                }
            }

            return bestSlot;
        }

        return -1;
    }
}
код выглядит не плохо
 
Сверху Снизу