Часть функционала | AutoDuel | Expensive | 3.1 | Третья работа | FT|RW |

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
18 Апр 2025
Сообщения
107
Реакции
1
Выберите загрузчик игры
  1. Vanilla
без сс
Автоматически кидает дуэль игрокам
AutoDuel:
Expand Collapse Copy
package im.expensive.functions.impl.misc;

import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import com.mojang.authlib.GameProfile;
import im.expensive.events.EventUpdate;
import im.expensive.events.EventPacket;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.math.StopWatch;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ItemStack;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

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

    private static final Pattern pattern = Pattern.compile("^\\w{3,16}$");

    private final ModeSetting gameMode = new ModeSetting("Мод", "Funtime", "Funtime", "ReallyWorld");

    private final ModeSetting Armor = new ModeSetting("Броня соперника", "Незеритовая", "Незеритовая", "Алмазная")
            .setVisible(() -> gameMode.is("Funtime"));

    private final ModeSetting mode = new ModeSetting("Режим", "Шары",
            "Шары", "Щит", "Шипы 3", "Незеритка", "Читерский рай", "Лук", "Классик", "Тотемы", "Нодебафф")
            .setVisible(() -> gameMode.is("ReallyWorld"));

    private double lastPosX, lastPosY, lastPosZ;

    public AutoDuel() {
        addSettings(gameMode, mode, Armor);
    }

    private final List<String> sent = Lists.newArrayList();
    private int currentPlayerIndex = 0;

    private final StopWatch counter = new StopWatch();
    private final StopWatch counter2 = new StopWatch();
    private final StopWatch counterChoice = new StopWatch();
    private final StopWatch counterTo = new StopWatch();

    [USER=1474073]@Subscribe[/USER]
    private void OnUpdate(EventUpdate e) {
        final List<String> players = getOnlinePlayers();

        double distance = Math.sqrt(Math.pow(lastPosX - mc.player.getPosX(), 2) +
                Math.pow(lastPosY - mc.player.getPosY(), 2) +
                Math.pow(lastPosZ - mc.player.getPosZ(), 2));

        if (distance > 500) {
            toggle();
        }

        lastPosX = mc.player.getPosX();
        lastPosY = mc.player.getPosY();
        lastPosZ = mc.player.getPosZ();

        if (counter2.isReached(800L * players.size())) {
            sent.clear();
            currentPlayerIndex = 0;
            counter2.reset();
        }

        if (gameMode.is("ReallyWorld")) {
            if (!players.isEmpty()) {
                if (counter.isReached(1000)) {
                    if (currentPlayerIndex >= players.size()) {
                        currentPlayerIndex = 0;
                    }

                    String player = players.get(currentPlayerIndex);
                    if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                        mc.player.sendChatMessage("/duel " + player);
                        sent.add(player);
                    }
                    currentPlayerIndex++;
                    counter.reset();
                }

                if (mc.player.openContainer instanceof ChestContainer chest) {
                    if (mc.currentScreen.getTitle().getString().contains("Выбор набора (1/1)")) {
                        if (counterChoice.isReached(150)) {
                            if (mode.is("Щит")) {
                                mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шипы 3")) {
                                mc.playerController.windowClick(chest.windowId, 1, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Лук")) {
                                mc.playerController.windowClick(chest.windowId, 2, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Тотемы")) {
                                mc.playerController.windowClick(chest.windowId, 3, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Нодебафф")) {
                                mc.playerController.windowClick(chest.windowId, 4, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шары")) {
                                mc.playerController.windowClick(chest.windowId, 5, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Классик")) {
                                mc.playerController.windowClick(chest.windowId, 6, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Читерский рай")) {
                                mc.playerController.windowClick(chest.windowId, 7, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Незеритка")) {
                                mc.playerController.windowClick(chest.windowId, 8, 0, ClickType.QUICK_MOVE, mc.player);
                            }
                            counterChoice.reset();
                        }
                    } else if (mc.currentScreen.getTitle().getString().contains("Настройка поединка")) {
                        if (counterTo.isReached(150)) {
                            mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            counterTo.reset();
                        }
                    }
                }
            }
        } else if (gameMode.is("Funtime")) {
            final List<String> filteredPlayers = getOnlinePlayersWithArmorFilter();
            for (final String player : filteredPlayers) {
                if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                    if (counter.isReached(1000)) {
                        mc.player.sendChatMessage("/duel invite " + player);
                        sent.add(player);
                        counter.reset();
                    }
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket event) {
        if (event.isReceive()) {
            IPacket<?> packet = event.getPacket();

            if (packet instanceof SChatPacket chat) {
                final String text = chat.getChatComponent().getString().toLowerCase();
                if ((text.contains("начало") && text.contains("через") && text.contains("секунд!")) ||
                        (text.equals(""))) {
                    toggle();
                }
            }
        }
    }

    private List<String> getOnlinePlayers() {
        return mc.player.connection.getPlayerInfoMap().stream()
                .map(NetworkPlayerInfo::getGameProfile)
                .map(GameProfile::getName)
                .filter(profileName -> pattern.matcher(profileName).matches())
                .collect(Collectors.toList());
    }

    private List<String> getOnlinePlayersWithArmorFilter() {
        List<String> onlinePlayers = getOnlinePlayers();
        List<String> filteredPlayers = new ArrayList<>();

        for (PlayerEntity player : mc.world.getPlayers()) {
            String playerName = player.getGameProfile().getName();
            if (!onlinePlayers.contains(playerName) || playerName.equals(mc.session.getProfile().getName())) {
                continue;
            }

            double distance = mc.player.getDistance(player);
            if (distance > 250) {
                continue;
            }

            boolean matchesArmor = false;
            if (Armor.is("Незеритовая")) {
                matchesArmor = hasNetheriteArmor(player);
            } else if (Armor.is("Алмазная")) {
                matchesArmor = hasDiamondArmor(player);
            }

            if (matchesArmor) {
                filteredPlayers.add(playerName);
            }
        }

        return filteredPlayers;
    }

    private boolean hasNetheriteArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.NETHERITE) {
                    return true;
                }
            }
        }
        return false;
    }

    private boolean hasDiamondArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.DIAMOND) {
                    return true;
                }
            }
        }
        return false;
    }
}
 
Ну типо пойдет
 
ну типа это обалденно
а не типо пойдёт
 
уже гуи на подходе)
 
без сс
Автоматически кидает дуэль игрокам
AutoDuel:
Expand Collapse Copy
package im.expensive.functions.impl.misc;

import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import com.mojang.authlib.GameProfile;
import im.expensive.events.EventUpdate;
import im.expensive.events.EventPacket;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.math.StopWatch;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ItemStack;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

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

    private static final Pattern pattern = Pattern.compile("^\\w{3,16}$");

    private final ModeSetting gameMode = new ModeSetting("Мод", "Funtime", "Funtime", "ReallyWorld");

    private final ModeSetting Armor = new ModeSetting("Броня соперника", "Незеритовая", "Незеритовая", "Алмазная")
            .setVisible(() -> gameMode.is("Funtime"));

    private final ModeSetting mode = new ModeSetting("Режим", "Шары",
            "Шары", "Щит", "Шипы 3", "Незеритка", "Читерский рай", "Лук", "Классик", "Тотемы", "Нодебафф")
            .setVisible(() -> gameMode.is("ReallyWorld"));

    private double lastPosX, lastPosY, lastPosZ;

    public AutoDuel() {
        addSettings(gameMode, mode, Armor);
    }

    private final List<String> sent = Lists.newArrayList();
    private int currentPlayerIndex = 0;

    private final StopWatch counter = new StopWatch();
    private final StopWatch counter2 = new StopWatch();
    private final StopWatch counterChoice = new StopWatch();
    private final StopWatch counterTo = new StopWatch();

    [USER=1474073]@Subscribe[/USER]
    private void OnUpdate(EventUpdate e) {
        final List<String> players = getOnlinePlayers();

        double distance = Math.sqrt(Math.pow(lastPosX - mc.player.getPosX(), 2) +
                Math.pow(lastPosY - mc.player.getPosY(), 2) +
                Math.pow(lastPosZ - mc.player.getPosZ(), 2));

        if (distance > 500) {
            toggle();
        }

        lastPosX = mc.player.getPosX();
        lastPosY = mc.player.getPosY();
        lastPosZ = mc.player.getPosZ();

        if (counter2.isReached(800L * players.size())) {
            sent.clear();
            currentPlayerIndex = 0;
            counter2.reset();
        }

        if (gameMode.is("ReallyWorld")) {
            if (!players.isEmpty()) {
                if (counter.isReached(1000)) {
                    if (currentPlayerIndex >= players.size()) {
                        currentPlayerIndex = 0;
                    }

                    String player = players.get(currentPlayerIndex);
                    if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                        mc.player.sendChatMessage("/duel " + player);
                        sent.add(player);
                    }
                    currentPlayerIndex++;
                    counter.reset();
                }

                if (mc.player.openContainer instanceof ChestContainer chest) {
                    if (mc.currentScreen.getTitle().getString().contains("Выбор набора (1/1)")) {
                        if (counterChoice.isReached(150)) {
                            if (mode.is("Щит")) {
                                mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шипы 3")) {
                                mc.playerController.windowClick(chest.windowId, 1, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Лук")) {
                                mc.playerController.windowClick(chest.windowId, 2, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Тотемы")) {
                                mc.playerController.windowClick(chest.windowId, 3, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Нодебафф")) {
                                mc.playerController.windowClick(chest.windowId, 4, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шары")) {
                                mc.playerController.windowClick(chest.windowId, 5, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Классик")) {
                                mc.playerController.windowClick(chest.windowId, 6, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Читерский рай")) {
                                mc.playerController.windowClick(chest.windowId, 7, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Незеритка")) {
                                mc.playerController.windowClick(chest.windowId, 8, 0, ClickType.QUICK_MOVE, mc.player);
                            }
                            counterChoice.reset();
                        }
                    } else if (mc.currentScreen.getTitle().getString().contains("Настройка поединка")) {
                        if (counterTo.isReached(150)) {
                            mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            counterTo.reset();
                        }
                    }
                }
            }
        } else if (gameMode.is("Funtime")) {
            final List<String> filteredPlayers = getOnlinePlayersWithArmorFilter();
            for (final String player : filteredPlayers) {
                if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                    if (counter.isReached(1000)) {
                        mc.player.sendChatMessage("/duel invite " + player);
                        sent.add(player);
                        counter.reset();
                    }
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket event) {
        if (event.isReceive()) {
            IPacket<?> packet = event.getPacket();

            if (packet instanceof SChatPacket chat) {
                final String text = chat.getChatComponent().getString().toLowerCase();
                if ((text.contains("начало") && text.contains("через") && text.contains("секунд!")) ||
                        (text.equals(""))) {
                    toggle();
                }
            }
        }
    }

    private List<String> getOnlinePlayers() {
        return mc.player.connection.getPlayerInfoMap().stream()
                .map(NetworkPlayerInfo::getGameProfile)
                .map(GameProfile::getName)
                .filter(profileName -> pattern.matcher(profileName).matches())
                .collect(Collectors.toList());
    }

    private List<String> getOnlinePlayersWithArmorFilter() {
        List<String> onlinePlayers = getOnlinePlayers();
        List<String> filteredPlayers = new ArrayList<>();

        for (PlayerEntity player : mc.world.getPlayers()) {
            String playerName = player.getGameProfile().getName();
            if (!onlinePlayers.contains(playerName) || playerName.equals(mc.session.getProfile().getName())) {
                continue;
            }

            double distance = mc.player.getDistance(player);
            if (distance > 250) {
                continue;
            }

            boolean matchesArmor = false;
            if (Armor.is("Незеритовая")) {
                matchesArmor = hasNetheriteArmor(player);
            } else if (Armor.is("Алмазная")) {
                matchesArmor = hasDiamondArmor(player);
            }

            if (matchesArmor) {
                filteredPlayers.add(playerName);
            }
        }

        return filteredPlayers;
    }

    private boolean hasNetheriteArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.NETHERITE) {
                    return true;
                }
            }
        }
        return false;
    }

    private boolean hasDiamondArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.DIAMOND) {
                    return true;
                }
            }
        }
        return false;
    }
}
/del было
 
Чтоооооо ты выучил Русский язык. Я в шоке... :roflanBuldiga:
 
годно +rep
 
без сс
Автоматически кидает дуэль игрокам
AutoDuel:
Expand Collapse Copy
package im.expensive.functions.impl.misc;

import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import com.mojang.authlib.GameProfile;
import im.expensive.events.EventUpdate;
import im.expensive.events.EventPacket;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.utils.math.StopWatch;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ItemStack;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SChatPacket;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

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

    private static final Pattern pattern = Pattern.compile("^\\w{3,16}$");

    private final ModeSetting gameMode = new ModeSetting("Мод", "Funtime", "Funtime", "ReallyWorld");

    private final ModeSetting Armor = new ModeSetting("Броня соперника", "Незеритовая", "Незеритовая", "Алмазная")
            .setVisible(() -> gameMode.is("Funtime"));

    private final ModeSetting mode = new ModeSetting("Режим", "Шары",
            "Шары", "Щит", "Шипы 3", "Незеритка", "Читерский рай", "Лук", "Классик", "Тотемы", "Нодебафф")
            .setVisible(() -> gameMode.is("ReallyWorld"));

    private double lastPosX, lastPosY, lastPosZ;

    public AutoDuel() {
        addSettings(gameMode, mode, Armor);
    }

    private final List<String> sent = Lists.newArrayList();
    private int currentPlayerIndex = 0;

    private final StopWatch counter = new StopWatch();
    private final StopWatch counter2 = new StopWatch();
    private final StopWatch counterChoice = new StopWatch();
    private final StopWatch counterTo = new StopWatch();

    [USER=1474073]@Subscribe[/USER]
    private void OnUpdate(EventUpdate e) {
        final List<String> players = getOnlinePlayers();

        double distance = Math.sqrt(Math.pow(lastPosX - mc.player.getPosX(), 2) +
                Math.pow(lastPosY - mc.player.getPosY(), 2) +
                Math.pow(lastPosZ - mc.player.getPosZ(), 2));

        if (distance > 500) {
            toggle();
        }

        lastPosX = mc.player.getPosX();
        lastPosY = mc.player.getPosY();
        lastPosZ = mc.player.getPosZ();

        if (counter2.isReached(800L * players.size())) {
            sent.clear();
            currentPlayerIndex = 0;
            counter2.reset();
        }

        if (gameMode.is("ReallyWorld")) {
            if (!players.isEmpty()) {
                if (counter.isReached(1000)) {
                    if (currentPlayerIndex >= players.size()) {
                        currentPlayerIndex = 0;
                    }

                    String player = players.get(currentPlayerIndex);
                    if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                        mc.player.sendChatMessage("/duel " + player);
                        sent.add(player);
                    }
                    currentPlayerIndex++;
                    counter.reset();
                }

                if (mc.player.openContainer instanceof ChestContainer chest) {
                    if (mc.currentScreen.getTitle().getString().contains("Выбор набора (1/1)")) {
                        if (counterChoice.isReached(150)) {
                            if (mode.is("Щит")) {
                                mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шипы 3")) {
                                mc.playerController.windowClick(chest.windowId, 1, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Лук")) {
                                mc.playerController.windowClick(chest.windowId, 2, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Тотемы")) {
                                mc.playerController.windowClick(chest.windowId, 3, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Нодебафф")) {
                                mc.playerController.windowClick(chest.windowId, 4, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шары")) {
                                mc.playerController.windowClick(chest.windowId, 5, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Классик")) {
                                mc.playerController.windowClick(chest.windowId, 6, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Читерский рай")) {
                                mc.playerController.windowClick(chest.windowId, 7, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Незеритка")) {
                                mc.playerController.windowClick(chest.windowId, 8, 0, ClickType.QUICK_MOVE, mc.player);
                            }
                            counterChoice.reset();
                        }
                    } else if (mc.currentScreen.getTitle().getString().contains("Настройка поединка")) {
                        if (counterTo.isReached(150)) {
                            mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            counterTo.reset();
                        }
                    }
                }
            }
        } else if (gameMode.is("Funtime")) {
            final List<String> filteredPlayers = getOnlinePlayersWithArmorFilter();
            for (final String player : filteredPlayers) {
                if (!sent.contains(player) && !player.equals(mc.session.getProfile().getName())) {
                    if (counter.isReached(1000)) {
                        mc.player.sendChatMessage("/duel invite " + player);
                        sent.add(player);
                        counter.reset();
                    }
                }
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket event) {
        if (event.isReceive()) {
            IPacket<?> packet = event.getPacket();

            if (packet instanceof SChatPacket chat) {
                final String text = chat.getChatComponent().getString().toLowerCase();
                if ((text.contains("начало") && text.contains("через") && text.contains("секунд!")) ||
                        (text.equals(""))) {
                    toggle();
                }
            }
        }
    }

    private List<String> getOnlinePlayers() {
        return mc.player.connection.getPlayerInfoMap().stream()
                .map(NetworkPlayerInfo::getGameProfile)
                .map(GameProfile::getName)
                .filter(profileName -> pattern.matcher(profileName).matches())
                .collect(Collectors.toList());
    }

    private List<String> getOnlinePlayersWithArmorFilter() {
        List<String> onlinePlayers = getOnlinePlayers();
        List<String> filteredPlayers = new ArrayList<>();

        for (PlayerEntity player : mc.world.getPlayers()) {
            String playerName = player.getGameProfile().getName();
            if (!onlinePlayers.contains(playerName) || playerName.equals(mc.session.getProfile().getName())) {
                continue;
            }

            double distance = mc.player.getDistance(player);
            if (distance > 250) {
                continue;
            }

            boolean matchesArmor = false;
            if (Armor.is("Незеритовая")) {
                matchesArmor = hasNetheriteArmor(player);
            } else if (Armor.is("Алмазная")) {
                matchesArmor = hasDiamondArmor(player);
            }

            if (matchesArmor) {
                filteredPlayers.add(playerName);
            }
        }

        return filteredPlayers;
    }

    private boolean hasNetheriteArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.NETHERITE) {
                    return true;
                }
            }
        }
        return false;
    }

    private boolean hasDiamondArmor(PlayerEntity player) {
        for (EquipmentSlotType slot : new EquipmentSlotType[]{EquipmentSlotType.CHEST, EquipmentSlotType.LEGS,
                EquipmentSlotType.HEAD, EquipmentSlotType.FEET}) {
            ItemStack armor = player.getItemStackFromSlot(slot);
            if (armor.getItem() instanceof ArmorItem armorItem) {
                if (armorItem.getArmorMaterial() == net.minecraft.item.ArmorMaterial.DIAMOND) {
                    return true;
                }
            }
        }
        return false;
    }
}
Java:
Expand Collapse Copy
 if (mode.is("Щит")) {
                                mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шипы 3")) {
                                mc.playerController.windowClick(chest.windowId, 1, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Лук")) {
                                mc.playerController.windowClick(chest.windowId, 2, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Тотемы")) {
                                mc.playerController.windowClick(chest.windowId, 3, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Нодебафф")) {
                                mc.playerController.windowClick(chest.windowId, 4, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шары")) {
                                mc.playerController.windowClick(chest.windowId, 5, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Классик")) {
                                mc.playerController.windowClick(chest.windowId, 6, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Читерский рай")) {
                                mc.playerController.windowClick(chest.windowId, 7, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Незеритка")) {
                                mc.playerController.windowClick(chest.windowId, 8, 0, ClickType.QUICK_MOVE, mc.player);
                            }
                            counterChoice.reset();
                        }

очень круто сделал братка :roflanEbalo:
 
Java:
Expand Collapse Copy
 if (mode.is("Щит")) {
                                mc.playerController.windowClick(chest.windowId, 0, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шипы 3")) {
                                mc.playerController.windowClick(chest.windowId, 1, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Лук")) {
                                mc.playerController.windowClick(chest.windowId, 2, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Тотемы")) {
                                mc.playerController.windowClick(chest.windowId, 3, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Нодебафф")) {
                                mc.playerController.windowClick(chest.windowId, 4, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Шары")) {
                                mc.playerController.windowClick(chest.windowId, 5, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Классик")) {
                                mc.playerController.windowClick(chest.windowId, 6, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Читерский рай")) {
                                mc.playerController.windowClick(chest.windowId, 7, 0, ClickType.QUICK_MOVE, mc.player);
                            } else if (mode.is("Незеритка")) {
                                mc.playerController.windowClick(chest.windowId, 8, 0, ClickType.QUICK_MOVE, mc.player);
                            }
                            counterChoice.reset();
                        }

очень круто сделал братка :roflanEbalo:
щит
 
Не не работает у меня даже дуель не кидается
 
не роботает
 
/del nerabotaet
 
ебать ты накидал свеженького
 
Работает?
 

Похожие темы

Назад
Сверху Снизу