From c42949ec59ea94ee84a4e341e82eb8696cd3497d Mon Sep 17 00:00:00 2001 From: Stefan923 Date: Sat, 9 May 2020 17:37:06 +0300 Subject: [PATCH] Fixed a bug: people were able to move banned items in /f chest by using hotbar keys. --- .../factions/cmd/chest/AntiChestListener.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/cmd/chest/AntiChestListener.java b/src/main/java/com/massivecraft/factions/cmd/chest/AntiChestListener.java index a3441959..b6dfba1a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/chest/AntiChestListener.java +++ b/src/main/java/com/massivecraft/factions/cmd/chest/AntiChestListener.java @@ -27,9 +27,10 @@ public class AntiChestListener implements Listener { if (e.isCancelled()) return; Inventory clicked = e.getClickedInventory(); + Inventory clicker = e.getWhoClicked().getInventory(); if (e.getClick().isShiftClick()) { - if (clicked == e.getWhoClicked().getInventory()) { + if (clicked == clicker) { ItemStack clickedOn = e.getCurrentItem(); if (clickedOn != null && FactionsPlugin.getInstance().itemList.contains(clickedOn.getType().toString())) { fPlayer.msg(TL.CHEST_ITEM_DENIED_TRANSFER, clickedOn.getType().toString()); @@ -38,11 +39,17 @@ public class AntiChestListener implements Listener { } } - if (clicked != e.getWhoClicked().getInventory()) { + if (clicked != clicker) { ItemStack onCursor = e.getCursor(); if (onCursor != null && FactionsPlugin.getInstance().itemList.contains(onCursor.getType().toString())) { fPlayer.msg(TL.CHEST_ITEM_DENIED_TRANSFER, onCursor.getType().toString()); e.setCancelled(true); + } else if (e.getClick().isKeyboardClick()) { + ItemStack item = clicker.getItem(e.getHotbarButton()); + if (item != null && FactionsPlugin.getInstance().itemList.contains(item.getType().toString())) { + fPlayer.msg(TL.CHEST_ITEM_DENIED_TRANSFER, item.getType().toString()); + e.setCancelled(true); + } } } }