From bea6e4867d6ded4627a3ec0ddb2ebaeb4228a5c0 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Mon, 30 Nov 2015 17:00:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=A9=E5=93=81=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E4=BA=8B=E4=BB=B6=E7=9A=84=E6=A3=80=E6=B5=8B...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../MenuProtect/listen/ProtectListener.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/cn/citycraft/MenuProtect/listen/ProtectListener.java b/src/main/java/cn/citycraft/MenuProtect/listen/ProtectListener.java index e3b8a2a..028c696 100644 --- a/src/main/java/cn/citycraft/MenuProtect/listen/ProtectListener.java +++ b/src/main/java/cn/citycraft/MenuProtect/listen/ProtectListener.java @@ -7,12 +7,10 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryMoveItemEvent; import org.bukkit.event.inventory.InventoryPickupItemEvent; import org.bukkit.event.player.PlayerItemHeldEvent; import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.inventory.AnvilInventory; -import org.bukkit.inventory.CraftingInventory; -import org.bukkit.inventory.DoubleChestInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; @@ -28,7 +26,15 @@ public class ProtectListener implements Listener { this.plugin = plugin; } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onInvMove(final InventoryMoveItemEvent e) { + final ItemStack ci = e.getItem(); + if (MarkUtil.hasMark(ci)) { + e.setCancelled(true); + } + } + + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onInvPickup(final InventoryPickupItemEvent e) { final ItemStack ci = e.getItem().getItemStack(); if (MarkUtil.hasMark(ci)) { @@ -41,7 +47,7 @@ public class ProtectListener implements Listener { final Player p = (Player) e.getWhoClicked(); final ItemStack ci = e.getCurrentItem(); final Inventory inv = e.getInventory(); - if (inv.getHolder() == null || !(inv instanceof PlayerInventory || inv instanceof CraftingInventory || inv instanceof AnvilInventory || inv instanceof DoubleChestInventory)) { + if (inv.getHolder() == null) { return; } final int solt = e.getSlot(); @@ -54,7 +60,7 @@ public class ProtectListener implements Listener { } } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerHandlerItem(final PlayerItemHeldEvent e) { Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { @Override @@ -78,7 +84,7 @@ public class ProtectListener implements Listener { }); } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerPickup(final PlayerPickupItemEvent e) { final ItemStack ci = e.getItem().getItemStack(); if (MarkUtil.hasMark(ci)) {