From d5c2af32dd53d6317714f06f356ed5db85957566 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 Mar 2023 20:21:47 -0600 Subject: [PATCH] Boom. --- .../adhdmc/invisibleframes/ClickListener.java | 6 ++---- .../invisibleframes/InvisibleFrames.java | 13 +++++++----- .../invisibleframes/hooks/ItemsAdder.java | 21 +++++++++++++++++++ 3 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 src/main/java/adhdmc/invisibleframes/hooks/ItemsAdder.java diff --git a/src/main/java/adhdmc/invisibleframes/ClickListener.java b/src/main/java/adhdmc/invisibleframes/ClickListener.java index 2b73443..0d1d427 100644 --- a/src/main/java/adhdmc/invisibleframes/ClickListener.java +++ b/src/main/java/adhdmc/invisibleframes/ClickListener.java @@ -1,7 +1,5 @@ package adhdmc.invisibleframes; -import dev.lone.itemsadder.api.CustomStack; -import dev.lone.itemsadder.api.ItemsAdder; import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Entity; @@ -13,7 +11,7 @@ import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.inventory.EquipmentSlot; -public class ClickListener implements Listener { +public class ClickListener implements Listener { @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onItemFrameInteract(PlayerInteractEntityEvent event) { @@ -26,7 +24,7 @@ public void onItemFrameInteract(PlayerInteractEntityEvent event) { Entity entity = event.getRightClicked(); if (!(entity instanceof ItemFrame itemFrame)) return; if (itemFrame.getItem().getType().equals(Material.AIR) && !config.getBoolean("toggle-empty", false)) return; - if (InvisibleFrames.hasItemsAdder() && CustomStack.byItemStack(itemFrame.getItem()) != null) return; + if (InvisibleFrames.getInstance().getItemsAdder().isCustomStack(itemFrame.getItem())) return; if (!player.hasPermission("invisibleframes.toggleframes")) return; event.setCancelled(true); diff --git a/src/main/java/adhdmc/invisibleframes/InvisibleFrames.java b/src/main/java/adhdmc/invisibleframes/InvisibleFrames.java index 28a590b..9a4e8a2 100644 --- a/src/main/java/adhdmc/invisibleframes/InvisibleFrames.java +++ b/src/main/java/adhdmc/invisibleframes/InvisibleFrames.java @@ -1,11 +1,11 @@ package adhdmc.invisibleframes; +import adhdmc.invisibleframes.hooks.ItemsAdder; import org.bukkit.plugin.java.JavaPlugin; public final class InvisibleFrames extends JavaPlugin { - private static InvisibleFrames instance; - private static boolean hasItemsAdder; + private ItemsAdder itemsAdder; @Override public void onEnable() { @@ -15,17 +15,20 @@ public void onEnable() { getConfig().addDefault("lock-frame", true); getConfig().addDefault("toggle-empty", false); instance = this; - hasItemsAdder = false; try { Class.forName("dev.lone.itemsadder.api.CustomBlock"); - hasItemsAdder = true; + this.itemsAdder = new ItemsAdder.Impl(); } catch (ClassNotFoundException e) { this.getLogger().info("ItemsAdder API has not been found, ItemsAdder checks are disabled."); + this.itemsAdder = new ItemsAdder.Noop(); } } public static InvisibleFrames getInstance() { return instance; } - public static boolean hasItemsAdder() { return hasItemsAdder; } + + public ItemsAdder getItemsAdder() { + return this.itemsAdder; + } } diff --git a/src/main/java/adhdmc/invisibleframes/hooks/ItemsAdder.java b/src/main/java/adhdmc/invisibleframes/hooks/ItemsAdder.java new file mode 100644 index 0000000..cdaf8b2 --- /dev/null +++ b/src/main/java/adhdmc/invisibleframes/hooks/ItemsAdder.java @@ -0,0 +1,21 @@ +package adhdmc.invisibleframes.hooks; + +import org.bukkit.inventory.ItemStack; + +public interface ItemsAdder { + boolean isCustomStack(ItemStack stack); + + class Impl implements ItemsAdder { + @Override + public boolean isCustomStack(ItemStack stack) { + return dev.lone.itemsadder.api.CustomStack.byItemStack(stack) != null; + } + } + + class Noop implements ItemsAdder { + @Override + public boolean isCustomStack(ItemStack stack) { + return false; + } + } +}