9
0
mirror of https://github.com/HibiscusMC/HibiscusCommons.git synced 2025-12-19 15:09:26 +00:00

fix: interact packet not on correct packet

This commit is contained in:
LoJoSho
2025-06-26 15:10:54 -05:00
parent ee96da9abd
commit f93d73ee79
3 changed files with 16 additions and 6 deletions

View File

@@ -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<Player> sendTo) {
}
void sendEquipmentSlotUpdate(
int entityId,
org.bukkit.inventory.EquipmentSlot slot,

View File

@@ -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<PacketAction> action = new AtomicReference<>(PacketAction.NOTHING);
SubPlugins.getSubPlugins().forEach(plugin -> {

View File

@@ -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<Player> 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<Player> sendTo) {
fakeNmsEntity.setId(entityId);