diff options
Diffstat (limited to 'nms-patches/PlayerInteractManager.patch')
-rw-r--r-- | nms-patches/PlayerInteractManager.patch | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/nms-patches/PlayerInteractManager.patch b/nms-patches/PlayerInteractManager.patch index 4af20ec6..f5662ce3 100644 --- a/nms-patches/PlayerInteractManager.patch +++ b/nms-patches/PlayerInteractManager.patch @@ -1,5 +1,5 @@ ---- ../work/decompile-8eb82bde//net/minecraft/server/PlayerInteractManager.java 2014-12-09 09:38:37.363833006 +0000 -+++ src/main/java/net/minecraft/server/PlayerInteractManager.java 2014-12-09 09:38:31.515833135 +0000 +--- ../work/decompile-8eb82bde//net/minecraft/server/PlayerInteractManager.java 2014-12-09 12:19:57.555618161 +0000 ++++ src/main/java/net/minecraft/server/PlayerInteractManager.java 2014-12-09 12:16:26.307622849 +0000 @@ -1,5 +1,13 @@ package net.minecraft.server; @@ -202,19 +202,21 @@ return flag; } -@@ -266,8 +392,11 @@ - } +@@ -267,7 +393,13 @@ } } -+ -+ public boolean interactResult = true; // CraftBukkit ++ // CraftBukkit start ++ public boolean interactResult = false; ++ public boolean firedInteract = false; ++ // CraftBukkit end ++ public boolean interact(EntityHuman entityhuman, World world, ItemStack itemstack, BlockPosition blockposition, EnumDirection enumdirection, float f, float f1, float f2) { + /* CraftBukkit start - whole method if (this.gamemode == EnumGamemode.SPECTATOR) { TileEntity tileentity = world.getTileEntity(blockposition); -@@ -312,6 +441,67 @@ +@@ -312,6 +444,68 @@ return itemstack.placeItem(entityhuman, world, blockposition, enumdirection, f, f1, f2); } } @@ -230,6 +232,8 @@ + } + + PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(entityhuman, Action.RIGHT_CLICK_BLOCK, blockposition, enumdirection, itemstack, cancelledBlock); ++ firedInteract = true; ++ interactResult = event.useItemInHand() == Event.Result.DENY; + + if (event.useInteractedBlock() == Event.Result.DENY) { + // If we denied a door from opening, we need to send a correcting update to the client, as it already opened the door. @@ -263,7 +267,6 @@ + result = blockdata.getBlock().interact(world, blockposition, blockdata, entityhuman, enumdirection, f, f1, f2); + } + -+ interactResult = event.useItemInHand() != Event.Result.DENY; + if (itemstack != null && !result) { + int j1 = itemstack.getData(); + int k1 = itemstack.count; |