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 5c06ca8d1..a1139cdd5 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 @@ -47,6 +47,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; @@ -79,6 +81,12 @@ public class PluginConfiguration extends AbstractConfigurationFile { @Comment("# Choose the preferred language for all messages and interactions in the plugin.") TranslationConfig language = new TranslationConfig(); + @Bean(proxied = PlaceholdersSettings.class) + @Comment("") + @Comment("# Placeholders Configuration") + @Comment("# Settings that define various placeholders used across the plugin") + PlaceholdersConfig placeholders = new PlaceholdersConfig(); + @Bean(proxied = DatabaseSettings.class) @Comment("") @Comment("# Database Configuration") 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..571283dba --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/placeholder/PlaceholdersConfig.java @@ -0,0 +1,24 @@ +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" + ); + + @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 + "}"))); } }