summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbloodshot <jdroque@gmail.com>2014-05-31 18:19:44 -0400
committerTravis Watkins <amaranth@ubuntu.com>2014-06-01 00:23:06 -0500
commit1b48298d25b99010c8ddecb24f800e7346763dad (patch)
tree76a8575f2b5bdbb4e0c5087c352c16b3344310f0 /src
parent1c13d076afb1fa02e3bc850d9f9de5128865d875 (diff)
downloadcraftbukkit-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')
-rw-r--r--src/main/java/net/minecraft/server/ItemWaterLily.java8
-rw-r--r--src/main/java/net/minecraft/server/PlayerConnection.java2
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())});