KillAura Target Selector

KillAura_Target_Sorting Бой (Combat) HIGH +8 очков

🎮 Влияние на механику Minecraft

Перебирает список загруженных сущностей, фильтрует доступных игроков и мобов, сортирует их по наименьшей дистанции или уровню здоровья (Comparator) и циклично распределяет авто-удары по целям.

🔍 Анализируемые функции и API

ClientWorld.getEntities

Получение коллекции сущностей из мира клиента (method_18112).

Comparator.comparingDouble

Сортировка сущностей по дистанции или здоровью для приоритизации DPS.

💻 Реализация в моде (Исходный код)

// Developer Source (Fabric / Yarn mappings)
public class KillAuraTargeting {
    public static List<PlayerEntity> findTargets(MinecraftClient client, double range) {
        return StreamSupport.stream(client.world.getEntities().spliterator(), false)
            .filter(e -> e instanceof PlayerEntity && e != client.player && e.isAlive())
            .map(e -> (PlayerEntity) e)
            .filter(e -> client.player.squaredDistanceTo(e) <= range * range)
            .sorted(Comparator.comparingDouble(e -> client.player.squaredDistanceTo(e)))
            .collect(Collectors.toList());
    }
}

⚙️ Декомпилированный вид (Vineflower)

// Decompiled with Vineflower 1.12 (Intermediary mappings)
public class KillAuraTargeting {
    public static List<class_1657> findTargets(class_310 client, double range) {
        return StreamSupport.stream(client.field_1687.method_18112().spliterator(), false)
            .filter(e -> e instanceof class_1657 && e != client.field_1724 && e.method_5805())
            .map(e -> (class_1657)e)
            .filter(e -> client.field_1724.method_5739(e) <= range * range)
            .sorted(Comparator.comparingDouble(e -> client.field_1724.method_5739(e)))
            .collect(Collectors.toList());
    }
}

🛡️ Сигнатура байткода и статический детект

Итерация по сущностям мира (getEntities) в связке с расчетом дистанции (squaredDistanceTo) и циклом атаки.