Merge remote-tracking branch 'origin/2.X' into 2.X

This commit is contained in:
Pyrbu 2024-07-04 00:25:34 +02:00
commit e7a82d55e7
6 changed files with 35 additions and 13 deletions

View file

@ -20,5 +20,8 @@ public enum NpcPose {
ROARING, ROARING,
SNIFFING, SNIFFING,
EMERGING, EMERGING,
DIGGING DIGGING,
SLIDING,
SHOOTING,
INHALING,
} }

View file

@ -8,7 +8,7 @@ runServer {
javaLauncher = javaToolchains.launcherFor { javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21) languageVersion = JavaLanguageVersion.of(21)
} }
minecraftVersion "1.20.6" minecraftVersion "1.21"
} }
processResources { processResources {
@ -20,7 +20,7 @@ dependencies {
implementation "com.google.code.gson:gson:2.10.1" // JSON parsing implementation "com.google.code.gson:gson:2.10.1" // JSON parsing
implementation "org.bstats:bstats-bukkit:3.0.2" // Plugin stats implementation "org.bstats:bstats-bukkit:3.0.2" // Plugin stats
implementation "me.robertlit:SpigotResourcesAPI:2.0" // Spigot API wrapper for update checker implementation "me.robertlit:SpigotResourcesAPI:2.0" // Spigot API wrapper for update checker
implementation "com.github.retrooper.packetevents:spigot:2.3.0" // Packets implementation "com.github.retrooper:packetevents-spigot:2.4.0" // Packets
implementation "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs implementation "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs
implementation "lol.pyr:director-adventure:2.1.2" // Commands implementation "lol.pyr:director-adventure:2.1.2" // Commands

View file

@ -659,6 +659,11 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
// Wolf // Wolf
register(new EncodedIntegerProperty<>("wolf_variant", WoldVariant.PALE, wolfIndex, WoldVariant::getId, EntityDataTypes.WOLF_VARIANT)); register(new EncodedIntegerProperty<>("wolf_variant", WoldVariant.PALE, wolfIndex, WoldVariant::getId, EntityDataTypes.WOLF_VARIANT));
if (!ver.isNewerThanOrEquals(ServerVersion.V_1_21)) return;
// Bogged
register(new BooleanProperty("bogged_sheared", 16, false, legacyBooleans));
} }
private void registerSerializer(PropertySerializer<?> serializer) { private void registerSerializer(PropertySerializer<?> serializer) {

View file

@ -18,7 +18,9 @@ public class ForceBodyRotationProperty extends DummyProperty<Boolean> {
@Override @Override
public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) { public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) {
if (entity.getProperty(this)) {
Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 2L); Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 2L);
Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 6L); Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 6L);
} }
} }
}

View file

@ -56,6 +56,7 @@ public class NpcImpl extends Viewable implements Npc {
UNSAFE_hideAll(); UNSAFE_hideAll();
this.type = type; this.type = type;
entity = new PacketEntity(packetFactory, this, type.getType(), entity.getLocation()); entity = new PacketEntity(packetFactory, this, type.getType(), entity.getLocation());
hologram.setLocation(location.withY(location.getY() + type.getHologramOffset()));
UNSAFE_showAll(); UNSAFE_showAll();
} }

View file

@ -48,7 +48,7 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
// Most hologram offsets generated using Entity#getHeight() in 1.19.4 // Most hologram offsets generated using Entity#getHeight() in 1.19.4
register(builder(p, "armor_stand", EntityTypes.ARMOR_STAND) register(builder(p, "armor_stand", EntityTypes.ARMOR_STAND)
.setHologramOffset(-0.15) .setHologramOffset(0)
.addEquipmentProperties() .addEquipmentProperties()
.addProperties("small", "arms", "base_plate", "head_rotation", "body_rotation", "left_arm_rotation", "right_arm_rotation", "left_leg_rotation", "right_leg_rotation")); .addProperties("small", "arms", "base_plate", "head_rotation", "body_rotation", "left_arm_rotation", "right_arm_rotation", "left_leg_rotation", "right_leg_rotation"));
@ -106,7 +106,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
register(builder(p, "iron_golem", EntityTypes.IRON_GOLEM) register(builder(p, "iron_golem", EntityTypes.IRON_GOLEM)
.setHologramOffset(0.725)); .setHologramOffset(0.725));
register(builder(p, "magma_cube", EntityTypes.MAGMA_CUBE)); // TODO: Hologram offset scaling with size property register(builder(p, "magma_cube", EntityTypes.MAGMA_CUBE)
.setHologramOffset(-1.455)); // TODO: Hologram offset scaling with size property
register(builder(p, "mooshroom", EntityTypes.MOOSHROOM) register(builder(p, "mooshroom", EntityTypes.MOOSHROOM)
.setHologramOffset(-0.575) .setHologramOffset(-0.575)
@ -137,7 +138,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
register(builder(p, "skeleton_horse", EntityTypes.SKELETON_HORSE) register(builder(p, "skeleton_horse", EntityTypes.SKELETON_HORSE)
.setHologramOffset(-0.375)); .setHologramOffset(-0.375));
register(builder(p, "slime", EntityTypes.SLIME)); // TODO: Hologram offset scaling with size property register(builder(p, "slime", EntityTypes.SLIME)
.setHologramOffset(-1.455)); // TODO: Hologram offset scaling with size property
register(builder(p, "snow_golem", EntityTypes.SNOW_GOLEM) register(builder(p, "snow_golem", EntityTypes.SNOW_GOLEM)
.setHologramOffset(-0.075) .setHologramOffset(-0.075)
@ -230,7 +232,7 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
.addEquipmentProperties()); .addEquipmentProperties());
register(builder(p, "zombie_villager", EntityTypes.ZOMBIE_VILLAGER) register(builder(p, "zombie_villager", EntityTypes.ZOMBIE_VILLAGER)
.setHologramOffset(-1.0) .setHologramOffset(-0.025)
.addEquipmentProperties()); .addEquipmentProperties());
if (!version.isNewerThanOrEquals(ServerVersion.V_1_12)) return; if (!version.isNewerThanOrEquals(ServerVersion.V_1_12)) return;
@ -315,7 +317,7 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
.addProperties("hoglin_immune_to_zombification")); .addProperties("hoglin_immune_to_zombification"));
register(builder(p, "piglin", EntityTypes.PIGLIN) register(builder(p, "piglin", EntityTypes.PIGLIN)
.setHologramOffset(-1.0) .setHologramOffset(-0.025)
.addEquipmentProperties() .addEquipmentProperties()
.addProperties("piglin_baby", "piglin_charging_crossbow", "piglin_dancing")); .addProperties("piglin_baby", "piglin_charging_crossbow", "piglin_dancing"));
@ -363,18 +365,27 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
if (!version.isNewerThanOrEquals(ServerVersion.V_1_20)) return; if (!version.isNewerThanOrEquals(ServerVersion.V_1_20)) return;
register(builder(p, "sniffer", EntityTypes.SNIFFER) register(builder(p, "sniffer", EntityTypes.SNIFFER)
.setHologramOffset(0.125) .setHologramOffset(0.075)
.addProperties("sniffer_state")); .addProperties("sniffer_state"));
register(builder(p, "camel", EntityTypes.CAMEL) register(builder(p, "camel", EntityTypes.CAMEL)
.setHologramOffset(0.25) .setHologramOffset(0.4)
.addProperties("bashing", "camel_sitting")); .addProperties("bashing", "camel_sitting"));
if (!version.isNewerThanOrEquals(ServerVersion.V_1_20_5)) return; if (!version.isNewerThanOrEquals(ServerVersion.V_1_20_5)) return;
register(builder(p, "armadillo", EntityTypes.ARMADILLO) register(builder(p, "armadillo", EntityTypes.ARMADILLO)
.setHologramOffset(-1.475) .setHologramOffset(-1.325)
.addProperties("armadillo_state")); .addProperties("armadillo_state"));
if (!version.isNewerThanOrEquals(ServerVersion.V_1_21)) return;
register(builder(p, "bogged", EntityTypes.BOGGED)
.setHologramOffset(0.015)
.addProperties("bogged_sheared"));
register(builder(p, "breeze", EntityTypes.BREEZE)
.setHologramOffset(-0.205));
} }
public Collection<NpcType> getAll() { public Collection<NpcType> getAll() {