Skip to content

Commit 2479e25

Browse files
Merge pull request #1 from BillyGalbreath/main
Thanks Billy for the smart implementation and technique. I shall learn from this. Boom.
2 parents ae90dbb + d5c2af3 commit 2479e25

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

src/main/java/adhdmc/invisibleframes/ClickListener.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package adhdmc.invisibleframes;
22

3-
import dev.lone.itemsadder.api.CustomStack;
4-
import dev.lone.itemsadder.api.ItemsAdder;
53
import org.bukkit.Material;
64
import org.bukkit.configuration.file.FileConfiguration;
75
import org.bukkit.entity.Entity;
@@ -13,7 +11,7 @@
1311
import org.bukkit.event.player.PlayerInteractEntityEvent;
1412
import org.bukkit.inventory.EquipmentSlot;
1513

16-
public class ClickListener implements Listener {
14+
public class ClickListener implements Listener {
1715

1816
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
1917
public void onItemFrameInteract(PlayerInteractEntityEvent event) {
@@ -26,7 +24,7 @@ public void onItemFrameInteract(PlayerInteractEntityEvent event) {
2624
Entity entity = event.getRightClicked();
2725
if (!(entity instanceof ItemFrame itemFrame)) return;
2826
if (itemFrame.getItem().getType().equals(Material.AIR) && !config.getBoolean("toggle-empty", false)) return;
29-
if (InvisibleFrames.hasItemsAdder() && CustomStack.byItemStack(itemFrame.getItem()) != null) return;
27+
if (InvisibleFrames.getInstance().getItemsAdder().isCustomStack(itemFrame.getItem())) return;
3028
if (!player.hasPermission("invisibleframes.toggleframes")) return;
3129

3230
event.setCancelled(true);
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package adhdmc.invisibleframes;
22

3+
import adhdmc.invisibleframes.hooks.ItemsAdder;
34
import org.bukkit.plugin.java.JavaPlugin;
45

56
public final class InvisibleFrames extends JavaPlugin {
6-
77
private static InvisibleFrames instance;
8-
private static boolean hasItemsAdder;
8+
private ItemsAdder itemsAdder;
99

1010
@Override
1111
public void onEnable() {
@@ -15,17 +15,20 @@ public void onEnable() {
1515
getConfig().addDefault("lock-frame", true);
1616
getConfig().addDefault("toggle-empty", false);
1717
instance = this;
18-
hasItemsAdder = false;
1918
try {
2019
Class.forName("dev.lone.itemsadder.api.CustomBlock");
21-
hasItemsAdder = true;
20+
this.itemsAdder = new ItemsAdder.Impl();
2221
} catch (ClassNotFoundException e) {
2322
this.getLogger().info("ItemsAdder API has not been found, ItemsAdder checks are disabled.");
23+
this.itemsAdder = new ItemsAdder.Noop();
2424
}
2525
}
2626

2727
public static InvisibleFrames getInstance() {
2828
return instance;
2929
}
30-
public static boolean hasItemsAdder() { return hasItemsAdder; }
30+
31+
public ItemsAdder getItemsAdder() {
32+
return this.itemsAdder;
33+
}
3134
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package adhdmc.invisibleframes.hooks;
2+
3+
import org.bukkit.inventory.ItemStack;
4+
5+
public interface ItemsAdder {
6+
boolean isCustomStack(ItemStack stack);
7+
8+
class Impl implements ItemsAdder {
9+
@Override
10+
public boolean isCustomStack(ItemStack stack) {
11+
return dev.lone.itemsadder.api.CustomStack.byItemStack(stack) != null;
12+
}
13+
}
14+
15+
class Noop implements ItemsAdder {
16+
@Override
17+
public boolean isCustomStack(ItemStack stack) {
18+
return false;
19+
}
20+
}
21+
}

0 commit comments

Comments
 (0)