Implemented Bee properties
This commit is contained in:
parent
2dceea6fe7
commit
3647a95b27
7 changed files with 50 additions and 7 deletions
|
@ -89,7 +89,11 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
registerType("playing_dead", false); // TODO fix disabling
|
registerType("playing_dead", false); // TODO fix disabling
|
||||||
|
|
||||||
// Bat
|
// Bat
|
||||||
registerType("hanging", false); // TODO
|
registerType("hanging", false);
|
||||||
|
|
||||||
|
// Bee
|
||||||
|
registerType("angry", false);
|
||||||
|
registerType("has_nectar", false);
|
||||||
|
|
||||||
// Pufferfish
|
// Pufferfish
|
||||||
registerType("puff_state", null); // TODO: Make a puff state enum class
|
registerType("puff_state", null); // TODO: Make a puff state enum class
|
||||||
|
@ -109,10 +113,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
registerType("carpet_color", DyeColor.class); // TODO
|
registerType("carpet_color", DyeColor.class); // TODO
|
||||||
registerType("llama_variant", 0); // TODO
|
registerType("llama_variant", 0); // TODO
|
||||||
|
|
||||||
// Bee
|
|
||||||
registerType("angry", false); // TODO
|
|
||||||
registerType("has_nectar", false); // TODO
|
|
||||||
|
|
||||||
// Fox
|
// Fox
|
||||||
registerType("fox_variant", 0); // TODO: 0 = red, 1 = snow
|
registerType("fox_variant", 0); // TODO: 0 = red, 1 = snow
|
||||||
registerType("fox_sitting", false); // TODO
|
registerType("fox_sitting", false); // TODO
|
||||||
|
|
|
@ -46,4 +46,8 @@ public interface MetadataFactory {
|
||||||
|
|
||||||
// Bat
|
// Bat
|
||||||
EntityData batHanging(boolean hanging);
|
EntityData batHanging(boolean hanging);
|
||||||
|
|
||||||
|
// Bee
|
||||||
|
EntityData beeAngry(boolean angry);
|
||||||
|
EntityData beeHasNectar(boolean hasNectar);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,4 +44,14 @@ public class V1_15MetadataFactory extends V1_14MetadataFactory {
|
||||||
public EntityData batHanging(boolean hanging) {
|
public EntityData batHanging(boolean hanging) {
|
||||||
return newEntityData(15, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0));
|
return newEntityData(15, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeAngry(boolean angry) {
|
||||||
|
return newEntityData(17, EntityDataTypes.INT, angry ? 1 : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeHasNectar(boolean hasNectar) {
|
||||||
|
return newEntityData(16, EntityDataTypes.BYTE, (byte) (hasNectar ? 0x08 : 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,4 +84,14 @@ public class V1_17MetadataFactory extends V1_16MetadataFactory {
|
||||||
public EntityData batHanging(boolean hanging) {
|
public EntityData batHanging(boolean hanging) {
|
||||||
return newEntityData(16, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0));
|
return newEntityData(16, EntityDataTypes.BYTE, (byte) (hanging ? 0x01 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeAngry(boolean angry) {
|
||||||
|
return newEntityData(18, EntityDataTypes.INT, angry ? 1 : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeHasNectar(boolean hasNectar) {
|
||||||
|
return newEntityData(17, EntityDataTypes.BYTE, (byte) (hasNectar ? 0x08 : 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,6 +109,16 @@ public class V1_8MetadataFactory implements MetadataFactory {
|
||||||
return newEntityData(16, EntityDataTypes.BYTE, (byte) (hanging ? 1 : 0));
|
return newEntityData(16, EntityDataTypes.BYTE, (byte) (hanging ? 1 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeAngry(boolean angry) {
|
||||||
|
throw new UnsupportedOperationException("The bee properties entity data isn't supported on this version");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityData beeHasNectar(boolean hasNectar) {
|
||||||
|
throw new UnsupportedOperationException("The bee properties entity data isn't supported on this version");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EntityData silent(boolean enabled) {
|
public EntityData silent(boolean enabled) {
|
||||||
return newEntityData(4, EntityDataTypes.BYTE, (byte) (enabled ? 1 : 0));
|
return newEntityData(4, EntityDataTypes.BYTE, (byte) (enabled ? 1 : 0));
|
||||||
|
|
|
@ -263,7 +263,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
|
||||||
if (!version.isNewerThanOrEquals(ServerVersion.V_1_15)) return;
|
if (!version.isNewerThanOrEquals(ServerVersion.V_1_15)) return;
|
||||||
|
|
||||||
register(builder(p, "bee", EntityTypes.BEE)
|
register(builder(p, "bee", EntityTypes.BEE)
|
||||||
.setHologramOffset(-1.375));
|
.setHologramOffset(-1.375)
|
||||||
|
.addProperties("angry", "has_nectar"));
|
||||||
|
|
||||||
if (!version.isNewerThanOrEquals(ServerVersion.V_1_16)) return;
|
if (!version.isNewerThanOrEquals(ServerVersion.V_1_16)) return;
|
||||||
|
|
||||||
|
|
|
@ -171,6 +171,14 @@ public class V1_8PacketFactory implements PacketFactory {
|
||||||
else if (entity.getType().equals(EntityTypes.BAT)) {
|
else if (entity.getType().equals(EntityTypes.BAT)) {
|
||||||
add(data, metadataFactory.batHanging(properties.getProperty(propertyRegistry.getByName("hanging", Boolean.class))));
|
add(data, metadataFactory.batHanging(properties.getProperty(propertyRegistry.getByName("hanging", Boolean.class))));
|
||||||
}
|
}
|
||||||
|
else if (entity.getType().equals(EntityTypes.BEE)) {
|
||||||
|
add(data, metadataFactory.beeAngry(
|
||||||
|
properties.getProperty(propertyRegistry.getByName("angry", Boolean.class))
|
||||||
|
));
|
||||||
|
add(data, metadataFactory.beeHasNectar(
|
||||||
|
properties.getProperty(propertyRegistry.getByName("has_nectar", Boolean.class))
|
||||||
|
));
|
||||||
|
}
|
||||||
if (properties.hasProperty(propertyRegistry.getByName("name"))) {
|
if (properties.hasProperty(propertyRegistry.getByName("name"))) {
|
||||||
add(data, metadataFactory.name(PapiUtil.set(textSerializer, player, properties.getProperty(propertyRegistry.getByName("name", Component.class)))));
|
add(data, metadataFactory.name(PapiUtil.set(textSerializer, player, properties.getProperty(propertyRegistry.getByName("name", Component.class)))));
|
||||||
add(data, metadataFactory.nameShown());
|
add(data, metadataFactory.nameShown());
|
||||||
|
|
Loading…
Reference in a new issue