From 55c52a83ac72d83da00809596714458c67a219f6 Mon Sep 17 00:00:00 2001 From: PiggyPiglet Date: Tue, 3 Feb 2026 08:39:07 +0800 Subject: [PATCH] Run expansion config logic before loading expansion --- .../manager/LocalExpansionManager.java | 52 ++++--------------- 1 file changed, 11 insertions(+), 41 deletions(-) diff --git a/src/main/java/at/helpch/placeholderapi/expansion/manager/LocalExpansionManager.java b/src/main/java/at/helpch/placeholderapi/expansion/manager/LocalExpansionManager.java index f6148e3..ed3a6ec 100644 --- a/src/main/java/at/helpch/placeholderapi/expansion/manager/LocalExpansionManager.java +++ b/src/main/java/at/helpch/placeholderapi/expansion/manager/LocalExpansionManager.java @@ -217,17 +217,7 @@ public final class LocalExpansionManager /*implements Listener*/ { @ApiStatus.Internal public boolean register(@NotNull final PlaceholderExpansion expansion) { final String identifier = expansion.getIdentifier().toLowerCase(Locale.ROOT); - - if (!expansion.canRegister()) { - return false; - } - - // Avoid loading two external expansions with the same identifier - if (expansion.getExpansionType() == PlaceholderExpansion.Type.EXTERNAL && expansions.containsKey(identifier)) { - logger.atWarning().log("Failed to load external expansion %s. Identifier is already in use.", expansion.getIdentifier()); - return false; - } - + if (expansion instanceof Configurable configurable) { final PlaceholderAPIConfig config = configManager.config(); @@ -242,36 +232,16 @@ public final class LocalExpansionManager /*implements Listener*/ { final Object expansionConfig = configManager.convertExpansion((Map) config.expansions().get(expansion.getIdentifier()), configurable.provideConfigType()); config.expansions().put(expansion.getIdentifier(), expansionConfig); } -// Map defaults = ((Configurable) expansion).getDefaults(); -// String pre = "expansions." + identifier + "."; -// boolean save = false; -// -// final PlaceholderAPIConfig config = this.config.config(); -// -// if (defaults != null) { -// for (Map.Entry entries : defaults.entrySet()) { -// if (entries.getKey() == null || entries.getKey().isEmpty()) { -// continue; -// } -// -// if (entries.getValue() == null) { -// if (cfg.contains(pre + entries.getKey())) { -// save = true; -// cfg.set(pre + entries.getKey(), null); -// } -// } else { -// if (!cfg.contains(pre + entries.getKey())) { -// save = true; -// cfg.set(pre + entries.getKey(), entries.getValue()); -// } -// } -// } -// } -// -// if (save) { -// plugin.saveConfig(); -// plugin.reloadConfig(); -// } + } + + if (!expansion.canRegister()) { + return false; + } + + // Avoid loading two external expansions with the same identifier + if (expansion.getExpansionType() == PlaceholderExpansion.Type.EXTERNAL && expansions.containsKey(identifier)) { + logger.atWarning().log("Failed to load external expansion %s. Identifier is already in use.", expansion.getIdentifier()); + return false; } // if (expansion instanceof VersionSpecific) {