geforkt von Mirrors/Paper
Added entity type IDs as per vanilla spec.
By: Jeremy Wood <farachan@gmail.com>
Dieser Commit ist enthalten in:
Ursprung
1749f26e03
Commit
b2d95b3937
@ -6,45 +6,50 @@ import java.util.Map;
|
||||
|
||||
public enum CreatureType {
|
||||
// These strings MUST match the strings in nms.EntityTypes and are case sensitive.
|
||||
CHICKEN("Chicken", Chicken.class),
|
||||
COW("Cow", Cow.class),
|
||||
CREEPER("Creeper", Creeper.class),
|
||||
GHAST("Ghast", Ghast.class),
|
||||
GIANT("Giant", Giant.class),
|
||||
MONSTER("Monster", Monster.class),
|
||||
PIG("Pig", Pig.class),
|
||||
PIG_ZOMBIE("PigZombie", PigZombie.class),
|
||||
SHEEP("Sheep", Sheep.class),
|
||||
SKELETON("Skeleton", Skeleton.class),
|
||||
SLIME("Slime", Slime.class),
|
||||
SPIDER("Spider", Spider.class),
|
||||
SQUID("Squid", Squid.class),
|
||||
ZOMBIE("Zombie", Zombie.class),
|
||||
WOLF("Wolf", Wolf.class),
|
||||
CAVE_SPIDER("CaveSpider", CaveSpider.class),
|
||||
ENDERMAN("Enderman", Enderman.class),
|
||||
SILVERFISH("Silverfish", Silverfish.class),
|
||||
ENDER_DRAGON("EnderDragon", EnderDragon.class),
|
||||
VILLAGER("Villager", Villager.class),
|
||||
BLAZE("Blaze", Blaze.class),
|
||||
MUSHROOM_COW("MushroomCow", MushroomCow.class),
|
||||
MAGMA_CUBE("LavaSlime", MagmaCube.class),
|
||||
SNOWMAN("SnowMan", Snowman.class);
|
||||
CREEPER("Creeper", Creeper.class, 50),
|
||||
SKELETON("Skeleton", Skeleton.class, 51),
|
||||
SPIDER("Spider", Spider.class, 52),
|
||||
GIANT("Giant", Giant.class, 53),
|
||||
ZOMBIE("Zombie", Zombie.class, 54),
|
||||
SLIME("Slime", Slime.class, 55),
|
||||
GHAST("Ghast", Ghast.class, 56),
|
||||
PIG_ZOMBIE("PigZombie", PigZombie.class, 57),
|
||||
ENDERMAN("Enderman", Enderman.class, 58),
|
||||
CAVE_SPIDER("CaveSpider", CaveSpider.class, 59),
|
||||
SILVERFISH("Silverfish", Silverfish.class, 60),
|
||||
BLAZE("Blaze", Blaze.class, 61),
|
||||
MAGMA_CUBE("LavaSlime", MagmaCube.class, 62),
|
||||
ENDER_DRAGON("EnderDragon", EnderDragon.class, 63),
|
||||
PIG("Pig", Pig.class, 90),
|
||||
SHEEP("Sheep", Sheep.class, 91),
|
||||
COW("Cow", Cow.class, 92),
|
||||
CHICKEN("Chicken", Chicken.class, 93),
|
||||
SQUID("Squid", Squid.class, 94),
|
||||
WOLF("Wolf", Wolf.class, 95),
|
||||
MUSHROOM_COW("MushroomCow", MushroomCow.class, 96),
|
||||
SNOWMAN("SnowMan", Snowman.class, 97),
|
||||
VILLAGER("Villager", Villager.class, 120);
|
||||
|
||||
private String name;
|
||||
private Class<? extends Entity> clazz;
|
||||
private short typeId;
|
||||
|
||||
private static final Map<String, CreatureType> mapping = new HashMap<String, CreatureType>();
|
||||
private static final Map<String, CreatureType> NAME_MAP = new HashMap<String, CreatureType>();
|
||||
private static final Map<Short, CreatureType> ID_MAP = new HashMap<Short, CreatureType>();
|
||||
|
||||
static {
|
||||
for (CreatureType type : EnumSet.allOf(CreatureType.class)) {
|
||||
mapping.put(type.name, type);
|
||||
NAME_MAP.put(type.name, type);
|
||||
if (type.typeId != 0) {
|
||||
ID_MAP.put(type.typeId, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private CreatureType(String name, Class<? extends Entity> clazz) {
|
||||
private CreatureType(String name, Class<? extends Entity> clazz, int typeId) {
|
||||
this.name = name;
|
||||
this.clazz = clazz;
|
||||
this.typeId = (short) typeId;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
@ -55,7 +60,18 @@ public enum CreatureType {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
public static CreatureType fromName(String name) {
|
||||
return mapping.get(name);
|
||||
public short getTypeId() {
|
||||
return typeId;
|
||||
}
|
||||
}
|
||||
|
||||
public static CreatureType fromName(String name) {
|
||||
return NAME_MAP.get(name);
|
||||
}
|
||||
|
||||
public static CreatureType fromId(int id) {
|
||||
if (id > Short.MAX_VALUE) {
|
||||
return null;
|
||||
}
|
||||
return ID_MAP.get((short) id);
|
||||
}
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren