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.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.
@ -56,7 +58,8 @@ public class ConflictAPI {
ConfigHolder.CONFLICT_HOLDER.getConflictManager().addConflict(conflict);
// Add conflict to gui
EnchantConflictGui.INSTANCE.updateValueForGeneric(conflict, true);
EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.updateValueForGeneric(conflict, true);
return true;
}
@ -137,7 +140,9 @@ public class ConflictAPI {
prepareSaveTask();
// Remove from gui
EnchantConflictGui.INSTANCE.removeGeneric(conflict);
EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.removeGeneric(conflict);
return true;
}
@ -162,14 +167,16 @@ public class ConflictAPI {
reloadChangeTask = Bukkit.getScheduler().scheduleSyncDelayedTask(CustomAnvil.instance, ()->{
ConfigHolder.CONFLICT_HOLDER.reload();
EnchantConflictGui.INSTANCE.reloadValues();
EnchantConflictGui conflictGui = EnchantConflictGui.getCurrentInstance();
if(conflictGui != null) conflictGui.reloadValues();
reloadChangeTask = -1;
}, 0L);
}
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();
// Add from gui
CustomRecipeConfigGui.INSTANCE.updateValueForGeneric(recipe, true);
CustomRecipeConfigGui recipeConfigGui = CustomRecipeConfigGui.getCurrentInstance();
if(recipeConfigGui != null) recipeConfigGui.updateValueForGeneric(recipe, true);
return true;
}
@ -92,7 +93,8 @@ public class CustomAnvilRecipeApi {
prepareSaveTask();
// Remove from gui
CustomRecipeConfigGui.INSTANCE.removeGeneric(recipe);
CustomRecipeConfigGui recipeConfigGui = CustomRecipeConfigGui.getCurrentInstance();
if(recipeConfigGui != null) recipeConfigGui.removeGeneric(recipe);
return true;
}

View file

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

View file

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

View file

@ -5,6 +5,8 @@ import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag;
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.gui.config.list.MappedGuiListConfigGui;
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 final static CustomRecipeConfigGui INSTANCE = new CustomRecipeConfigGui();
private static CustomRecipeConfigGui INSTANCE = new CustomRecipeConfigGui();
static {
INSTANCE.init();
@Nullable
public static CustomRecipeConfigGui getCurrentInstance(){
return INSTANCE;
}
@NotNull
public static CustomRecipeConfigGui getInstance(){
if(INSTANCE == null) INSTANCE = new CustomRecipeConfigGui();
return INSTANCE;
}
private CustomRecipeConfigGui() {

View file

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

View file

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

View file

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