package im.expensive.functions.impl.misc;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.StringTextComponent;
import java.util.HashSet;
import java.util.Set;
@FunctionRegister(name = "PlayerFinder", type = Category.Misc)
public class PlayerFinder extends Function {
private final Set<String> trackedPlayers = new HashSet<>();
private int tickCounter = 0;
// Добавить игрока для отслеживания
public void addPlayerToTrack(String nickname) {
trackedPlayers.add(nickname);
}
// Удалить игрока из отслеживания
public void removePlayerFromTrack(String nickname) {
trackedPlayers.remove(nickname);
}
@Subscribe
private void onUpdate(EventUpdate e) {
if (mc.player == null || mc.world == null) return;
tickCounter++;
// Проверяем игроков каждые 20 тиков (1 секунда)
if (tickCounter < 20) return;
tickCounter = 0;
for (PlayerEntity player : mc.world.getPlayers()) {
if (player == mc.player) continue; // Игнорируем себя
String nickname = player.getName().getString();
if (trackedPlayers.contains(nickname)) {
String coords = String.format(
"Игрок %s найден на координатах: X=%.1f, Y=%.1f, Z=%.1f",
nickname,
player.getPosX(),
player.getPosY(),
player.getPosZ()
);
// Отправляем сообщение в чат
mc.player.sendMessage(new StringTextComponent(coords), mc.player.getUniqueID());
}
}
}
// Пример использования (можно вызывать из других мест кода):
// playerFinder.addPlayerToTrack("Notch");
// playerFinder.removePlayerFromTrack("Notch");
@override
public boolean onDisable() {
super.onDisable();
trackedPlayers.clear();
tickCounter = 0;
return false;
}
}хз там ещё дополнить вроде надо
playerFinder.addPlayerToTrack("Никнейм"); вот сама команда