diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBanner.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBanner.java index ce48eb55a5..fb706206bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBanner.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBanner.java @@ -96,7 +96,7 @@ public class CraftBanner extends CraftBlockState implements Banner { @Override public boolean update(boolean force, boolean applyPhysics) { - boolean result = super.update(force, applyPhysics); + boolean result = (isPlaced()) ? super.update(force, applyPhysics) : true; if (result) { banner.color = base.getDyeData(); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java index b57b6e9dff..1ee36a9425 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBlockState.java @@ -187,6 +187,9 @@ public class CraftMetaBlockState extends CraftMetaItem implements BlockStateMeta @Override public BlockState getBlockState() { + if (blockEntityTag != null && material == Material.SHIELD) { + blockEntityTag.setString("id", "Banner"); // Hack + } TileEntity te = blockEntityTag == null ? null : TileEntity.a(MinecraftServer.getServer(), blockEntityTag); switch (material) {