Исходник Умный ChestStealer Expensive 3.1 ready ctrl + c ctrl + v

Начинающий
Статус
Оффлайн
Регистрация
8 Фев 2023
Сообщения
44
Реакции[?]
0
Поинты[?]
0
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Снимок экрана 2024-05-05 225638.png
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
25 Янв 2024
Сообщения
330
Реакции[?]
0
Поинты[?]
1K
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Посмотреть вложение 276171
Спс, запасщю в свой s$elfcoded client
 
Начинающий
Статус
Оффлайн
Регистрация
18 Фев 2023
Сообщения
23
Реакции[?]
0
Поинты[?]
0
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Посмотреть вложение 276171
Мега хорошо:CoolCat: (Для пастерков всякого под фт будет конечно классно, но логику можно немного поменять)
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
29 Апр 2023
Сообщения
422
Реакции[?]
3
Поинты[?]
4K
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Посмотреть вложение 276171
/deeel1714982442818.png
точно слутаешь на фт мист :roflanBuldiga: :roflanBuldiga: :roflanBuldiga:
 
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
795
Реакции[?]
12
Поинты[?]
17K
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
22 Янв 2024
Сообщения
79
Реакции[?]
0
Поинты[?]
0
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Посмотреть вложение 276171
Лушчий, не единой ошибки) У меня такое впервые...
 
Начинающий
Статус
Оффлайн
Регистрация
10 Мар 2024
Сообщения
36
Реакции[?]
0
Поинты[?]
0
ChestStealer:
package im.expensive.functions.impl.player;

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.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Player)
public class ChestStealer extends Function {
    private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный");
    private final BooleanSetting chestClose = new BooleanSetting("Закрывать при полном", true);
    private final SliderSetting stealDelay = new SliderSetting("Задержка", 100, 0, 1000, 1);
    private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    private final ModeListSetting filterLoot = new ModeListSetting("Лут",
            new BooleanSetting("Руды", true),
            new BooleanSetting("Головы", false),
            new BooleanSetting("Незеритовый слиток", false),
            new BooleanSetting("Зачарованная книга", false),
            new BooleanSetting("Тотемы", false),
            new BooleanSetting("Зелья", false)
    ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    private final SliderSetting itemLimit = new SliderSetting("Лимит кол", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    private final StopWatch timerUtil = new StopWatch();

    public ChestStealer() {
        addSettings(mode, chestClose, stealDelay, filterLootToggle, filterLoot, itemLimit, missPercent);
    }

    private boolean filterItem(Item item) {
        if (!filterLootToggle.get()) {
            return true;
        }

        boolean filterOres = filterLoot.get(0).get();
        boolean filterHeads = filterLoot.get(1).get();
        boolean filterNetherite = filterLoot.get(2).get();
        boolean filterEnchantedBooks = filterLoot.get(3).get();
        boolean filterTotems = filterLoot.get(4).get();
        boolean filterPotions = filterLoot.get(5).get();

        if (filterOres && (
                item == Items.DIAMOND_ORE ||
                        item == Items.EMERALD_ORE ||
                        item == Items.IRON_ORE ||
                        item == Items.GOLD_ORE ||
                        item == Items.COAL_ORE
        )) {
            return true;
        }

        if (filterHeads && item == Items.PLAYER_HEAD) {
            return true;
        }

        if (filterNetherite && item == Items.NETHERITE_INGOT) {
            return true;
        }

        if (filterEnchantedBooks && item == Items.ENCHANTED_BOOK) {
            return true;
        }

        if (filterTotems && item == Items.TOTEM_OF_UNDYING) {
            return true;
        }

        if (filterPotions && (
                item == Items.POTION ||
                        item == Items.SPLASH_POTION
        )) {
            return true;
        }

        return false;
    }

    @Subscribe
    public void onEvent(final EventUpdate event) {
        if (mode.is("Умный")) {
            if (mc.player.openContainer instanceof ChestContainer) {
                ChestContainer container = (ChestContainer) mc.player.openContainer;
                IInventory inventory = container.getLowerChestInventory();
                List<Integer> validSlots = new ArrayList<>();

                for (int i = 0; i < inventory.getSizeInventory(); i++) {
                    if (inventory.getStackInSlot(i).getItem() != Item.getItemById(0)
                            && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
                            && filterItem(inventory.getStackInSlot(i).getItem())) {
                        validSlots.add(i);
                    }
                }

                if (!validSlots.isEmpty() && timerUtil.isReached(Math.round(stealDelay.get()))) {
                    int randomIndex = new Random().nextInt(validSlots.size());
                    int slotToSteal = validSlots.get(randomIndex);

                    if (new Random().nextInt(100) >= missPercent.get()) {
                        mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
                    }

                    timerUtil.reset();
                }

                if (inventory.isEmpty() && chestClose.get()) {
                    mc.player.closeScreen();
                }
            }
        }
    }
}
Посмотреть вложение 276171
xD пастер когда делает чит под фт:
new BooleanSetting("Руды", true),
new BooleanSetting("Головы", false),
new BooleanSetting("Незеритовый слиток", false),
new BooleanSetting("Зачарованная книга", false),
new BooleanSetting("Тотемы", false),
new BooleanSetting("Зелья", false)
Бригада: Под фт шифровка
 
Начинающий
Статус
Оффлайн
Регистрация
8 Фев 2023
Сообщения
44
Реакции[?]
0
Поинты[?]
0
xD пастер когда делает чит под фт:
new BooleanSetting("Руды", true),
new BooleanSetting("Головы", false),
new BooleanSetting("Незеритовый слиток", false),
new BooleanSetting("Зачарованная книга", false),
new BooleanSetting("Тотемы", false),
new BooleanSetting("Зелья", false)
Бригада: Под фт шифровка
xD можно не только же на фт юзать кому надо уберёт
 
Сверху Снизу