mirror of
https://github.com/CarmJos/MineConfiguration.git
synced 2024-09-19 20:05:49 +00:00
feat(conf): 为入口类添加了实例方法,方便快捷创建基础配置和消息配置文件。
This commit is contained in:
parent
8f3d574446
commit
9d6212e5ea
@ -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<P extends ConfigurationProvider<?>> {
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,12 +1,16 @@
|
|||||||
package cc.carm.lib.mineconfiguration.bukkit;
|
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.bukkit.source.BukkitConfigProvider;
|
||||||
|
import cc.carm.lib.mineconfiguration.common.AbstractConfiguration;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class MineConfiguration {
|
public class MineConfiguration extends AbstractConfiguration<BukkitConfigProvider> {
|
||||||
|
|
||||||
public static BukkitConfigProvider from(File file, String source) {
|
public static BukkitConfigProvider from(File file, String source) {
|
||||||
BukkitConfigProvider provider = new BukkitConfigProvider(file);
|
BukkitConfigProvider provider = new BukkitConfigProvider(file);
|
||||||
@ -39,4 +43,24 @@ public class MineConfiguration {
|
|||||||
return from(new File(plugin.getDataFolder(), fileName), source);
|
return from(new File(plugin.getDataFolder(), fileName), source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull JavaPlugin plugin) {
|
||||||
|
super(from(plugin, "config.yml"), from(plugin, "messages.yml"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull JavaPlugin plugin,
|
||||||
|
@NotNull ConfigurationRoot configRoot,
|
||||||
|
@NotNull ConfigurationRoot messageRoot) {
|
||||||
|
this(plugin);
|
||||||
|
initializeConfig(configRoot);
|
||||||
|
initializeMessage(messageRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull JavaPlugin plugin,
|
||||||
|
@NotNull Class<? extends ConfigurationRoot> configRoot,
|
||||||
|
@NotNull Class<? extends ConfigurationRoot> messageRoot) {
|
||||||
|
this(plugin);
|
||||||
|
initializeConfig(configRoot);
|
||||||
|
initializeMessage(messageRoot);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
package cc.carm.lib.mineconfiguration.bungee;
|
package cc.carm.lib.mineconfiguration.bungee;
|
||||||
|
|
||||||
|
import cc.carm.lib.configuration.core.ConfigurationRoot;
|
||||||
import cc.carm.lib.mineconfiguration.bungee.source.BungeeConfigProvider;
|
import cc.carm.lib.mineconfiguration.bungee.source.BungeeConfigProvider;
|
||||||
|
import cc.carm.lib.mineconfiguration.common.AbstractConfiguration;
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
import net.md_5.bungee.config.ConfigurationProvider;
|
import net.md_5.bungee.config.ConfigurationProvider;
|
||||||
import net.md_5.bungee.config.JsonConfiguration;
|
import net.md_5.bungee.config.JsonConfiguration;
|
||||||
import net.md_5.bungee.config.YamlConfiguration;
|
import net.md_5.bungee.config.YamlConfiguration;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class MineConfiguration {
|
public class MineConfiguration extends AbstractConfiguration<BungeeConfigProvider> {
|
||||||
|
|
||||||
protected static BungeeConfigProvider create(File file, String source, ConfigurationProvider loader) {
|
protected static BungeeConfigProvider create(File file, String source, ConfigurationProvider loader) {
|
||||||
BungeeConfigProvider provider = new BungeeConfigProvider(file, loader);
|
BungeeConfigProvider provider = new BungeeConfigProvider(file, loader);
|
||||||
@ -94,4 +97,26 @@ public class MineConfiguration {
|
|||||||
return fromJSON(new File(plugin.getDataFolder(), fileName), source);
|
return fromJSON(new File(plugin.getDataFolder(), fileName), source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull Plugin plugin) {
|
||||||
|
super(from(plugin, "config.yml"), from(plugin, "messages.yml"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull Plugin plugin,
|
||||||
|
@NotNull ConfigurationRoot configRoot,
|
||||||
|
@NotNull ConfigurationRoot messageRoot) {
|
||||||
|
this(plugin);
|
||||||
|
initializeConfig(configRoot);
|
||||||
|
initializeMessage(messageRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MineConfiguration(@NotNull Plugin plugin,
|
||||||
|
@NotNull Class<? extends ConfigurationRoot> configRoot,
|
||||||
|
@NotNull Class<? extends ConfigurationRoot> messageRoot) {
|
||||||
|
this(plugin);
|
||||||
|
initializeConfig(configRoot);
|
||||||
|
initializeMessage(messageRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user