Fix reload command not executing the config event.

Also lazy loading of config guis.
This commit is contained in:
alexcrea 2024-07-23 04:08:55 +02:00
parent e39bee5952
commit 03ae19e8a7
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
10 changed files with 109 additions and 32 deletions

View file

@ -9,7 +9,9 @@ import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.group.EnchantConflictGroup; import xyz.alexcrea.cuanvil.group.EnchantConflictGroup;
import xyz.alexcrea.cuanvil.gui.config.global.EnchantConflictGui; import xyz.alexcrea.cuanvil.gui.config.global.EnchantConflictGui;
import java.util.*; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/** /**
* Custom Anvil api for conflict registry. * Custom Anvil api for conflict registry.
@ -56,7 +58,8 @@ public class ConflictAPI {
ConfigHolder.CONFLICT_HOLDER.getConflictManager().addConflict(conflict); ConfigHolder.CONFLICT_HOLDER.getConflictManager().addConflict(conflict);
// Add conflict to gui // Add conflict to gui
EnchantConflictGui.INSTANCE.updateValueForGeneric(conflict, true); EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.updateValueForGeneric(conflict, true);
return true; return true;
} }
@ -137,7 +140,9 @@ public class ConflictAPI {
prepareSaveTask(); prepareSaveTask();
// Remove from gui // Remove from gui
EnchantConflictGui.INSTANCE.removeGeneric(conflict); EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.removeGeneric(conflict);
return true; return true;
} }
@ -162,14 +167,16 @@ public class ConflictAPI {
reloadChangeTask = Bukkit.getScheduler().scheduleSyncDelayedTask(CustomAnvil.instance, ()->{ reloadChangeTask = Bukkit.getScheduler().scheduleSyncDelayedTask(CustomAnvil.instance, ()->{
ConfigHolder.CONFLICT_HOLDER.reload(); ConfigHolder.CONFLICT_HOLDER.reload();
EnchantConflictGui.INSTANCE.reloadValues(); EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.reloadValues();
reloadChangeTask = -1; reloadChangeTask = -1;
}, 0L); }, 0L);
} }
static void logConflictOrigin(@NotNull ConflictBuilder builder){ static void logConflictOrigin(@NotNull ConflictBuilder builder){
CustomAnvil.instance.getLogger().warning("Conflict " + builder.getName() +" came from " + builder.getSourceName() + "."); CustomAnvil.instance.getLogger().warning("Conflict " + builder.getName() + " came from " + builder.getSourceName() + ".");
} }
/** /**

View file

@ -72,7 +72,8 @@ public class CustomAnvilRecipeApi {
prepareSaveTask(); prepareSaveTask();
// Add from gui // Add from gui
CustomRecipeConfigGui.INSTANCE.updateValueForGeneric(recipe, true); CustomRecipeConfigGui recipeConfigGui = CustomRecipeConfigGui.getCurrentInstance();
if(recipeConfigGui != null) recipeConfigGui.updateValueForGeneric(recipe, true);
return true; return true;
} }
@ -92,7 +93,8 @@ public class CustomAnvilRecipeApi {
prepareSaveTask(); prepareSaveTask();
// Remove from gui // Remove from gui
CustomRecipeConfigGui.INSTANCE.removeGeneric(recipe); CustomRecipeConfigGui recipeConfigGui = CustomRecipeConfigGui.getCurrentInstance();
if(recipeConfigGui != null) recipeConfigGui.removeGeneric(recipe);
return true; return true;
} }

View file

@ -60,7 +60,8 @@ public class MaterialGroupApi {
if(!writeMaterialGroup(group, false)) return false; if(!writeMaterialGroup(group, false)) return false;
if(group instanceof IncludeGroup includeGroup){ if(group instanceof IncludeGroup includeGroup){
GroupConfigGui.INSTANCE.updateValueForGeneric(includeGroup, true); GroupConfigGui configGui = GroupConfigGui.getCurrentInstance();
if(configGui != null) configGui.updateValueForGeneric(includeGroup, true);
} }
if(ConfigOptions.INSTANCE.getVerboseDebugLog()){ if(ConfigOptions.INSTANCE.getVerboseDebugLog()){
@ -168,7 +169,8 @@ public class MaterialGroupApi {
// Remove from gui // Remove from gui
if(group instanceof IncludeGroup includeGroup){ if(group instanceof IncludeGroup includeGroup){
GroupConfigGui.INSTANCE.removeGeneric(includeGroup); GroupConfigGui configGui = GroupConfigGui.getCurrentInstance();
if(configGui != null) configGui.removeGeneric(includeGroup);
} }
return true; return true;
@ -194,7 +196,10 @@ public class MaterialGroupApi {
reloadChangeTask = Bukkit.getScheduler().scheduleSyncDelayedTask(CustomAnvil.instance, ()->{ reloadChangeTask = Bukkit.getScheduler().scheduleSyncDelayedTask(CustomAnvil.instance, ()->{
ConfigHolder.ITEM_GROUP_HOLDER.reload(); ConfigHolder.ITEM_GROUP_HOLDER.reload();
GroupConfigGui.INSTANCE.reloadValues();
GroupConfigGui configGui = GroupConfigGui.getCurrentInstance();
if(configGui != null) configGui.reloadValues();
reloadChangeTask = -1; reloadChangeTask = -1;
}, 0L); }, 0L);

View file

@ -82,7 +82,7 @@ public class MainConfigGui extends ChestGui {
enchantConflictMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment conflict menu")); enchantConflictMeta.setLore(Collections.singletonList("\u00A77Click here to open enchantment conflict menu"));
enchantConflictItemstack.setItemMeta(enchantConflictMeta); enchantConflictItemstack.setItemMeta(enchantConflictMeta);
GuiItem enchantConflictItem = GuiGlobalItems.goToGuiItem(enchantConflictItemstack, EnchantConflictGui.INSTANCE); GuiItem enchantConflictItem = GuiGlobalItems.goToGuiItem(enchantConflictItemstack, EnchantConflictGui.getInstance());
pane.bindItem('4', enchantConflictItem); pane.bindItem('4', enchantConflictItem);
// Group config items // Group config items
@ -94,7 +94,7 @@ public class MainConfigGui extends ChestGui {
groupMeta.setLore(Collections.singletonList("\u00A77Click here to open material group menu")); groupMeta.setLore(Collections.singletonList("\u00A77Click here to open material group menu"));
groupItemstack.setItemMeta(groupMeta); groupItemstack.setItemMeta(groupMeta);
GuiItem groupConfigItem = GuiGlobalItems.goToGuiItem(groupItemstack, GroupConfigGui.INSTANCE); GuiItem groupConfigItem = GuiGlobalItems.goToGuiItem(groupItemstack, GroupConfigGui.getInstance());
pane.bindItem('5', groupConfigItem); pane.bindItem('5', groupConfigItem);
@ -107,7 +107,7 @@ public class MainConfigGui extends ChestGui {
unitRepairMeta.setLore(Collections.singletonList("\u00A77Click here to open anvil unit repair menu")); unitRepairMeta.setLore(Collections.singletonList("\u00A77Click here to open anvil unit repair menu"));
unirRepairItemstack.setItemMeta(unitRepairMeta); unirRepairItemstack.setItemMeta(unitRepairMeta);
GuiItem unitRepairItem = GuiGlobalItems.goToGuiItem(unirRepairItemstack, UnitRepairConfigGui.INSTANCE); GuiItem unitRepairItem = GuiGlobalItems.goToGuiItem(unirRepairItemstack, UnitRepairConfigGui.getInstance());
pane.bindItem('6', unitRepairItem); pane.bindItem('6', unitRepairItem);
// Custom recipe item // Custom recipe item
@ -119,7 +119,7 @@ public class MainConfigGui extends ChestGui {
customRecipeMeta.setLore(Collections.singletonList("\u00A77Click here to open anvil custom recipe menu")); customRecipeMeta.setLore(Collections.singletonList("\u00A77Click here to open anvil custom recipe menu"));
customRecipeItemstack.setItemMeta(customRecipeMeta); customRecipeItemstack.setItemMeta(customRecipeMeta);
GuiItem customRecipeItem = GuiGlobalItems.goToGuiItem(customRecipeItemstack, CustomRecipeConfigGui.INSTANCE); GuiItem customRecipeItem = GuiGlobalItems.goToGuiItem(customRecipeItemstack, CustomRecipeConfigGui.getInstance());
pane.bindItem('7', customRecipeItem); pane.bindItem('7', customRecipeItem);
// quit item // quit item

View file

@ -5,6 +5,8 @@ import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemFlag;
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.Nullable;
import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui;
import xyz.alexcrea.cuanvil.gui.config.list.elements.CustomRecipeSubSettingGui; import xyz.alexcrea.cuanvil.gui.config.list.elements.CustomRecipeSubSettingGui;
@ -17,10 +19,18 @@ import java.util.Collection;
public class CustomRecipeConfigGui extends MappedGuiListConfigGui<AnvilCustomRecipe, CustomRecipeSubSettingGui> { public class CustomRecipeConfigGui extends MappedGuiListConfigGui<AnvilCustomRecipe, CustomRecipeSubSettingGui> {
public final static CustomRecipeConfigGui INSTANCE = new CustomRecipeConfigGui(); private static CustomRecipeConfigGui INSTANCE = new CustomRecipeConfigGui();
static { @Nullable
INSTANCE.init(); public static CustomRecipeConfigGui getCurrentInstance(){
return INSTANCE;
}
@NotNull
public static CustomRecipeConfigGui getInstance(){
if(INSTANCE == null) INSTANCE = new CustomRecipeConfigGui();
return INSTANCE;
} }
private CustomRecipeConfigGui() { private CustomRecipeConfigGui() {

View file

@ -5,6 +5,8 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemFlag;
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.Nullable;
import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.group.EnchantConflictGroup; import xyz.alexcrea.cuanvil.group.EnchantConflictGroup;
import xyz.alexcrea.cuanvil.group.IncludeGroup; import xyz.alexcrea.cuanvil.group.IncludeGroup;
@ -18,14 +20,25 @@ import java.util.Collection;
public class EnchantConflictGui extends MappedGuiListConfigGui<EnchantConflictGroup, EnchantConflictSubSettingGui> { public class EnchantConflictGui extends MappedGuiListConfigGui<EnchantConflictGroup, EnchantConflictSubSettingGui> {
public static final EnchantConflictGui INSTANCE = new EnchantConflictGui(); private static EnchantConflictGui INSTANCE;
static { @Nullable
INSTANCE.init(); public static EnchantConflictGui getCurrentInstance(){
return INSTANCE;
} }
@NotNull
public static EnchantConflictGui getInstance(){
if(INSTANCE == null) INSTANCE = new EnchantConflictGui();
return INSTANCE;
}
private EnchantConflictGui() { private EnchantConflictGui() {
super( "Conflict Config"); super( "Conflict Config");
init();
} }
@Override @Override

View file

@ -5,6 +5,8 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemFlag;
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.Nullable;
import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.group.AbstractMaterialGroup; import xyz.alexcrea.cuanvil.group.AbstractMaterialGroup;
import xyz.alexcrea.cuanvil.group.GroupType; import xyz.alexcrea.cuanvil.group.GroupType;
@ -20,14 +22,24 @@ import java.util.Collection;
public class GroupConfigGui extends MappedGuiListConfigGui<IncludeGroup, GroupConfigSubSettingGui> { public class GroupConfigGui extends MappedGuiListConfigGui<IncludeGroup, GroupConfigSubSettingGui> {
public final static GroupConfigGui INSTANCE = new GroupConfigGui(); private static GroupConfigGui INSTANCE;
static { @Nullable
INSTANCE.init(); public static GroupConfigGui getCurrentInstance(){
return INSTANCE;
}
@NotNull
public static GroupConfigGui getInstance(){
if(INSTANCE == null) INSTANCE = new GroupConfigGui();
return INSTANCE;
} }
public GroupConfigGui() { public GroupConfigGui() {
super("Group Config"); super("Group Config");
init();
} }
@Override @Override

View file

@ -6,6 +6,8 @@ import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
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.Nullable;
import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.gui.config.ask.SelectItemTypeGui; import xyz.alexcrea.cuanvil.gui.config.ask.SelectItemTypeGui;
import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui; import xyz.alexcrea.cuanvil.gui.config.list.MappedGuiListConfigGui;
@ -18,14 +20,24 @@ import java.util.Collection;
public class UnitRepairConfigGui extends MappedGuiListConfigGui<Material, UnitRepairElementListGui> { public class UnitRepairConfigGui extends MappedGuiListConfigGui<Material, UnitRepairElementListGui> {
public static final UnitRepairConfigGui INSTANCE = new UnitRepairConfigGui(); private static UnitRepairConfigGui INSTANCE;
static { @Nullable
INSTANCE.init(); public static UnitRepairConfigGui getCurrentInstance(){
return INSTANCE;
}
@NotNull
public static UnitRepairConfigGui getInstance(){
if(INSTANCE == null) INSTANCE = new UnitRepairConfigGui();
return INSTANCE;
} }
private UnitRepairConfigGui() { private UnitRepairConfigGui() {
super("Unit Repair Config"); super("Unit Repair Config");
init();
} }
@Override @Override

View file

@ -128,6 +128,10 @@ class CustomAnvil : JavaPlugin() {
// temporary: handle 1.21 update // temporary: handle 1.21 update
Update_1_21.handleUpdate() Update_1_21.handleUpdate()
// Register enchantment of compatible plugin and load configuration change.
DependencyManager.handleCompatibilityConfig()
// Call config event
val configReadyEvent = CAConfigReadyEvent() val configReadyEvent = CAConfigReadyEvent()
server.pluginManager.callEvent(configReadyEvent) server.pluginManager.callEvent(configReadyEvent)
@ -135,8 +139,6 @@ class CustomAnvil : JavaPlugin() {
MainConfigGui.getInstance().init(DependencyManager.packetManager) MainConfigGui.getInstance().init(DependencyManager.packetManager)
GuiSharedConstant.loadConstants() GuiSharedConstant.loadConstants()
// Register enchantment of compatible plugin and load configuration change.
DependencyManager.handleCompatibilityConfig()
} }
fun reloadResource( fun reloadResource(

View file

@ -1,11 +1,15 @@
package xyz.alexcrea.cuanvil.command package xyz.alexcrea.cuanvil.command
import io.delilaheve.CustomAnvil import io.delilaheve.CustomAnvil
import org.bukkit.Bukkit
import org.bukkit.command.Command import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender import org.bukkit.command.CommandSender
import xyz.alexcrea.cuanvil.api.event.CAConfigReadyEvent
import xyz.alexcrea.cuanvil.config.ConfigHolder import xyz.alexcrea.cuanvil.config.ConfigHolder
import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.gui.config.global.* import xyz.alexcrea.cuanvil.gui.config.global.*
import xyz.alexcrea.cuanvil.update.Update_1_21
class ReloadExecutor : CommandExecutor { class ReloadExecutor : CommandExecutor {
override fun onCommand(sender: CommandSender, cmd: Command, cmdstr: String, args: Array<out String>): Boolean { override fun onCommand(sender: CommandSender, cmd: Command, cmdstr: String, args: Array<out String>): Boolean {
@ -39,10 +43,20 @@ class ReloadExecutor : CommandExecutor {
EnchantCostConfigGui.getInstance()?.updateGuiValues() EnchantCostConfigGui.getInstance()?.updateGuiValues()
EnchantLimitConfigGui.getInstance()?.updateGuiValues() EnchantLimitConfigGui.getInstance()?.updateGuiValues()
EnchantConflictGui.INSTANCE.reloadValues() EnchantConflictGui.getCurrentInstance()?.reloadValues()
GroupConfigGui.INSTANCE.reloadValues() GroupConfigGui.getCurrentInstance()?.reloadValues()
UnitRepairConfigGui.INSTANCE.reloadValues() UnitRepairConfigGui.getCurrentInstance()?.reloadValues()
CustomRecipeConfigGui.INSTANCE.reloadValues() CustomRecipeConfigGui.getCurrentInstance()?.reloadValues()
// temporary: handle 1.21 update
Update_1_21.handleUpdate()
// Register enchantment of compatible plugin and load configuration change.
DependencyManager.handleCompatibilityConfig()
// Call event
val configReadyEvent = CAConfigReadyEvent()
Bukkit.getServer().pluginManager.callEvent(configReadyEvent)
return true return true
} catch (e: Exception) { } catch (e: Exception) {