mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +02:00
Add event for external enchantment and config registering.
Fix startup.
This commit is contained in:
parent
365d0ea847
commit
a5c647776c
9 changed files with 108 additions and 40 deletions
|
|
@ -32,8 +32,12 @@ public class EnchantmentApi {
|
||||||
if(!CAEnchantmentRegistry.getInstance().register(enchantment)) return false;
|
if(!CAEnchantmentRegistry.getInstance().register(enchantment)) return false;
|
||||||
|
|
||||||
// Add enchantment to gui.
|
// Add enchantment to gui.
|
||||||
EnchantCostConfigGui.INSTANCE.updateValueForGeneric(enchantment, true);
|
if(EnchantCostConfigGui.getInstance() != null){
|
||||||
EnchantLimitConfigGui.INSTANCE.updateValueForGeneric(enchantment, true);
|
EnchantCostConfigGui.getInstance().updateValueForGeneric(enchantment, true);
|
||||||
|
}
|
||||||
|
if(EnchantLimitConfigGui.getInstance() != null){
|
||||||
|
EnchantLimitConfigGui.getInstance().updateValueForGeneric(enchantment, true);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -72,8 +76,12 @@ public class EnchantmentApi {
|
||||||
*/
|
*/
|
||||||
public static boolean unregisterEnchantment(@Nullable CAEnchantment enchantment){
|
public static boolean unregisterEnchantment(@Nullable CAEnchantment enchantment){
|
||||||
// Remove from gui
|
// Remove from gui
|
||||||
EnchantCostConfigGui.INSTANCE.removeGeneric(enchantment);
|
if(EnchantCostConfigGui.getInstance() != null){
|
||||||
EnchantLimitConfigGui.INSTANCE.removeGeneric(enchantment);
|
EnchantCostConfigGui.getInstance().removeGeneric(enchantment);
|
||||||
|
}
|
||||||
|
if(EnchantLimitConfigGui.getInstance() != null){
|
||||||
|
EnchantLimitConfigGui.getInstance().removeGeneric(enchantment);
|
||||||
|
}
|
||||||
|
|
||||||
return CAEnchantmentRegistry.getInstance().unregister(enchantment);
|
return CAEnchantmentRegistry.getInstance().unregister(enchantment);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -58,7 +58,7 @@ public class MainConfigGui extends ChestGui {
|
||||||
enchantLimitMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment level limit menu"));
|
enchantLimitMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment level limit menu"));
|
||||||
enchantLimitItemstack.setItemMeta(enchantLimitMeta);
|
enchantLimitItemstack.setItemMeta(enchantLimitMeta);
|
||||||
|
|
||||||
GuiItem enchantLimitItem = GuiGlobalItems.goToGuiItem(enchantLimitItemstack, EnchantLimitConfigGui.INSTANCE);
|
GuiItem enchantLimitItem = GuiGlobalItems.goToGuiItem(enchantLimitItemstack, new EnchantLimitConfigGui());
|
||||||
pane.bindItem('2', enchantLimitItem);
|
pane.bindItem('2', enchantLimitItem);
|
||||||
|
|
||||||
// enchant cost item
|
// enchant cost item
|
||||||
|
|
@ -70,7 +70,7 @@ public class MainConfigGui extends ChestGui {
|
||||||
enchantCostMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment costs menu"));
|
enchantCostMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment costs menu"));
|
||||||
enchantCostItemstack.setItemMeta(enchantCostMeta);
|
enchantCostItemstack.setItemMeta(enchantCostMeta);
|
||||||
|
|
||||||
GuiItem enchantCostItem = GuiGlobalItems.goToGuiItem(enchantCostItemstack, EnchantCostConfigGui.INSTANCE);
|
GuiItem enchantCostItem = GuiGlobalItems.goToGuiItem(enchantCostItemstack, new EnchantCostConfigGui());
|
||||||
pane.bindItem('3', enchantCostItem);
|
pane.bindItem('3', enchantCostItem);
|
||||||
|
|
||||||
// Enchantment Conflicts item
|
// Enchantment Conflicts item
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
||||||
import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager;
|
import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager;
|
||||||
import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui;
|
import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui;
|
||||||
|
|
@ -31,8 +32,9 @@ import java.util.Collections;
|
||||||
*/
|
*/
|
||||||
public class BasicConfigGui extends ChestGui implements ValueUpdatableGui {
|
public class BasicConfigGui extends ChestGui implements ValueUpdatableGui {
|
||||||
|
|
||||||
private static BasicConfigGui INSTANCE;
|
private static BasicConfigGui INSTANCE = null;
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public static BasicConfigGui getInstance() {
|
public static BasicConfigGui getInstance() {
|
||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
@ -43,7 +45,7 @@ public class BasicConfigGui extends ChestGui implements ValueUpdatableGui {
|
||||||
*/
|
*/
|
||||||
public BasicConfigGui(PacketManager packetManager) {
|
public BasicConfigGui(PacketManager packetManager) {
|
||||||
super(4, "\u00A78Basic Config", CustomAnvil.instance);
|
super(4, "\u00A78Basic Config", CustomAnvil.instance);
|
||||||
INSTANCE = this;
|
if(INSTANCE == null) INSTANCE = this;
|
||||||
|
|
||||||
this.packetManager = packetManager;
|
this.packetManager = packetManager;
|
||||||
init();
|
init();
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.github.stefvanschie.inventoryframework.gui.GuiItem;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
||||||
import xyz.alexcrea.cuanvil.enchant.CAEnchantment;
|
import xyz.alexcrea.cuanvil.enchant.CAEnchantment;
|
||||||
import xyz.alexcrea.cuanvil.enchant.EnchantmentProperties;
|
import xyz.alexcrea.cuanvil.enchant.EnchantmentProperties;
|
||||||
|
|
@ -24,18 +25,21 @@ public class EnchantCostConfigGui extends AbstractEnchantConfigGui<EnchantCostSe
|
||||||
|
|
||||||
private static final String SECTION_NAME = "enchant_values";
|
private static final String SECTION_NAME = "enchant_values";
|
||||||
|
|
||||||
public static final EnchantCostConfigGui INSTANCE = new EnchantCostConfigGui();
|
private static EnchantCostConfigGui INSTANCE = null;
|
||||||
|
|
||||||
static {
|
@Nullable
|
||||||
INSTANCE.init();
|
public static EnchantCostConfigGui getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of this Global gui for enchantment cost settings.
|
* Constructor of this Global gui for enchantment cost settings.
|
||||||
*/
|
*/
|
||||||
private EnchantCostConfigGui() {
|
public EnchantCostConfigGui() {
|
||||||
super("\u00A78Enchantment Level Cost");
|
super("\u00A78Enchantment Level Cost");
|
||||||
|
if(INSTANCE == null) INSTANCE = this;
|
||||||
|
|
||||||
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package xyz.alexcrea.cuanvil.gui.config.global;
|
||||||
|
|
||||||
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
|
import com.github.stefvanschie.inventoryframework.gui.GuiItem;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
import xyz.alexcrea.cuanvil.config.ConfigHolder;
|
||||||
import xyz.alexcrea.cuanvil.enchant.CAEnchantment;
|
import xyz.alexcrea.cuanvil.enchant.CAEnchantment;
|
||||||
import xyz.alexcrea.cuanvil.gui.config.settings.IntSettingsGui;
|
import xyz.alexcrea.cuanvil.gui.config.settings.IntSettingsGui;
|
||||||
|
|
@ -17,18 +18,21 @@ public class EnchantLimitConfigGui extends AbstractEnchantConfigGui<IntSettingsG
|
||||||
|
|
||||||
private static final String SECTION_NAME = "enchant_limits";
|
private static final String SECTION_NAME = "enchant_limits";
|
||||||
|
|
||||||
public static final EnchantLimitConfigGui INSTANCE = new EnchantLimitConfigGui();
|
private static EnchantLimitConfigGui INSTANCE = null;
|
||||||
|
|
||||||
static {
|
@Nullable
|
||||||
INSTANCE.init();
|
public static EnchantLimitConfigGui getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of this Global gui for enchantment level limit settings.
|
* Constructor of this Global gui for enchantment level limit settings.
|
||||||
*/
|
*/
|
||||||
private EnchantLimitConfigGui() {
|
public EnchantLimitConfigGui() {
|
||||||
super("\u00A78Enchantment Level Limit");
|
super("\u00A78Enchantment Level Limit");
|
||||||
|
if(INSTANCE == null) INSTANCE = this;
|
||||||
|
|
||||||
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ import io.delilaheve.util.ConfigOptions
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.configuration.file.YamlConfiguration
|
import org.bukkit.configuration.file.YamlConfiguration
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
|
import xyz.alexcrea.cuanvil.api.event.CAConfigReadyEvent
|
||||||
|
import xyz.alexcrea.cuanvil.api.event.CAEnchantRegistryReadyEvent
|
||||||
import xyz.alexcrea.cuanvil.command.EditConfigExecutor
|
import xyz.alexcrea.cuanvil.command.EditConfigExecutor
|
||||||
import xyz.alexcrea.cuanvil.command.ReloadExecutor
|
import xyz.alexcrea.cuanvil.command.ReloadExecutor
|
||||||
import xyz.alexcrea.cuanvil.config.ConfigHolder
|
import xyz.alexcrea.cuanvil.config.ConfigHolder
|
||||||
|
|
@ -88,28 +90,7 @@ class CustomAnvil : JavaPlugin() {
|
||||||
logger.warning("Please note CustomAnvil is a more recent version of UnsafeEnchantsPlus")
|
logger.warning("Please note CustomAnvil is a more recent version of UnsafeEnchantsPlus")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load dependency
|
// Add commands
|
||||||
DependencyManager.loadDependency()
|
|
||||||
|
|
||||||
// Register vanilla enchantments
|
|
||||||
CAEnchantmentRegistry.getInstance().registerStartupEnchantments()
|
|
||||||
|
|
||||||
// Load config
|
|
||||||
val success = ConfigHolder.loadConfig()
|
|
||||||
if (!success) return
|
|
||||||
|
|
||||||
// temporary: handle 1.21 update
|
|
||||||
Update_1_21.handleUpdate()
|
|
||||||
|
|
||||||
// Load gui constants //TODO maybe something better later
|
|
||||||
MainConfigGui.getInstance().init(DependencyManager.packetManager)
|
|
||||||
GuiSharedConstant.loadConstants()
|
|
||||||
|
|
||||||
// Register enchantment of compatible plugin and load configuration change.
|
|
||||||
DependencyManager.registerEnchantments()
|
|
||||||
DependencyManager.handleCompatibilityConfig(this)
|
|
||||||
|
|
||||||
// Add commands to reload the plugin
|
|
||||||
prepareCommand()
|
prepareCommand()
|
||||||
|
|
||||||
// Load chat listener
|
// Load chat listener
|
||||||
|
|
@ -121,6 +102,38 @@ class CustomAnvil : JavaPlugin() {
|
||||||
|
|
||||||
// Load metrics
|
// Load metrics
|
||||||
Metrics(this, bstatsPluginId)
|
Metrics(this, bstatsPluginId)
|
||||||
|
|
||||||
|
// Load other things
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(this, {loadEnchantmentSystem()}, 0L)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadEnchantmentSystem(){
|
||||||
|
// Load dependency
|
||||||
|
DependencyManager.loadDependency()
|
||||||
|
|
||||||
|
// Register enchantments
|
||||||
|
CAEnchantmentRegistry.getInstance().registerStartupEnchantments()
|
||||||
|
DependencyManager.registerEnchantments()
|
||||||
|
|
||||||
|
val enchantReadyEvent = CAEnchantRegistryReadyEvent()
|
||||||
|
server.pluginManager.callEvent(enchantReadyEvent)
|
||||||
|
|
||||||
|
// Load config
|
||||||
|
val success = ConfigHolder.loadConfig()
|
||||||
|
if (!success) return
|
||||||
|
|
||||||
|
// temporary: handle 1.21 update
|
||||||
|
Update_1_21.handleUpdate()
|
||||||
|
|
||||||
|
val configReadyEvent = CAConfigReadyEvent()
|
||||||
|
server.pluginManager.callEvent(configReadyEvent)
|
||||||
|
|
||||||
|
// Load gui constants //TODO maybe something better later
|
||||||
|
MainConfigGui.getInstance().init(DependencyManager.packetManager)
|
||||||
|
GuiSharedConstant.loadConstants()
|
||||||
|
|
||||||
|
// Register enchantment of compatible plugin and load configuration change.
|
||||||
|
DependencyManager.handleCompatibilityConfig(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun reloadResource(
|
fun reloadResource(
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,8 @@ class ReloadExecutor : CommandExecutor {
|
||||||
|
|
||||||
// Then update all global gui containing value from config
|
// Then update all global gui containing value from config
|
||||||
BasicConfigGui.getInstance()?.updateGuiValues()
|
BasicConfigGui.getInstance()?.updateGuiValues()
|
||||||
EnchantCostConfigGui.INSTANCE.updateGuiValues()
|
EnchantCostConfigGui.getInstance()?.updateGuiValues()
|
||||||
EnchantLimitConfigGui.INSTANCE.updateGuiValues()
|
EnchantLimitConfigGui.getInstance()?.updateGuiValues()
|
||||||
|
|
||||||
EnchantConflictGui.INSTANCE.reloadValues()
|
EnchantConflictGui.INSTANCE.reloadValues()
|
||||||
GroupConfigGui.INSTANCE.reloadValues()
|
GroupConfigGui.INSTANCE.reloadValues()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue