Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: eb2e6578 SPIGOT-5116: Fix concurrent modification exception inside ChunkMapDistance 989f9b3d SPIGOT-4849: Fix server crash when accessing chunks during chunk load/unload/populate events f554183c SPIGOT-5171: Don't fire PlayerTeleportEvent if not actually moving 2349feb8 SPIGOT-5163: Cancelling PlayerBucketFillEvent visually removes the targeted block Spigot Changes: 9a643a6a Remove DataWatcher Locking
52 lines
2.4 KiB
Diff
52 lines
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
|
Date: Sat, 12 Nov 2016 23:25:22 -0600
|
|
Subject: [PATCH] Filter bad data from ArmorStand and SpawnEgg items
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 849872f66..11b0f11a8 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -0,0 +0,0 @@ package com.destroystokyo.paper;
|
|
|
|
import java.util.List;
|
|
|
|
+import org.bukkit.Bukkit;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
import org.spigotmc.SpigotWorldConfig;
|
|
|
|
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
|
|
private void removeCorruptTEs() {
|
|
removeCorruptTEs = getBoolean("remove-corrupt-tile-entities", false);
|
|
}
|
|
+
|
|
+ public boolean filterNBTFromSpawnEgg = true;
|
|
+ private void fitlerNBTFromSpawnEgg() {
|
|
+ filterNBTFromSpawnEgg = getBoolean("filter-nbt-data-from-spawn-eggs-and-related", true);
|
|
+ if (!filterNBTFromSpawnEgg) {
|
|
+ Bukkit.getLogger().warning("Spawn Egg and Armor Stand NBT filtering disabled, this is a potential security risk");
|
|
+ }
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
index 9d86beda9..44dd99ea2 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
@@ -0,0 +0,0 @@ public class EntityFallingBlock extends Entity {
|
|
@Override
|
|
protected void a(NBTTagCompound nbttagcompound) {
|
|
this.block = GameProfileSerializer.d(nbttagcompound.getCompound("BlockState"));
|
|
+
|
|
+ // Paper start - Block FallingBlocks with Command Blocks
|
|
+ // Check mappings on update - dc = "repeating_command_block" - dd = "chain_command_block"
|
|
+ final Block b = this.block.getBlock();
|
|
+ if (this.world.paperConfig.filterNBTFromSpawnEgg && (b == Blocks.COMMAND_BLOCK || b == Blocks.REPEATING_COMMAND_BLOCK || b == Blocks.CHAIN_COMMAND_BLOCK)) {
|
|
+ this.block = Blocks.STONE.getBlockData();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
this.ticksLived = nbttagcompound.getInt("Time");
|
|
if (nbttagcompound.hasKeyOfType("HurtEntities", 99)) {
|
|
this.hurtEntities = nbttagcompound.getBoolean("HurtEntities");
|
|
--
|