1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

Minor optimization

This commit is contained in:
TheBusyBiscuit 2019-10-14 17:58:15 +02:00
parent b2fd914cee
commit 7e0eb29040
2 changed files with 12 additions and 23 deletions

View File

@ -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;
@ -78,33 +76,17 @@ 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: <ID>"))) {

View File

@ -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<Integer> modes = ((MultiTool) slimefunItem).getModes();