From 17e57eb6ce4c25ca08af4a64a37a72eaf9e80bbf Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 18 Feb 2018 14:39:02 +0000 Subject: [PATCH] Extend Player Interact to cover CommandBlocks (@Phoenix616) --- ...layer-Interact-cancellation-to-GUIs.patch} | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) rename Spigot-Server-Patches/{0268-Close-Structure-Window-when-PlayerInteractEvent-is-c.patch => 0268-Extend-Player-Interact-cancellation-to-GUIs.patch} (59%) diff --git a/Spigot-Server-Patches/0268-Close-Structure-Window-when-PlayerInteractEvent-is-c.patch b/Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch similarity index 59% rename from Spigot-Server-Patches/0268-Close-Structure-Window-when-PlayerInteractEvent-is-c.patch rename to Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch index a22d7aea23..0bc154215a 100644 --- a/Spigot-Server-Patches/0268-Close-Structure-Window-when-PlayerInteractEvent-is-c.patch +++ b/Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch @@ -1,20 +1,25 @@ -From 00c177bbfbcca2f9de95bbbcea6f679d18bc310d Mon Sep 17 00:00:00 2001 +From eb3a4602b0b462211c8c9793d37081a6287881bd Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 11 Feb 2018 10:43:46 +0000 -Subject: [PATCH] Close Structure Window when PlayerInteractEvent is cancelled +Subject: [PATCH] Extend Player Interact cancellation to GUIs -This is opened on the client, and so we send a CloseWindow packet +GUIs are opened on the client, meaning that the server cannot block them from opening, +However, it is possible to close these GUIs from the server. diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 5ec7f5819..08b1dc0b2 100644 +index 5ec7f5819..b1cdb2154 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java -@@ -468,6 +468,8 @@ public class PlayerInteractManager { +@@ -468,6 +468,12 @@ public class PlayerInteractManager { ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, bottom ? blockposition.up() : blockposition.down())); } else if (blockdata.getBlock() instanceof BlockCake) { ((EntityPlayer) entityhuman).getBukkitEntity().sendHealthUpdate(); // SPIGOT-1341 - reset health for cake -+ } else if (blockdata.getBlock() instanceof BlockStructure) { // Paper - close Structure window when PIE is cancelled -+ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutCloseWindow()); // Paper - close Structure window when PIE is cancelled ++ // Paper start - extend Player Interact cancellation to GUIs ++ } else if (blockdata.getBlock() instanceof BlockStructure) { ++ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutCloseWindow()); ++ } else if (blockdata.getBlock() instanceof BlockCommand) { ++ ((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutCloseWindow()); ++ // Paper end - extend Player Interact cancellation to GUIs } ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-2867 enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS;