From 7e0eb29040623bc33d9e1e100ee68c27da6897d8 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Mon, 14 Oct 2019 17:58:15 +0200 Subject: [PATCH] Minor optimization --- .../Slimefun/listeners/BackpackListener.java | 26 +++---------------- .../Slimefun/listeners/ItemListener.java | 9 ++++++- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java index 621613191..045c722a3 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/BackpackListener.java @@ -8,12 +8,10 @@ import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -77,34 +75,18 @@ public class BackpackListener implements Listener { } } } - - @EventHandler - public void onInteract(PlayerInteractEvent e) { - if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) { - Player p = e.getPlayer(); - ItemStack item = e.getItem(); - SlimefunItem sfItem = SlimefunItem.getByItem(item); - - // Open the Backpack (also includes Coolers) - if (sfItem instanceof SlimefunBackpack) { - openBackpack(item, sfItem, ((SlimefunBackpack) sfItem).getSize(), e, p); - } - } - } - - private void openBackpack(ItemStack item, SlimefunItem sfItem, int size, PlayerInteractEvent e, Player p) { - e.setCancelled(true); + public static void openBackpack(Player p, ItemStack item, SlimefunBackpack backpack) { if (item.getAmount() == 1) { - if (Slimefun.hasUnlocked(p, sfItem, true)) { - if (!PlayerProfile.get(p, profile -> openBackpack(item, profile, size))) + if (Slimefun.hasUnlocked(p, backpack, true)) { + if (!PlayerProfile.get(p, profile -> openBackpack(item, profile, backpack.getSize()))) Slimefun.getLocal().sendMessage(p, "messages.opening-backpack"); } } else SlimefunPlugin.getLocal().sendMessage(p, "backpack.no-stack", true); } - private void openBackpack(ItemStack item, PlayerProfile profile, int size) { + private static void openBackpack(ItemStack item, PlayerProfile profile, int size) { Player p = profile.getPlayer(); for (int line = 0; line < item.getItemMeta().getLore().size(); line++) { if (item.getItemMeta().getLore().get(line).equals(ChatColor.translateAlternateColorCodes('&', "&7ID: "))) { diff --git a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java index 6aae5635e..acfbb4417 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/ItemListener.java @@ -45,6 +45,7 @@ import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Juice; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.MultiTool; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemDropHandler; @@ -232,7 +233,13 @@ public class ItemListener implements Listener { for (ItemHandler handler : SlimefunItem.getHandlers("ItemInteractionHandler")) { if (((ItemInteractionHandler) handler).onRightClick(e, p, item)) return; } - if (slimefunItem instanceof MultiTool) { + + // Open the Backpack (also includes Coolers) + if (slimefunItem instanceof SlimefunBackpack) { + e.setCancelled(true); + BackpackListener.openBackpack(p, item, (SlimefunBackpack) slimefunItem); + } + else if (slimefunItem instanceof MultiTool) { e.setCancelled(true); List modes = ((MultiTool) slimefunItem).getModes();