Client-Side Trap Entity Despawner (AntiTrap)

Anti_Trap_Entity_Despawn Эксплойты (Exploits) HIGH +8 очков

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

Удаляет стойки для брони и вагонетки из клиентского мира через Entity.remove(), снимая блокировку прицела и луча взаимодействия (raycast). Это позволяет беспрепятственно атаковать врагов, взрывать кристаллы и кидать эндер-жемчуг сквозь спам-ловушки из сущностей.

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

Entity.remove

Принудительное удаление сущности из клиентского мира.

EntityType.ARMOR_STAND

Тип сущности стойки для брони, используемый для создания ловушек.

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

// Developer Source (Fabric / Yarn mappings)
public class AntiTrap {
    public static void clearTraps(ClientWorld world) {
        world.getEntities().forEach(e -> {
            if (e.getType() == EntityType.ARMOR_STAND || e.getType() == EntityType.MINECART) {
                e.remove(Entity.RemovalReason.KILLED);
            }
        });
    }
}

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

// Decompiled with Vineflower 1.12 (Intermediary mappings)
public class AntiTrap {
    public static void clearTraps(class_638 world) {
        world.method_18112().forEach(e -> {
            if (e.method_5864().equals(class_1299.field_6131)) {
                e.method_5650(class_5529.field_26999);
            }
        });
    }
}

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

Обнаруживает вызовы Entity.remove (method_5650) с параметром RemovalReason и ссылками на ArmorStand/Minecart.