diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomHitBoxPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomHitBoxPacket.java new file mode 100644 index 0000000..e4de3b0 --- /dev/null +++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomHitBoxPacket.java @@ -0,0 +1,16 @@ +package me.zimzaza4.geyserutils.common.packet; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter +public class CustomHitBoxPacket extends CustomPayloadPacket { + private int entityId; + private float height; + private float width; +} diff --git a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java index 02bc2ca..bf5b640 100644 --- a/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java +++ b/common/src/main/java/me/zimzaza4/geyserutils/common/packet/CustomSkinPayloadPacket.java @@ -1,6 +1,8 @@ package me.zimzaza4.geyserutils.common.packet; +import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; import java.util.ArrayList; @@ -8,6 +10,8 @@ import java.util.List; @Setter @Getter +@AllArgsConstructor +@NoArgsConstructor public class CustomSkinPayloadPacket extends CustomPayloadPacket { private int entityId; private String skinId; diff --git a/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java b/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java index 84b7f3c..411dcc7 100644 --- a/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java +++ b/geyser/src/main/java/me/zimzaza4/geyserutils/geyser/GeyserUtils.java @@ -210,8 +210,14 @@ public class GeyserUtils implements Extension { sendSkinPacket(session, player, data); } } + } else if (customPacket instanceof CustomHitBoxPacket customHitBoxPacket) { + Entity entity = (session.getEntityCache().getEntityByJavaId(customHitBoxPacket.getEntityId())); + if (entity != null) { + entity.setBoundingBoxHeight(customHitBoxPacket.getHeight()); + entity.setBoundingBoxWidth(customHitBoxPacket.getWidth()); + entity.updateBedrockMetadata(); + } } - } } } diff --git a/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java b/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java index 81f11a3..e946f8c 100644 --- a/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java +++ b/spigot/src/main/java/me/zimzaza4/geyserutils/spigot/api/PlayerUtils.java @@ -59,4 +59,10 @@ public class PlayerUtils { player.sendPluginMessage(GeyserUtils.getInstance(), GeyserUtilsChannels.MAIN, GeyserUtils.getPacketManager().encodePacket(skinPayloadPacket)); } + + public static void sendCustomHitBox(Player player, Entity entity, float height, float width) { + CustomHitBoxPacket packet = new CustomHitBoxPacket(entity.getEntityId(), height, width); + player.sendPluginMessage(GeyserUtils.getInstance(), GeyserUtilsChannels.MAIN, GeyserUtils.getPacketManager().encodePacket(packet)); + + } }