From 2641ec7c0fc9a0ce92418308069998ac9982db74 Mon Sep 17 00:00:00 2001 From: filoghost Date: Sun, 1 Aug 2021 10:17:49 +0200 Subject: [PATCH] Fix client-side slime collision box --- .../holographicdisplays/nms/v1_17_R1/DataWatcherKey.java | 2 ++ .../nms/v1_17_R1/EntityMetadataNMSPacket.java | 5 +++++ .../nms/v1_17_R1/VersionNMSPacketList.java | 1 + 3 files changed, 8 insertions(+) diff --git a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/DataWatcherKey.java b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/DataWatcherKey.java index 76c3fc13..5dcc9030 100644 --- a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/DataWatcherKey.java +++ b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/DataWatcherKey.java @@ -16,6 +16,7 @@ import java.util.Optional; class DataWatcherKey { private static final DataWatcherSerializer BYTE_SERIALIZER = DataWatcherRegistry.a; + private static final DataWatcherSerializer INT_SERIALIZER = DataWatcherRegistry.b; private static final DataWatcherSerializer BOOLEAN_SERIALIZER = DataWatcherRegistry.i; private static final DataWatcherSerializer ITEM_STACK_SERIALIZER = DataWatcherRegistry.g; private static final DataWatcherSerializer> OPTIONAL_CHAT_COMPONENT_SERIALIZER = DataWatcherRegistry.f; @@ -25,6 +26,7 @@ class DataWatcherKey { static DataWatcherKey CUSTOM_NAME_VISIBILITY = new DataWatcherKey<>(3, BOOLEAN_SERIALIZER); static DataWatcherKey ITEM_STACK = new DataWatcherKey<>(8, ITEM_STACK_SERIALIZER); static DataWatcherKey ARMOR_STAND_STATUS = new DataWatcherKey<>(15, BYTE_SERIALIZER); + static DataWatcherKey SLIME_SIZE = new DataWatcherKey<>(16, INT_SERIALIZER); private final int index; private final DataWatcherSerializer serializer; diff --git a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/EntityMetadataNMSPacket.java b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/EntityMetadataNMSPacket.java index 3102626d..765f2b23 100644 --- a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/EntityMetadataNMSPacket.java +++ b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/EntityMetadataNMSPacket.java @@ -75,6 +75,11 @@ class EntityMetadataNMSPacket extends VersionNMSPacket { return this; } + Builder setSmallSlime() { + packetByteBuffer.writeDataWatcherEntry(DataWatcherKey.SLIME_SIZE, 1); + return this; + } + EntityMetadataNMSPacket build() { packetByteBuffer.writeDataWatcherEntriesEnd(); return new EntityMetadataNMSPacket(packetByteBuffer); diff --git a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/VersionNMSPacketList.java b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/VersionNMSPacketList.java index cb281882..061eb98e 100644 --- a/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/VersionNMSPacketList.java +++ b/nms/v1_17_r1/src/main/java/me/filoghost/holographicdisplays/nms/v1_17_R1/VersionNMSPacketList.java @@ -87,6 +87,7 @@ class VersionNMSPacketList extends AbstractNMSPacketList { add(new EntityLivingSpawnNMSPacket(entityID, EntityTypeID.SLIME, locationX, locationY, locationZ)); add(EntityMetadataNMSPacket.builder(entityID) .setInvisible() + .setSmallSlime() // Required for a correct client-side collision box .build() ); }