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;
|
||||
|
||||
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<BukkitConfigProvider> {
|
||||
|
||||
public static BukkitConfigProvider from(File file, String source) {
|
||||
BukkitConfigProvider provider = new BukkitConfigProvider(file);
|
||||
@ -39,4 +43,24 @@ public class MineConfiguration {
|
||||
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;
|
||||
|
||||
import cc.carm.lib.configuration.core.ConfigurationRoot;
|
||||
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.config.ConfigurationProvider;
|
||||
import net.md_5.bungee.config.JsonConfiguration;
|
||||
import net.md_5.bungee.config.YamlConfiguration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class MineConfiguration {
|
||||
public class MineConfiguration extends AbstractConfiguration<BungeeConfigProvider> {
|
||||
|
||||
protected static BungeeConfigProvider create(File file, String source, ConfigurationProvider loader) {
|
||||
BungeeConfigProvider provider = new BungeeConfigProvider(file, loader);
|
||||
@ -94,4 +97,26 @@ public class MineConfiguration {
|
||||
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