9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-28 19:39:14 +00:00

Changed how ItemsAdder listener works

This commit is contained in:
HeroBrineGoat
2022-01-18 19:53:33 -05:00
parent 280018fb9f
commit c4dba6f9a8
4 changed files with 31 additions and 31 deletions

View File

@@ -55,6 +55,8 @@ public class HMCCosmetics extends JavaPlugin {
if (!HookManager.getInstance().isEnabled(ItemsAdderHook.class)) {
this.load();
}
HookManager.getInstance().registerListeners(this);
}
@Override

View File

@@ -3,10 +3,10 @@ package io.github.fisher2911.hmccosmetics.hook;
import io.github.fisher2911.hmccosmetics.HMCCosmetics;
import io.github.fisher2911.hmccosmetics.hook.item.ItemHook;
import io.github.fisher2911.hmccosmetics.hook.item.ItemHooks;
import io.github.fisher2911.hmccosmetics.hook.item.OraxenHook;
import io.github.fisher2911.hmccosmetics.hook.item.ItemsAdderHook;
import io.github.fisher2911.hmccosmetics.hook.listener.ItemsAdderListener;
import io.github.fisher2911.hmccosmetics.hook.item.OraxenHook;
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.jetbrains.annotations.Nullable;
@@ -32,10 +32,12 @@ public class HookManager {
private final ItemHooks itemHooks;
private final PAPIHook papiHook;
private final Set<Class<? extends Hook>> registeredHooks;
private final Set<Listener> listeners;
private HookManager(final HMCCosmetics plugin) {
this.plugin = plugin;
this.registeredHooks = new HashSet<>();
this.listeners = new HashSet<>();
final PluginManager pluginManager = Bukkit.getPluginManager();
if (pluginManager.getPlugin("PlaceholderApi") != null) {
this.registeredHooks.add(PAPIHook.class);
@@ -50,7 +52,7 @@ public class HookManager {
if (pluginManager.getPlugin("Oraxen") != null) itemHookMap.put(oraxenHook.getIdentifier(), oraxenHook);
if (pluginManager.getPlugin("ItemsAdder") != null) {
itemHookMap.put(itemsAdderHook.getIdentifier(), itemsAdderHook);
this.plugin.getServer().getPluginManager().registerEvents(new ItemsAdderListener(this.plugin), this.plugin);
this.listeners.add(itemsAdderHook);
}
this.itemHooks = new ItemHooks(itemHookMap);
@@ -65,6 +67,12 @@ public class HookManager {
return this.registeredHooks.contains(hook);
}
public void registerListeners(final HMCCosmetics plugin) {
for (final Listener listener : this.listeners) {
plugin.getServer().getPluginManager().registerEvents(listener, plugin);
}
}
@Nullable
public PAPIHook getPapiHook() {
return papiHook;

View File

@@ -1,13 +1,26 @@
package io.github.fisher2911.hmccosmetics.hook.item;
package io.github.fisher2911.hmccosmetics.hook.item;
import dev.lone.itemsadder.api.CustomStack;
import org.bukkit.inventory.ItemStack;
import dev.lone.itemsadder.api.CustomStack;
import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent;
import io.github.fisher2911.hmccosmetics.HMCCosmetics;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
public class ItemsAdderHook implements ItemHook {
public class ItemsAdderHook implements ItemHook, Listener {
public static final String ID = "ITEM_ADDER";
private static final String IDENTIFIER = "itemsadder";
private boolean loaded;
@EventHandler
public void onItemsAdderLoad(final ItemsAdderLoadDataEvent event) {
if (this.loaded) return;
HMCCosmetics.getPlugin(HMCCosmetics.class).load();
this.loaded = true;
}
@Override
public String getId() {
return ID;
@@ -21,7 +34,7 @@
@Override
public ItemStack getItem(final String id) {
final CustomStack stack = CustomStack.getInstance(id);
if ( stack == null ) return null;
if (stack == null) return null;
return stack.getItemStack();
}
}

View File

@@ -1,23 +0,0 @@
package io.github.fisher2911.hmccosmetics.hook.listener;
import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent;
import io.github.fisher2911.hmccosmetics.HMCCosmetics;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class ItemsAdderListener implements Listener {
private final HMCCosmetics plugin;
private boolean loaded;
public ItemsAdderListener(final HMCCosmetics plugin) {
this.plugin = plugin;
}
@EventHandler
public void onItemsAdderLoad(final ItemsAdderLoadDataEvent event) {
if (this.loaded) return;
this.plugin.load();
this.loaded = true;
}
}