diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSPackets.java b/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSPackets.java index 8d21795..5ae2311 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSPackets.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSPackets.java @@ -5,10 +5,7 @@ import it.unimi.dsi.fastutil.ints.IntList; import net.kyori.adventure.text.Component; import org.bukkit.GameMode; import org.bukkit.Location; -import org.bukkit.entity.Display; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.ItemDisplay; -import org.bukkit.entity.Player; +import org.bukkit.entity.*; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -43,6 +40,10 @@ public interface NMSPackets { void sendSlotUpdate(Player player, int slot); + default void sendLookAtPacket(int entityId, Location location, List sendTo) { + + } + void sendEquipmentSlotUpdate( int entityId, org.bukkit.inventory.EquipmentSlot slot, diff --git a/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPacketChannel.java b/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPacketChannel.java index adba04f..3f6b626 100644 --- a/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPacketChannel.java +++ b/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPacketChannel.java @@ -163,7 +163,7 @@ public class NMSPacketChannel extends ChannelDuplexHandler { case ServerboundContainerClickPacket clickPacket -> msg = handleInventoryClick(clickPacket); case ServerboundPlayerActionPacket playerActionPacket -> msg = handlePlayerAction(playerActionPacket); case ServerboundSwingPacket swingPacket -> msg = handlePlayerArm(swingPacket); - case ServerboundUseItemOnPacket useItemOnPacket -> msg = handleEntityUse(useItemOnPacket); + case ServerboundInteractPacket interactPacket -> msg = handleInteract(interactPacket); default -> {} } @@ -212,7 +212,7 @@ public class NMSPacketChannel extends ChannelDuplexHandler { return packet; } - private Packet handleEntityUse(ServerboundUseItemOnPacket packet) { + private Packet handleInteract(ServerboundInteractPacket packet) { AtomicReference action = new AtomicReference<>(PacketAction.NOTHING); SubPlugins.getSubPlugins().forEach(plugin -> { diff --git a/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPackets.java b/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPackets.java index 16905be..8c3cc00 100644 --- a/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPackets.java +++ b/v1_21_R5/src/main/java/me/lojosho/hibiscuscommons/nms/v1_21_R5/NMSPackets.java @@ -14,6 +14,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.*; import net.minecraft.network.syncher.EntityDataSerializers; @@ -126,6 +127,14 @@ public class NMSPackets extends NMSCommon implements me.lojosho.hibiscuscommons. sendPacket(player, packet); } + @Override + public void sendLookAtPacket(int entityId, Location location, List sendTo) { + fakeNmsEntity.setId(entityId); + fakeNmsEntity.getBukkitEntity().teleport(location); + ClientboundPlayerLookAtPacket packet = new ClientboundPlayerLookAtPacket(EntityAnchorArgument.Anchor.EYES, fakeNmsEntity, EntityAnchorArgument.Anchor.EYES); + for (Player p : sendTo) sendPacket(p, packet); + } + @Override public void sendRotateHeadPacket(int entityId, Location location, List sendTo) { fakeNmsEntity.setId(entityId);