ghast attacking property

This commit is contained in:
Pyrbu 2023-08-07 15:27:00 +02:00
parent 923926b0b4
commit 83b654fd76
8 changed files with 10 additions and 39 deletions

@ -113,9 +113,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
// Frog // Frog
registerType("frog_variant", FrogVariant.TEMPERATE); registerType("frog_variant", FrogVariant.TEMPERATE);
// Ghast
registerType("attacking", false);
// Guardian // Guardian
registerType("is_elder", false); // TODO: ensure it only works till 1.10. Note: index is wrong on wiki.vg registerType("is_elder", false); // TODO: ensure it only works till 1.10. Note: index is wrong on wiki.vg
@ -207,6 +204,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
public void registerTypes(PacketFactory packetFactory) { public void registerTypes(PacketFactory packetFactory) {
ServerVersion ver = PacketEvents.getAPI().getServerManager().getVersion(); ServerVersion ver = PacketEvents.getAPI().getServerManager().getVersion();
boolean legacyBooleans = ver.isOlderThan(ServerVersion.V_1_9);
register(new EquipmentProperty(packetFactory, "helmet", EquipmentSlot.HELMET)); register(new EquipmentProperty(packetFactory, "helmet", EquipmentSlot.HELMET));
register(new EquipmentProperty(packetFactory, "chestplate", EquipmentSlot.CHEST_PLATE)); register(new EquipmentProperty(packetFactory, "chestplate", EquipmentSlot.CHEST_PLATE));
@ -228,7 +226,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
register(new SimpleBitsetProperty("invisible", 0, 0x20)); register(new SimpleBitsetProperty("invisible", 0, 0x20));
linkProperties("glow", "fire", "invisible"); linkProperties("glow", "fire", "invisible");
register(new SimpleBooleanProperty("silent", 4, false, ver.isOlderThan(ServerVersion.V_1_9))); register(new SimpleBooleanProperty("silent", 4, false, legacyBooleans));
final int armorStandIndex; final int armorStandIndex;
if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) armorStandIndex = 15; if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) armorStandIndex = 15;
@ -271,6 +269,14 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
register(new RotationProperty("left_leg_rotation", armorStandRotationIndex++, new Vector3f(-1, 0, -1))); register(new RotationProperty("left_leg_rotation", armorStandRotationIndex++, new Vector3f(-1, 0, -1)));
register(new RotationProperty("right_leg_rotation", armorStandRotationIndex, new Vector3f(1, 0, 1))); register(new RotationProperty("right_leg_rotation", armorStandRotationIndex, new Vector3f(1, 0, 1)));
final int ghastAttackingIndex;
if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) ghastAttackingIndex = 16;
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) ghastAttackingIndex = 15;
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_14)) ghastAttackingIndex = 14;
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_10)) ghastAttackingIndex = 12;
else if (ver.isNewerThanOrEquals(ServerVersion.V_1_9)) ghastAttackingIndex = 11;
else ghastAttackingIndex = 16;
register(new SimpleBooleanProperty("attacking", ghastAttackingIndex, false, legacyBooleans));
} }
private void registerSerializer(PropertySerializer<?> serializer) { private void registerSerializer(PropertySerializer<?> serializer) {

@ -73,15 +73,10 @@ public interface MetadataFactory {
// Frog // Frog
EntityData frogVariant(int variant); EntityData frogVariant(int variant);
// Ghast
EntityData ghastAttacking(boolean attacking);
// Goat // Goat
EntityData goatHasLeftHorn(boolean hasLeftHorn); EntityData goatHasLeftHorn(boolean hasLeftHorn);
EntityData goatHasRightHorn(boolean hasRightHorn); EntityData goatHasRightHorn(boolean hasRightHorn);
// Guardian
// Hoglin // Hoglin
EntityData hoglinImmuneToZombification(boolean immuneToZombification); EntityData hoglinImmuneToZombification(boolean immuneToZombification);

@ -42,11 +42,6 @@ public class V1_10MetadataFactory extends V1_9MetadataFactory {
return newEntityData(13, EntityDataTypes.BOOLEAN, charged); return newEntityData(13, EntityDataTypes.BOOLEAN, charged);
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(12, EntityDataTypes.BOOLEAN, attacking);
}
@Override @Override
public EntityData villagerData(int type, int profession, int level) { public EntityData villagerData(int type, int profession, int level) {
return newEntityData(13, EntityDataTypes.INT, profession); return newEntityData(13, EntityDataTypes.INT, profession);

@ -92,11 +92,6 @@ public class V1_14MetadataFactory extends V1_13MetadataFactory {
return newEntityData(16, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0))); return newEntityData(16, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0)));
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(14, EntityDataTypes.BOOLEAN, attacking);
}
@Override @Override
public EntityData villagerData(int type, int profession, int level) { public EntityData villagerData(int type, int profession, int level) {
return newEntityData(16, EntityDataTypes.VILLAGER_DATA, new VillagerData(type, profession, level)); return newEntityData(16, EntityDataTypes.VILLAGER_DATA, new VillagerData(type, profession, level));

@ -80,11 +80,6 @@ public class V1_15MetadataFactory extends V1_14MetadataFactory {
return newEntityData(17, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0) | (facePlanted ? 0x40 : 0))); return newEntityData(17, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0) | (facePlanted ? 0x40 : 0)));
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(15, EntityDataTypes.BOOLEAN, attacking);
}
@Override @Override
public EntityData villagerData(int type, int profession, int level) { public EntityData villagerData(int type, int profession, int level) {
return newEntityData(17, EntityDataTypes.VILLAGER_DATA, new VillagerData(type, profession, level)); return newEntityData(17, EntityDataTypes.VILLAGER_DATA, new VillagerData(type, profession, level));

@ -131,11 +131,6 @@ public class V1_17MetadataFactory extends V1_16MetadataFactory {
return newEntityData(18, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0) | (facePlanted ? 0x40 : 0))); return newEntityData(18, EntityDataTypes.BYTE, (byte) ((sitting ? 0x01 : 0) | (crouching ? 0x04 : 0) | (sleeping ? 0x20 : 0) | (facePlanted ? 0x40 : 0)));
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(16, EntityDataTypes.BOOLEAN, attacking);
}
@Override @Override
public EntityData goatHasLeftHorn(boolean hasLeftHorn) { public EntityData goatHasLeftHorn(boolean hasLeftHorn) {
return newEntityData(18, EntityDataTypes.BOOLEAN, hasLeftHorn); return newEntityData(18, EntityDataTypes.BOOLEAN, hasLeftHorn);

@ -145,11 +145,6 @@ public class V1_8MetadataFactory implements MetadataFactory {
throw new UnsupportedOperationException("The frog variant entity data isn't supported on this version"); throw new UnsupportedOperationException("The frog variant entity data isn't supported on this version");
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(16, EntityDataTypes.BYTE, (byte) (attacking ? 1 : 0));
}
@Override @Override
public EntityData goatHasLeftHorn(boolean hasLeftHorn) { public EntityData goatHasLeftHorn(boolean hasLeftHorn) {
throw new UnsupportedOperationException("The goat horn entity data isn't supported on this version"); throw new UnsupportedOperationException("The goat horn entity data isn't supported on this version");

@ -32,11 +32,6 @@ public class V1_9MetadataFactory extends V1_8MetadataFactory {
return newEntityData(12, EntityDataTypes.BOOLEAN, charged); return newEntityData(12, EntityDataTypes.BOOLEAN, charged);
} }
@Override
public EntityData ghastAttacking(boolean attacking) {
return newEntityData(11, EntityDataTypes.BOOLEAN, attacking);
}
@Override @Override
public EntityData villagerData(int type, int profession, int level) { public EntityData villagerData(int type, int profession, int level) {
return newEntityData(12, EntityDataTypes.INT, profession); return newEntityData(12, EntityDataTypes.INT, profession);