Skip to content

Commit

Permalink
Merge pull request #1 from BillyGalbreath/main
Browse files Browse the repository at this point in the history
Thanks Billy for the smart implementation and technique. I shall learn from this.
Boom.
  • Loading branch information
Peashooter101 committed Mar 6, 2023
2 parents ae90dbb + d5c2af3 commit 2479e25
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 9 deletions.
6 changes: 2 additions & 4 deletions 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;
Expand All @@ -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) {
Expand All @@ -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);
Expand Down
13 changes: 8 additions & 5 deletions 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() {
Expand All @@ -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;
}
}
21 changes: 21 additions & 0 deletions 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;
}
}
}

0 comments on commit 2479e25

Please sign in to comment.