- Выберите загрузчик игры
- OptiFine
 
Не знаю кому это надо но держите.
Это функция в экспе, а точнее команда .search с помощью неё можно узнать координаты любого игрока с любого расстояния.
.search (ник) - поиск координат игрока по нику
.search near (количество игроков) - ищет самых ближайших игроков к вам
В близи с игроком работает, а из далека не проверял.
Есть гпт код.
тутор:
1. Создаём по этому пути - im/expensive/command/impl/feature/ файл SearchCommand.java
2. Вставляем код
3. Запускаем клиент
Это мой первый пост с функцией, не судите строго
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Если не работает из далека не бейте палками
				
			Это функция в экспе, а точнее команда .search с помощью неё можно узнать координаты любого игрока с любого расстояния.
.search (ник) - поиск координат игрока по нику
.search near (количество игроков) - ищет самых ближайших игроков к вам
В близи с игроком работает, а из далека не проверял.
Есть гпт код.
тутор:
1. Создаём по этому пути - im/expensive/command/impl/feature/ файл SearchCommand.java
2. Вставляем код
3. Запускаем клиент
Это мой первый пост с функцией, не судите строго
			
				pasta expi:
			
		
		
		package im.expensive.command.impl.feature;
import im.expensive.command.Command;
import im.expensive.command.CommandWithAdvice;
import im.expensive.command.Parameters;
import im.expensive.command.Prefix;
import im.expensive.command.Logger;
import im.expensive.command.impl.CommandException;
import im.expensive.utils.client.IMinecraft;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.TextFormatting;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Collectors;
public class SearchCommand implements Command, CommandWithAdvice, IMinecraft {
    private final Prefix prefix;
    private final Logger logger;
    private static final Map<String, Map<Integer, String>> serverCopyData = new HashMap<>();
    private static final Map<String, Map<UUID, Integer>> serverPlayerIDs = new HashMap<>();
    private static final Random random = new Random();
    public SearchCommand(Prefix prefix, Logger logger) {
        this.prefix = prefix;
        this.logger = logger;
    }
    private String getServerKey() {
        if (mc.getCurrentServerData() != null)
            return mc.getCurrentServerData().serverIP;
        return "singleplayer";
    }
    private int generateUniqueId(String server) {
        serverCopyData.putIfAbsent(server, new HashMap<>());
        int id;
        do {
            id = 10000 + random.nextInt(90000); // 10000..99999
        } while (serverCopyData.get(server).containsKey(id));
        return id;
    }
    private int getOrCreatePlayerID(String server, PlayerEntity player) {
        serverPlayerIDs.putIfAbsent(server, new HashMap<>());
        Map<UUID, Integer> ids = serverPlayerIDs.get(server);
        UUID uuid = player.getUniqueID();
        if (ids.containsKey(uuid))
            return ids.get(uuid);
        int newId = generateUniqueId(server);
        ids.put(uuid, newId);
        return newId;
    }
    @Override
    public void execute(Parameters parameters) {
        if (mc.player == null || mc.world == null) {
            logger.log(TextFormatting.RED + "Вы должны быть в игре!");
            return;
        }
        String server = getServerKey();
        serverCopyData.putIfAbsent(server, new HashMap<>());
        Map<Integer, String> copyData = serverCopyData.get(server);
        if (parameters.asString(0).isPresent() && parameters.asString(0).get().equalsIgnoreCase("copy")) {
            int id = parameters.asInt(1).orElse(-1);
            if (copyData.containsKey(id)) {
                String coords = copyData.get(id);
                try {
                    StringSelection selection = new StringSelection(coords);
                    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, null);
                    logger.log(TextFormatting.GREEN + "Координаты скопированы: " + TextFormatting.WHITE + coords);
                } catch (Exception e) {
                    logger.log(TextFormatting.RED + "Не удалось скопировать в буфер! Координаты: " + coords);
                }
            } else {
                logger.log(TextFormatting.RED + "ID не найден!");
            }
            return;
        }
        if (parameters.asString(0).isPresent() && parameters.asString(0).get().equalsIgnoreCase("near")) {
            int count = parameters.asInt(1).orElse(5);
            List<? extends PlayerEntity> players = mc.world.getPlayers().stream()
                    .filter(p -> !p.getUniqueID().equals(mc.player.getUniqueID()))
                    .sorted(Comparator.comparingDouble(p -> p.getDistance(mc.player)))
                    .limit(count)
                    .collect(Collectors.toList());
            if (players == null || players.isEmpty()) {
                logger.log(TextFormatting.RED + "Рядом нет игроков!");
                return;
            }
            logger.log(TextFormatting.GREEN + "Ближайшие игроки:");
            for (PlayerEntity player : players) {
                int id = getOrCreatePlayerID(server, player);
                String coords = (int) player.getPosX() + " " + (int) player.getPosY() + " " + (int) player.getPosZ();
                copyData.put(id, coords);
                logger.log(TextFormatting.YELLOW + player.getName().getString() + TextFormatting.WHITE +
                        " | X: " + (int) player.getPosX() +
                        " Y: " + (int) player.getPosY() +
                        " Z: " + (int) player.getPosZ() +
                        TextFormatting.GRAY + " (" + String.format("%.1f", mc.player.getDistance(player)) + " блоков)" +
                        TextFormatting.AQUA + " | .search copy " + id);
            }
            return;
        }
        String playerName = parameters.asString(0)
                .orElseThrow(() -> new CommandException(TextFormatting.RED + "Укажите ник игрока!"));
        PlayerEntity targetPlayer = mc.world.getPlayers().stream()
                .filter(p -> p.getName().getString().equalsIgnoreCase(playerName))
                .findFirst()
                .orElse(null);
        if (targetPlayer != null) {
            String coords = (int) targetPlayer.getPosX() + " " + (int) targetPlayer.getPosY() + " " + (int) targetPlayer.getPosZ();
            int id = getOrCreatePlayerID(server, targetPlayer);
            copyData.put(id, coords);
            logger.log(TextFormatting.GREEN + "Игрок найден: " + TextFormatting.WHITE + playerName);
            logger.log(TextFormatting.YELLOW + "Координаты: " + TextFormatting.WHITE + coords);
            logger.log(TextFormatting.YELLOW + "Расстояние: " + TextFormatting.WHITE +
                    String.format("%.1f", mc.player.getDistance(targetPlayer)) + " блоков");
            logger.log(TextFormatting.AQUA + "Команда копирования: .search copy " + id);
            return;
        }
        if (mc.getConnection() != null) {
            boolean found = mc.getConnection().getPlayerInfoMap().stream()
                    .map(NetworkPlayerInfo::getGameProfile)
                    .anyMatch(info -> info.getName().equalsIgnoreCase(playerName));
            if (found)
                logger.log(TextFormatting.GREEN + "Игрок найден на сервере, но слишком далеко.");
            else
                logger.log(TextFormatting.RED + "Игрок не найден!");
        } else {
            logger.log(TextFormatting.RED + "Ошибка подключения к серверу!");
        }
    }
    @Override
    public String name() {
        return "search";
    }
    @Override
    public String description() {
        return "Поиск игроков и копирование координат";
    }
    @Override
    public java.util.List<String> adviceMessage() {
        String p = prefix.get();
        return java.util.List.of(
                p + "search <ник>",
                p + "search near <кол-во>",
                p + "search copy <ID>"
        );
    }
}
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
							
							 
				 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		