aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch')
-rw-r--r--patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch b/patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch
new file mode 100644
index 0000000000..b3404362f9
--- /dev/null
+++ b/patches/server/0813-Sanitize-Sent-BlockEntity-NBT.patch
@@ -0,0 +1,48 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Fri, 3 Dec 2021 16:55:50 -0500
+Subject: [PATCH] Sanitize Sent BlockEntity NBT
+
+
+diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
+index d79284a790569141c2ac8178d6ecc20b17cdd0d3..3944852921335c78a04a9dc301882ab5b152b1ed 100644
+--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
++++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundBlockEntityDataPacket.java
+@@ -17,7 +17,7 @@ public class ClientboundBlockEntityDataPacket implements Packet<ClientGamePacket
+ private final CompoundTag tag;
+
+ public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity, Function<BlockEntity, CompoundTag> nbtGetter) {
+- return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), nbtGetter.apply(blockEntity));
++ return new ClientboundBlockEntityDataPacket(blockEntity.getBlockPos(), blockEntity.getType(), blockEntity.sanitizeSentNbt(nbtGetter.apply(blockEntity))); // Paper - Sanitize sent data
+ }
+
+ public static ClientboundBlockEntityDataPacket create(BlockEntity blockEntity) {
+diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
+index bf6cdc08367fc26716e7904162a21e63fecab3ed..51e24105facfe71ce9f2757c6c881a21b58dacfd 100644
+--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
++++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
+@@ -186,6 +186,7 @@ public class ClientboundLevelChunkPacketData {
+ CompoundTag compoundTag = blockEntity.getUpdateTag();
+ BlockPos blockPos = blockEntity.getBlockPos();
+ int i = SectionPos.sectionRelative(blockPos.getX()) << 4 | SectionPos.sectionRelative(blockPos.getZ());
++ blockEntity.sanitizeSentNbt(compoundTag); // Paper - Sanitize sent data
+ return new ClientboundLevelChunkPacketData.BlockEntityInfo(i, blockPos.getY(), blockEntity.getType(), compoundTag.isEmpty() ? null : compoundTag);
+ }
+ }
+diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+index e3557f4c8cee7c88b3e352cd246078da7762effc..5bdad1866386908b9fef74d15862eb107fabe68f 100644
+--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
++++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java
+@@ -253,4 +253,12 @@ public abstract class BlockEntity {
+ return null;
+ }
+ // CraftBukkit end
++ // Paper start
++ public CompoundTag sanitizeSentNbt(CompoundTag tag) {
++ tag.remove("PublicBukkitValues");
++
++ return tag;
++ }
++ // Paper end
++
+ }