Исходник FTAutoBuy I exp 3.1 mb ready

Начинающий
Статус
Оффлайн
Регистрация
22 Сен 2024
Сообщения
43
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
22 Сен 2024
Сообщения
43
Реакции[?]
0
Поинты[?]
0
сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2024
Сообщения
21
Реакции[?]
0
Поинты[?]
0
сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
В какой клас эту чуду юду вставлять? Помоги пж я пастер
 
Начинающий
Статус
Оффлайн
Регистрация
8 Мар 2024
Сообщения
640
Реакции[?]
2
Поинты[?]
2K
сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
это честстиллер ,не ?
 
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2024
Сообщения
618
Реакции[?]
4
Поинты[?]
3K
Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2024
Сообщения
21
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
10 Июл 2024
Сообщения
166
Реакции[?]
0
Поинты[?]
0
сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
как будто немного чат дцп
 
Начинающий
Статус
Оффлайн
Регистрация
3 Авг 2024
Сообщения
23
Реакции[?]
0
Поинты[?]
0
сливаю обоссаный аб но робит вроде
Код:
package im.expensive.functions.impl.misc;

import com.google.common.eventbus.Subscribe;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
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.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.ListNBT;
import net.minecraft.util.text.StringTextComponent;

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

@FunctionRegister(name = "AutoBuy",type = Category.Misc)
public class AutoBuyFT extends Function {

    private final ModeSetting mode = new ModeSetting("Способ лута", "Обычный", "Обычный", "Рандом");
    private final ModeSetting bigdick = new ModeSetting("Лутать", "Низ/Вверх", "Низ/Вверх", "Вверх/Низ");
    private final SliderSetting stealDelay = new SliderSetting("Скорость лута", 80, 0, 150, 1);

    public AutoBuyFT() {

    }

    final StopWatch stopWatch = new StopWatch();

    final List<Item> ingotItemList = List.of(
            Items.NAUTILUS_SHELL,
            Items.PHANTOM_MEMBRANE
    );

    @Subscribe
    public void onUpdate(EventUpdate e) {
        switch (mode.getIndex()) {
            case 0: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    int size = lowerChestInventory.getSizeInventory();
                    if (bigdick.is("Низ/Вверх")) {
                        for (int index = size - 1; index >= 0; index--) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    } else {
                        for (int index = 0; index < size; index++) {
                            ItemStack stack = lowerChestInventory.getStackInSlot(index);
                            if (!shouldMoveItem(container, index)) {
                                continue;
                            }
                            if (isContainerEmpty(stack)) {
                                continue;
                            }
                            if (stealDelay.get() == 0.0f) {
                                moveItem(container, index, size);
                            } else {
                                if (stopWatch.isReached(stealDelay.get().longValue())) {
                                    mc.playerController.windowClick(container.windowId, index, 0, ClickType.QUICK_MOVE, mc.player);
                                    stopWatch.reset();
                                }
                            }
                        }
                    }
                }
                break;
            }
            case 1: {
                if (mc.player.openContainer instanceof ChestContainer container) {
                    IInventory lowerChestInventory = container.getLowerChestInventory();
                    List<Integer> availableSlots = new ArrayList<>();
                    for (int index = 0; index < lowerChestInventory.getSizeInventory(); ++index) {
                        ItemStack stack = lowerChestInventory.getStackInSlot(index);
                        if (!shouldMoveItem(container, index)) {
                            continue;
                        }
                        if (isContainerEmpty(stack)) {
                            continue;
                        }
                        availableSlots.add(index);
                    }
                    if (!availableSlots.isEmpty()) {
                        int randomIndex = availableSlots.get(new Random().nextInt(availableSlots.size()));
                        if (stealDelay.get().longValue() == 0.0f) {
                            moveItem(container, randomIndex, lowerChestInventory.getSizeInventory());
                        } else {
                            if (stopWatch.isReached(stealDelay.get().longValue())) {
                                mc.playerController.windowClick(container.windowId, randomIndex, 0, ClickType.QUICK_MOVE, mc.player);
                                stopWatch.reset();
                            }
                        }
                    }
                    break;
                }
            }
        }
    }

    private boolean shouldMoveItem(ChestContainer container, int index) {
        ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index);
        return itemStack.getItem() != Item.getItemById(0);
    }

    private void moveItem(ChestContainer container, int index, int multi) {
        for (int i = 0; i < multi; i++) {
            mc.playerController.windowClick(container.windowId, index + i, 0, ClickType.QUICK_MOVE, mc.player);
            ItemStack itemStack = container.getLowerChestInventory().getStackInSlot(index + i);
            mc.player.sendMessage(new StringTextComponent("Слутан предмет: " + itemStack.getDisplayName().getString()), mc.player.getUniqueID());
        }
    }

    public boolean ListItem(ItemStack itemStack) {
        Item item = itemStack.getItem();
        int price = extractPriceFromStack(itemStack);

        return (ingotItemList.contains(item)
                || item == Items.NAUTILUS_SHELL
                || item == Items.GRAY_DYE
                || item == Items.GUNPOWDER
                || item == Items.PHANTOM_MEMBRANE
                || (item == Items.STONE && price == 10000)
        );
    }

    private boolean isContainerEmpty(ItemStack stack) {
        return !ListItem(stack);
    }

    protected int extractPriceFromStack(ItemStack stack) {
        CompoundNBT tag = stack.getTag();
        if (tag != null && tag.contains("display", 10)) {
            CompoundNBT display = tag.getCompound("display");
            if (display.contains("Lore", 9)) {
                ListNBT lore = display.getList("Lore", 8);

                for (int j = 0; j < lore.size(); ++j) {
                    JsonObject object = JsonParser.parseString(lore.getString(j)).getAsJsonObject();
                    if (object.has("extra")) {
                        JsonArray array = object.getAsJsonArray("extra");
                        if (array.size() > 2) {
                            JsonObject title = array.get(1).getAsJsonObject();
                            if (title.get("text").getAsString().trim().toLowerCase().contains("цена")) {
                                try {
                                    String line = array.get(2).getAsJsonObject().get("text").getAsString().trim().substring(1).replaceAll(" ", "");
                                    return Integer.parseInt(line);
                                } catch (NumberFormatException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }

        return -1; // Если цена не найдена
    }
}
похоже на авто мист
 
Сверху Снизу