From ca86dc72f6509b7a923467fab8db7c15edc93e77 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) --- ...nd-Player-Interact-cancellation-to-GUIs.patch} | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) rename Spigot-Server-Patches/{Close-Structure-Window-when-PlayerInteractEvent-is-c.patch => Extend-Player-Interact-cancellation-to-GUIs.patch} (65%) diff --git a/Spigot-Server-Patches/Close-Structure-Window-when-PlayerInteractEvent-is-c.patch b/Spigot-Server-Patches/Extend-Player-Interact-cancellation-to-GUIs.patch similarity index 65% rename from Spigot-Server-Patches/Close-Structure-Window-when-PlayerInteractEvent-is-c.patch rename to Spigot-Server-Patches/Extend-Player-Interact-cancellation-to-GUIs.patch index 81e08d6d84..895e847780 100644 --- a/Spigot-Server-Patches/Close-Structure-Window-when-PlayerInteractEvent-is-c.patch +++ b/Spigot-Server-Patches/Extend-Player-Interact-cancellation-to-GUIs.patch @@ -1,20 +1,25 @@ From 0000000000000000000000000000000000000000 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 @@ -0,0 +0,0 @@ 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;