diff options
author | bloodshot <jdroque@gmail.com> | 2014-05-31 18:19:44 -0400 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2014-06-01 00:23:06 -0500 |
commit | 1b48298d25b99010c8ddecb24f800e7346763dad (patch) | |
tree | 76a8575f2b5bdbb4e0c5087c352c16b3344310f0 /src/main/java/net/minecraft | |
parent | 1c13d076afb1fa02e3bc850d9f9de5128865d875 (diff) | |
download | craftbukkit-1b48298d25b99010c8ddecb24f800e7346763dad.tar craftbukkit-1b48298d25b99010c8ddecb24f800e7346763dad.tar.gz craftbukkit-1b48298d25b99010c8ddecb24f800e7346763dad.tar.lz craftbukkit-1b48298d25b99010c8ddecb24f800e7346763dad.tar.xz craftbukkit-1b48298d25b99010c8ddecb24f800e7346763dad.zip |
Add special case for handling place event with lilies. Fixes BUKKIT-5641
Diffstat (limited to 'src/main/java/net/minecraft')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemWaterLily.java | 8 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/PlayerConnection.java | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/ItemWaterLily.java b/src/main/java/net/minecraft/server/ItemWaterLily.java index abf1b3f8..246090d6 100644 --- a/src/main/java/net/minecraft/server/ItemWaterLily.java +++ b/src/main/java/net/minecraft/server/ItemWaterLily.java @@ -26,7 +26,15 @@ public class ItemWaterLily extends ItemWithAuxData { } if (world.getType(i, j, k).getMaterial() == Material.WATER && world.getData(i, j, k) == 0 && world.isEmpty(i, j + 1, k)) { + // CraftBukkit start - special case for handling block placement with water lilies + org.bukkit.block.BlockState blockstate = org.bukkit.craftbukkit.block.CraftBlockState.getBlockState(world, i, j + 1, k); world.setTypeUpdate(i, j + 1, k, Blocks.WATER_LILY); + org.bukkit.event.block.BlockPlaceEvent placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockstate, i, j, k); + if (placeEvent != null && (placeEvent.isCancelled() || !placeEvent.canBuild())) { + blockstate.update(true, false); + return itemstack; + } + // CraftBukkit end if (!entityhuman.abilities.canInstantlyBuild) { --itemstack.count; diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java index 89ef6faf..ec45c30a 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -610,7 +610,7 @@ public class PlayerConnection implements PacketPlayInListener { // CraftBukkit - notch decrements the counter by 1 in the above method with food, // snowballs and so forth, but he does it in a place that doesn't cause the // inventory update packet to get sent - always = (itemstack.count != itemstackAmount); + always = (itemstack.count != itemstackAmount) || itemstack.getItem() == Item.getItemOf(Blocks.WATER_LILY); // CraftBukkit end } else if (packetplayinblockplace.d() >= this.minecraftServer.getMaxBuildHeight() - 1 && (packetplayinblockplace.getFace() == 1 || packetplayinblockplace.d() >= this.minecraftServer.getMaxBuildHeight())) { ChatMessage chatmessage = new ChatMessage("build.tooHigh", new Object[] { Integer.valueOf(this.minecraftServer.getMaxBuildHeight())}); |