Added ocelot_type property
This commit is contained in:
parent
0127af865b
commit
1008d31df0
4 changed files with 27 additions and 1 deletions
8
api/src/main/java/lol/pyr/znpcsplus/util/OcelotType.java
Normal file
8
api/src/main/java/lol/pyr/znpcsplus/util/OcelotType.java
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
package lol.pyr.znpcsplus.util;
|
||||||
|
|
||||||
|
public enum OcelotType {
|
||||||
|
OCELOT,
|
||||||
|
TUXEDO,
|
||||||
|
TABBY,
|
||||||
|
SIAMESE,
|
||||||
|
}
|
|
@ -272,6 +272,7 @@ public class ZNpcsPlus extends JavaPlugin {
|
||||||
registerEnumParser(manager, HorseArmor.class, incorrectUsageMessage);
|
registerEnumParser(manager, HorseArmor.class, incorrectUsageMessage);
|
||||||
registerEnumParser(manager, LlamaVariant.class, incorrectUsageMessage);
|
registerEnumParser(manager, LlamaVariant.class, incorrectUsageMessage);
|
||||||
registerEnumParser(manager, MooshroomVariant.class, incorrectUsageMessage);
|
registerEnumParser(manager, MooshroomVariant.class, incorrectUsageMessage);
|
||||||
|
registerEnumParser(manager, OcelotType.class, incorrectUsageMessage);
|
||||||
|
|
||||||
manager.registerCommand("npc", new MultiCommand(loadHelpMessage("root"))
|
manager.registerCommand("npc", new MultiCommand(loadHelpMessage("root"))
|
||||||
.addSubcommand("create", new CreateCommand(npcRegistry, typeRegistry))
|
.addSubcommand("create", new CreateCommand(npcRegistry, typeRegistry))
|
||||||
|
|
|
@ -66,6 +66,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
registerEnumSerializer(HorseArmor.class);
|
registerEnumSerializer(HorseArmor.class);
|
||||||
registerEnumSerializer(LlamaVariant.class);
|
registerEnumSerializer(LlamaVariant.class);
|
||||||
registerEnumSerializer(MooshroomVariant.class);
|
registerEnumSerializer(MooshroomVariant.class);
|
||||||
|
registerEnumSerializer(OcelotType.class);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
registerType("using_item", false); // TODO: fix it for 1.8 and add new property to use offhand item and riptide animation
|
registerType("using_item", false); // TODO: fix it for 1.8 and add new property to use offhand item and riptide animation
|
||||||
|
@ -328,7 +329,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
linkProperties("is_saddled", "is_eating", "is_rearing", "has_mouth_open");
|
linkProperties("is_saddled", "is_eating", "is_rearing", "has_mouth_open");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Slime and Magma Cube
|
// Slime, Magma Cube and Phantom
|
||||||
int sizeIndex;
|
int sizeIndex;
|
||||||
if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) sizeIndex = 16;
|
if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) sizeIndex = 16;
|
||||||
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) sizeIndex = 15;
|
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) sizeIndex = 15;
|
||||||
|
@ -338,6 +339,16 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
else sizeIndex = 16;
|
else sizeIndex = 16;
|
||||||
register(new IntegerProperty("size", sizeIndex, 1, v1_8));
|
register(new IntegerProperty("size", sizeIndex, 1, v1_8));
|
||||||
|
|
||||||
|
// Ocelot
|
||||||
|
if (ver.isOlderThan(ServerVersion.V_1_14)) {
|
||||||
|
int ocelotIndex;
|
||||||
|
if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) ocelotIndex = 15;
|
||||||
|
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) ocelotIndex = 14;
|
||||||
|
else ocelotIndex = 18;
|
||||||
|
if (v1_8) register(new EncodedByteProperty<>("ocelot_type", OcelotType.OCELOT, ocelotIndex, obj -> (byte) obj.ordinal()));
|
||||||
|
else register(new EncodedIntegerProperty<>("ocelot_type", OcelotType.OCELOT, ocelotIndex, Enum::ordinal));
|
||||||
|
}
|
||||||
|
|
||||||
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_11)) return;
|
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_11)) return;
|
||||||
// Spellcaster Illager
|
// Spellcaster Illager
|
||||||
int spellIndex = 12;
|
int spellIndex = 12;
|
||||||
|
|
|
@ -110,6 +110,7 @@ public class NpcTypeImpl implements NpcType {
|
||||||
ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion();
|
ServerVersion version = PacketEvents.getAPI().getServerManager().getVersion();
|
||||||
addProperties("fire", "invisible", "silent", "look",
|
addProperties("fire", "invisible", "silent", "look",
|
||||||
"potion_color", "potion_ambient", "dinnerbone");
|
"potion_color", "potion_ambient", "dinnerbone");
|
||||||
|
// TODO: make this look nicer after completing the rest of the properties
|
||||||
if (version.isNewerThanOrEquals(ServerVersion.V_1_9)) addProperties("glow");
|
if (version.isNewerThanOrEquals(ServerVersion.V_1_9)) addProperties("glow");
|
||||||
if (version.isNewerThanOrEquals(ServerVersion.V_1_14)) {
|
if (version.isNewerThanOrEquals(ServerVersion.V_1_14)) {
|
||||||
addProperties("pose");
|
addProperties("pose");
|
||||||
|
@ -138,6 +139,11 @@ public class NpcTypeImpl implements NpcType {
|
||||||
if (EntityTypes.isTypeInstanceOf(type, EntityTypes.SLIME) || EntityTypes.isTypeInstanceOf(type, EntityTypes.PHANTOM)) {
|
if (EntityTypes.isTypeInstanceOf(type, EntityTypes.SLIME) || EntityTypes.isTypeInstanceOf(type, EntityTypes.PHANTOM)) {
|
||||||
addProperties("size");
|
addProperties("size");
|
||||||
}
|
}
|
||||||
|
if (version.isOlderThan(ServerVersion.V_1_14)) {
|
||||||
|
if (EntityTypes.isTypeInstanceOf(type, EntityTypes.OCELOT)) {
|
||||||
|
addProperties("ocelot_type");
|
||||||
|
}
|
||||||
|
}
|
||||||
return new NpcTypeImpl(name, type, hologramOffset, new HashSet<>(allowedProperties), defaultProperties);
|
return new NpcTypeImpl(name, type, hologramOffset, new HashSet<>(allowedProperties), defaultProperties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue