diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PlaceholdersConfiguration.java b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PlaceholdersConfiguration.java deleted file mode 100644 index d21398083..000000000 --- a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PlaceholdersConfiguration.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.eternalcode.core.configuration.implementation; - -import com.eternalcode.core.configuration.AbstractConfigurationFile; -import com.eternalcode.core.injector.annotations.component.ConfigurationFile; -import eu.okaeri.configs.annotation.Comment; -import java.io.File; -import java.util.Map; - -@ConfigurationFile -public class PlaceholdersConfiguration extends AbstractConfigurationFile { - - @Comment({ - "# Enables the creation of global placeholders", - "# An example is {prefix}, whenever you use {prefix} the specified value will be displayed", - "# Remember that it only works in EternalCore!" - }) - public Map placeholders = Map.of( - "prefix", "&7" - ); - - @Override - public File getConfigFile(File dataFolder) { - return new File(dataFolder, "placeholders.yml"); - } -} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java index 3dd6c217b..0ee32e00b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java @@ -45,6 +45,8 @@ import com.eternalcode.core.feature.warp.WarpSettings; import com.eternalcode.core.injector.annotations.Bean; import com.eternalcode.core.injector.annotations.component.ConfigurationFile; +import com.eternalcode.core.placeholder.PlaceholdersConfig; +import com.eternalcode.core.placeholder.PlaceholdersSettings; import com.eternalcode.core.translation.TranslationConfig; import com.eternalcode.core.translation.TranslationSettings; import eu.okaeri.configs.OkaeriConfig; @@ -213,6 +215,12 @@ public static class Format extends OkaeriConfig { @Comment("# Settings responsible for player vanish functionality") VanishConfig vanish = new VanishConfig(); + @Bean(proxied = PlaceholdersSettings.class) + @Comment("") + @Comment("# Placeholders Configuration") + @Comment("# Settings that define various placeholders used across the plugin") + PlaceholdersConfig placeholders = new PlaceholdersConfig(); + @Override public File getConfigFile(File dataFolder) { return new File(dataFolder, "config.yml"); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersConfig.java new file mode 100644 index 000000000..bee6860af --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersConfig.java @@ -0,0 +1,25 @@ +package com.eternalcode.core.placeholder; + +import eu.okaeri.configs.OkaeriConfig; +import eu.okaeri.configs.annotation.Comment; +import lombok.Getter; +import lombok.experimental.Accessors; + +import java.util.Map; + + +@Getter +@Accessors(fluent = true) +public class PlaceholdersConfig extends OkaeriConfig implements PlaceholdersSettings { + + @Comment("# Map of available placeholders and their default values") + public Map placeholders = Map.of( + "prefix", "&7", + "online_count", "{ONLINE}" + ); + + @Override + public Map placeholders() { + return placeholders; + } +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSettings.java b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSettings.java new file mode 100644 index 000000000..42cf5de86 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSettings.java @@ -0,0 +1,7 @@ +package com.eternalcode.core.placeholder; + +import java.util.Map; + +public interface PlaceholdersSettings { + Map placeholders(); +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSetup.java b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSetup.java index e5e6a74bd..3ae592c22 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSetup.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersSetup.java @@ -3,7 +3,6 @@ import com.eternalcode.annotations.scan.placeholder.PlaceholdersDocs; import com.eternalcode.annotations.scan.placeholder.PlaceholdersDocs.Entry; import com.eternalcode.annotations.scan.placeholder.PlaceholdersDocs.Entry.Type; -import com.eternalcode.core.configuration.implementation.PlaceholdersConfiguration; import com.eternalcode.core.feature.vanish.VanishService; import com.eternalcode.core.injector.annotations.component.Controller; import com.eternalcode.core.publish.event.EternalInitializeEvent; @@ -24,9 +23,9 @@ class PlaceholdersSetup { @Subscribe(EternalInitializeEvent.class) - void setUp(PlaceholderRegistry placeholders, PlaceholdersConfiguration config) { - for (String key : config.placeholders.keySet()) { - placeholders.register(Placeholder.of(key, player -> config.placeholders.getOrDefault(key, "{" + key + "}"))); + void setUp(PlaceholderRegistry placeholders, PlaceholdersSettings config) { + for (String key : config.placeholders().keySet()) { + placeholders.register(Placeholder.of(key, player -> config.placeholders().getOrDefault(key, "{" + key + "}"))); } }