From 4862893befc745db22c70220a0009929a74b001b Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Wed, 24 Apr 2024 18:10:39 +1000 Subject: [PATCH] SPIGOT-7626: sendSignChange() has no effect By: md_5 --- .../protocol/game/PacketPlayOutTileEntityData.patch | 11 +++++++++++ .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.patch diff --git a/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.patch b/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.patch new file mode 100644 index 0000000000..bd1b43dc20 --- /dev/null +++ b/paper-server/nms-patches/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.java ++++ b/net/minecraft/network/protocol/game/PacketPlayOutTileEntityData.java +@@ -30,7 +30,7 @@ + return create(tileentity, TileEntity::getUpdateTag); + } + +- private PacketPlayOutTileEntityData(BlockPosition blockposition, TileEntityTypes tileentitytypes, NBTTagCompound nbttagcompound) { ++ public PacketPlayOutTileEntityData(BlockPosition blockposition, TileEntityTypes tileentitytypes, NBTTagCompound nbttagcompound) { // PAIL - private->public + this.pos = blockposition; + this.type = tileentitytypes; + this.tag = nbttagcompound; diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index d58407041c..7b91415302 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -79,6 +79,7 @@ import net.minecraft.network.protocol.game.PacketPlayOutPlayerListHeaderFooter; import net.minecraft.network.protocol.game.PacketPlayOutRemoveEntityEffect; import net.minecraft.network.protocol.game.PacketPlayOutSpawnPosition; import net.minecraft.network.protocol.game.PacketPlayOutStopSound; +import net.minecraft.network.protocol.game.PacketPlayOutTileEntityData; import net.minecraft.network.protocol.game.PacketPlayOutUpdateAttributes; import net.minecraft.network.protocol.game.PacketPlayOutUpdateHealth; import net.minecraft.network.protocol.game.PacketPlayOutWorldEvent; @@ -800,7 +801,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { IChatBaseComponent[] components = CraftSign.sanitizeLines(lines); TileEntitySign sign = new TileEntitySign(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState()); - sign.setLevel(getHandle().level()); SignText text = sign.getFrontText(); text = text.setColor(EnumColor.byId(dyeColor.getWoolData())); text = text.setHasGlowingText(hasGlowingText); @@ -809,7 +809,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } sign.setText(text, true); - getHandle().connection.send(sign.getUpdatePacket()); + getHandle().connection.send(new PacketPlayOutTileEntityData(sign.getBlockPos(), sign.getType(), sign.getUpdateTag(getHandle().registryAccess()))); } @Override