diff --git a/common/src/main/java/cc/carm/lib/mineconfiguration/common/AbstractConfiguration.java b/common/src/main/java/cc/carm/lib/mineconfiguration/common/AbstractConfiguration.java new file mode 100644 index 0000000..357b96c --- /dev/null +++ b/common/src/main/java/cc/carm/lib/mineconfiguration/common/AbstractConfiguration.java @@ -0,0 +1,51 @@ +package cc.carm.lib.mineconfiguration.common; + +import cc.carm.lib.configuration.core.ConfigurationRoot; +import cc.carm.lib.configuration.core.source.ConfigurationProvider; +import org.jetbrains.annotations.NotNull; + +public abstract class AbstractConfiguration
> {
+
+ private final P configProvider;
+ private final P messageProvider;
+
+ protected AbstractConfiguration(@NotNull P configProvider, @NotNull P messageProvider) {
+ this.configProvider = configProvider;
+ this.messageProvider = messageProvider;
+ }
+
+ public void initializeConfig(@NotNull ConfigurationRoot configRoot) {
+ this.configProvider.initialize(configRoot);
+ }
+
+ public void initializeMessage(@NotNull ConfigurationRoot messageRoot) {
+ this.messageProvider.initialize(messageRoot);
+ }
+
+ public void initializeConfig(@NotNull Class extends ConfigurationRoot> configRoot) {
+ this.configProvider.initialize(configRoot);
+ }
+
+ public void initializeMessage(@NotNull Class extends ConfigurationRoot> messageRoot) {
+ this.messageProvider.initialize(messageRoot);
+ }
+
+ public P getConfigProvider() {
+ return configProvider;
+ }
+
+ public P getMessageProvider() {
+ return messageProvider;
+ }
+
+ public void reload() throws Exception {
+ getConfigProvider().reload();
+ getMessageProvider().reload();
+ }
+
+ public void save() throws Exception {
+ getConfigProvider().save();
+ getMessageProvider().save();
+ }
+
+}
diff --git a/platform/bukkit/src/main/java/cc/carm/lib/mineconfiguration/bukkit/MineConfiguration.java b/platform/bukkit/src/main/java/cc/carm/lib/mineconfiguration/bukkit/MineConfiguration.java
index fb4df82..41c74e3 100644
--- a/platform/bukkit/src/main/java/cc/carm/lib/mineconfiguration/bukkit/MineConfiguration.java
+++ b/platform/bukkit/src/main/java/cc/carm/lib/mineconfiguration/bukkit/MineConfiguration.java
@@ -1,12 +1,16 @@
package cc.carm.lib.mineconfiguration.bukkit;
+import cc.carm.lib.configuration.core.ConfigurationRoot;
import cc.carm.lib.mineconfiguration.bukkit.source.BukkitConfigProvider;
+import cc.carm.lib.mineconfiguration.common.AbstractConfiguration;
import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
-public class MineConfiguration {
+public class MineConfiguration extends AbstractConfiguration