// Path: src/main/java/net/techcable/spudcompat/ProtocolVersion.java
// @RequiredArgsConstructor
// public enum ProtocolVersion {
//     v1_7_10(5),
//     v1_8(47);
// 
//     public boolean isBefore(ProtocolVersion other) {
//         return this.getId() < other.getId();
//     }
// 
//     private final int versionNumber;
// 
//     public int getId() {
//         return versionNumber;
//     }
// 
//     public static final int MAX_ID;
//     private static final ProtocolVersion[] BY_ID;
// 
//     static {
//         int maxId = 0;
//         for (ProtocolVersion version : values()) {
//             if (version.getId() > maxId) {
//                 maxId = version.getId();
//             }
//         }
//         MAX_ID = maxId;
//         BY_ID = new ProtocolVersion[MAX_ID + 1];
//         for (ProtocolVersion version : values()) {
//             int id = version.getId();
//             if (BY_ID[id] != null) throw new AssertionError("Already a version with id: " + id);
//             BY_ID[id] = version;
//         }
//     }
// 
//     public static ProtocolVersion getById(int id) {
//         if (id < 0) {
//             throw new IllegalArgumentException("Negative id: " + id);
//         } else if (id < BY_ID.length) {
//             return BY_ID[id];
//         } else {
//             return null;
//         }
//     }
// }


import lombok.*;
import sun.nio.cs.ext.IBM037;
import java.util.Arrays;
import java.util.stream.Collectors;
import com.google.common.collect.ImmutableSet;
import net.techcable.spudcompat.ProtocolVersion;
package net.techcable.spudcompat.entity;





@Getter
@RequiredArgsConstructor
public enum EntityType {
    // Mobs
    CREEPER(Sort.MOB, 50),
    SKELETON(Sort.MOB, 51),
    SPIDER(Sort.MOB, 52),
    GIANT_ZOMBIE(Sort.MOB, 53),
    ZOMBIE(Sort.MOB, 54),
    SLIME(Sort.MOB, 55),
    GHAST(Sort.MOB, 56),
    ZOMBIE_PIGMAN(Sort.MOB, 57),
    ENDERMAN(Sort.MOB, 58),
    CAVE_SPIDER(Sort.MOB, 59),
    SILVERFISH(Sort.MOB, 60),
    BLAZE(Sort.MOB, 61),
    MAGMA_CUBE(Sort.MOB, 62),
    ENDER_DRAGON(Sort.MOB, 63),
    WITHER(Sort.MOB, 64),
    BAT(Sort.MOB, 65),
    WITCH(Sort.MOB, 66),
    ENDERMITE(Sort.MOB, 67) {
        @Override
// Path: src/main/java/net/techcable/spudcompat/ProtocolVersion.java
// @RequiredArgsConstructor
// public enum ProtocolVersion {
//     v1_7_10(5),
//     v1_8(47);
// 
//     public boolean isBefore(ProtocolVersion other) {
//         return this.getId() < other.getId();
//     }
// 
//     private final int versionNumber;
// 
//     public int getId() {
//         return versionNumber;
//     }
// 
//     public static final int MAX_ID;
//     private static final ProtocolVersion[] BY_ID;
// 
//     static {
//         int maxId = 0;
//         for (ProtocolVersion version : values()) {
//             if (version.getId() > maxId) {
//                 maxId = version.getId();
//             }
//         }
//         MAX_ID = maxId;
//         BY_ID = new ProtocolVersion[MAX_ID + 1];
//         for (ProtocolVersion version : values()) {
//             int id = version.getId();
//             if (BY_ID[id] != null) throw new AssertionError("Already a version with id: " + id);
//             BY_ID[id] = version;
//         }
//     }
// 
//     public static ProtocolVersion getById(int id) {
//         if (id < 0) {
//             throw new IllegalArgumentException("Negative id: " + id);
//         } else if (id < BY_ID.length) {
//             return BY_ID[id];
//         } else {
//             return null;
//         }
//     }
// }


// Path: src/main/java/net/techcable/spudcompat/entity/EntityType.java
import lombok.*;
import sun.nio.cs.ext.IBM037;
import java.util.Arrays;
import java.util.stream.Collectors;
import com.google.common.collect.ImmutableSet;
import net.techcable.spudcompat.ProtocolVersion;

package net.techcable.spudcompat.entity;





@Getter
@RequiredArgsConstructor
public enum EntityType {
    // Mobs
    CREEPER(Sort.MOB, 50),
    SKELETON(Sort.MOB, 51),
    SPIDER(Sort.MOB, 52),
    GIANT_ZOMBIE(Sort.MOB, 53),
    ZOMBIE(Sort.MOB, 54),
    SLIME(Sort.MOB, 55),
    GHAST(Sort.MOB, 56),
    ZOMBIE_PIGMAN(Sort.MOB, 57),
    ENDERMAN(Sort.MOB, 58),
    CAVE_SPIDER(Sort.MOB, 59),
    SILVERFISH(Sort.MOB, 60),
    BLAZE(Sort.MOB, 61),
    MAGMA_CUBE(Sort.MOB, 62),
    ENDER_DRAGON(Sort.MOB, 63),
    WITHER(Sort.MOB, 64),
    BAT(Sort.MOB, 65),
    WITCH(Sort.MOB, 66),
    ENDERMITE(Sort.MOB, 67) {
        @Override
        public int getId(ProtocolVersion version) {