diff --git a/src/main/java/xyz/alexcrea/cuanvil/api/EnchantmentApi.java b/src/main/java/xyz/alexcrea/cuanvil/api/EnchantmentApi.java index 5753d63..57c3aa8 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/api/EnchantmentApi.java +++ b/src/main/java/xyz/alexcrea/cuanvil/api/EnchantmentApi.java @@ -32,8 +32,12 @@ public class EnchantmentApi { if(!CAEnchantmentRegistry.getInstance().register(enchantment)) return false; // Add enchantment to gui. - EnchantCostConfigGui.INSTANCE.updateValueForGeneric(enchantment, true); - EnchantLimitConfigGui.INSTANCE.updateValueForGeneric(enchantment, true); + if(EnchantCostConfigGui.getInstance() != null){ + EnchantCostConfigGui.getInstance().updateValueForGeneric(enchantment, true); + } + if(EnchantLimitConfigGui.getInstance() != null){ + EnchantLimitConfigGui.getInstance().updateValueForGeneric(enchantment, true); + } return true; } @@ -72,8 +76,12 @@ public class EnchantmentApi { */ public static boolean unregisterEnchantment(@Nullable CAEnchantment enchantment){ // Remove from gui - EnchantCostConfigGui.INSTANCE.removeGeneric(enchantment); - EnchantLimitConfigGui.INSTANCE.removeGeneric(enchantment); + if(EnchantCostConfigGui.getInstance() != null){ + EnchantCostConfigGui.getInstance().removeGeneric(enchantment); + } + if(EnchantLimitConfigGui.getInstance() != null){ + EnchantLimitConfigGui.getInstance().removeGeneric(enchantment); + } return CAEnchantmentRegistry.getInstance().unregister(enchantment); } diff --git a/src/main/java/xyz/alexcrea/cuanvil/api/event/CAConfigReadyEvent.java b/src/main/java/xyz/alexcrea/cuanvil/api/event/CAConfigReadyEvent.java new file mode 100644 index 0000000..24691db --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/api/event/CAConfigReadyEvent.java @@ -0,0 +1,19 @@ +package xyz.alexcrea.cuanvil.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class CAConfigReadyEvent extends Event { + + private static final HandlerList HANDLERS = new HandlerList(); + + public static HandlerList getHandlerList() { + return HANDLERS; + } + + @Override + public HandlerList getHandlers() { + return HANDLERS; + } + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/api/event/CAEnchantRegistryReadyEvent.java b/src/main/java/xyz/alexcrea/cuanvil/api/event/CAEnchantRegistryReadyEvent.java new file mode 100644 index 0000000..3e2fdf8 --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/api/event/CAEnchantRegistryReadyEvent.java @@ -0,0 +1,18 @@ +package xyz.alexcrea.cuanvil.api.event; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class CAEnchantRegistryReadyEvent extends Event { + + private static final HandlerList HANDLERS = new HandlerList(); + + public static HandlerList getHandlerList() { + return HANDLERS; + } + + @Override + public HandlerList getHandlers() { + return HANDLERS; + } +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java index 44617f0..b6c1062 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java @@ -58,7 +58,7 @@ public class MainConfigGui extends ChestGui { enchantLimitMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment level limit menu")); enchantLimitItemstack.setItemMeta(enchantLimitMeta); - GuiItem enchantLimitItem = GuiGlobalItems.goToGuiItem(enchantLimitItemstack, EnchantLimitConfigGui.INSTANCE); + GuiItem enchantLimitItem = GuiGlobalItems.goToGuiItem(enchantLimitItemstack, new EnchantLimitConfigGui()); pane.bindItem('2', enchantLimitItem); // enchant cost item @@ -70,7 +70,7 @@ public class MainConfigGui extends ChestGui { enchantCostMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment costs menu")); enchantCostItemstack.setItemMeta(enchantCostMeta); - GuiItem enchantCostItem = GuiGlobalItems.goToGuiItem(enchantCostItemstack, EnchantCostConfigGui.INSTANCE); + GuiItem enchantCostItem = GuiGlobalItems.goToGuiItem(enchantCostItemstack, new EnchantCostConfigGui()); pane.bindItem('3', enchantCostItem); // Enchantment Conflicts item diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java index 513a6f9..4d900dc 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java @@ -12,6 +12,7 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager; import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; @@ -31,8 +32,9 @@ import java.util.Collections; */ public class BasicConfigGui extends ChestGui implements ValueUpdatableGui { - private static BasicConfigGui INSTANCE; + private static BasicConfigGui INSTANCE = null; + @Nullable public static BasicConfigGui getInstance() { return INSTANCE; } @@ -43,7 +45,7 @@ public class BasicConfigGui extends ChestGui implements ValueUpdatableGui { */ public BasicConfigGui(PacketManager packetManager) { super(4, "\u00A78Basic Config", CustomAnvil.instance); - INSTANCE = this; + if(INSTANCE == null) INSTANCE = this; this.packetManager = packetManager; init(); diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java index 73e11ac..b45a7b3 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/EnchantCostConfigGui.java @@ -4,6 +4,7 @@ import com.github.stefvanschie.inventoryframework.gui.GuiItem; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.jetbrains.annotations.Nullable; import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.enchant.CAEnchantment; import xyz.alexcrea.cuanvil.enchant.EnchantmentProperties; @@ -24,18 +25,21 @@ public class EnchantCostConfigGui extends AbstractEnchantConfigGui