From 6885fc0446d1bd62a0262949a180b1a50ebb231c Mon Sep 17 00:00:00 2001 From: HunterGPlays Date: Sun, 24 Apr 2016 06:09:20 +0100 Subject: [PATCH] Added drag listener --- .../playervaults/listeners/Listeners.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/main/java/com/drtshock/playervaults/listeners/Listeners.java b/src/main/java/com/drtshock/playervaults/listeners/Listeners.java index e6b7fdd..97e8ac0 100644 --- a/src/main/java/com/drtshock/playervaults/listeners/Listeners.java +++ b/src/main/java/com/drtshock/playervaults/listeners/Listeners.java @@ -30,11 +30,13 @@ import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; import java.io.IOException; @@ -128,4 +130,34 @@ public class Listeners implements Listener { } } } + + @EventHandler(ignoreCancelled = true) + if (!(event.getWhoClicked() instanceof Player)) { + return; + } + + Player player = (Player) event.getWhoClicked(); + if (player.hasPermission("playervaults.bypassblockeditems")) { + return; + } + + Inventory clickedInventory = event.getInventory(); + if (clickedInventory != null) { + VaultViewInfo info = PlayerVaults.getInstance().getInVault().get(player.getUniqueId().toString()); + if (info != null) { + int num = info.getNumber(); + String inventoryTitle = clickedInventory.getTitle(); + String title = Lang.VAULT_TITLE.toString().replace("%number", String.valueOf(num)).replace("%p", info.getHolder()); + if ((inventoryTitle != null && inventoryTitle.equalsIgnoreCase(title)) && event.getNewItems() != null) { + for (ItemStack item : event.getNewItems().values()) { + if (PlayerVaults.getInstance().isBlockedMaterial(item.getType())) { + event.setCancelled(true); + player.sendMessage(Lang.TITLE.toString() + Lang.BLOCKED_ITEM.toString().replace("%m", item.getType().name())); + return; + } + } + } + } + } + } }