From a79300041630ddb0bd165871e199d8bdc604aacb Mon Sep 17 00:00:00 2001 From: Byteflux Date: Sun, 8 Mar 2015 01:06:14 -0600 Subject: [PATCH] Remove invalid mob spawner tile entities diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java index d5922fe..ea61f59 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -784,6 +784,11 @@ public class Chunk { tileentity.D(); this.tileEntities.put(blockposition, tileentity); // CraftBukkit start + // PaperSpigot start - Remove invalid mob spawner tile entities + } else if (this.world.paperSpigotConfig.removeInvalidMobSpawnerTEs && tileentity instanceof TileEntityMobSpawner && + org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getType(blockposition)) != org.bukkit.Material.MOB_SPAWNER) { + this.tileEntities.remove(blockposition); + // PaperSpigot end } else { System.out.println("Attempted to place a tile entity (" + tileentity + ") at " + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ() + " (" + org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getType(blockposition)) + ") where there was no entity tile!"); diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java index 41a80da..31dedce 100644 --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java @@ -163,4 +163,11 @@ public class PaperSpigotWorldConfig waterOverLavaFlowSpeed = getInt( "water-over-lava-flow-speed", 5 ); log( "Water over lava flow speed: " + waterOverLavaFlowSpeed ); } + + public boolean removeInvalidMobSpawnerTEs; + private void removeInvalidMobSpawnerTEs() + { + removeInvalidMobSpawnerTEs = getBoolean( "remove-invalid-mob-spawner-tile-entities", true ); + log( "Remove invalid mob spawner tile entities: " + removeInvalidMobSpawnerTEs ); + } } -- 1.9.1