diff --git a/build.gradle b/build.gradle
index 8ba3982..8a5f28b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -58,7 +58,7 @@ publishing {
publications {
mavenJava(MavenPublication) {
groupId = group
- artifactId = "RedStarLib"
+ artifactId = "redstarlib"
version = version
from components.java
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
index 440531a..6ebce36 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
@@ -22,22 +22,23 @@ public class ImplConfigManager extends ConfigurationManager {
private static final String versioning = "0.0.0";
+ public ImplConfigManager(){
+ super(config_file, config);
+ }
+
@Override
public void init() {
- config = initFile(config_file);
+ config = initFile();
if (!Objects.equals(config.getString("Versioning"), versioning)) {
config = new YamlConfiguration();
- saveMapConfig(default_config, config ,config_file);
+ saveMapConfig(default_config);
config.set("Versioning", versioning);
- save(config, config_file);
+ save();
}
}
- public static YamlConfiguration getConfig() {
- return config;
- }
}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
index b6a377c..e3155c1 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
@@ -8,22 +8,39 @@
/**
*
配置管理器
- * 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写IO操作流。
+ * 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写 IO流 相关操作。
+ * 使用方法:
+ * 1.直接使用,new 出实例即可。
+ * 2.创建子类,super 然后 new 子类即可。
*/
public abstract class ConfigurationManager {
/**
* 初始化方法
+ * 若继承,则需使用该实例。
*/
public abstract void init();
+ private final File configFile;
+
+ private final YamlConfiguration config;
+
+ public ConfigurationManager(File configFile, YamlConfiguration config) {
+ this.configFile = configFile;
+ this.config = config;
+ }
+
+ public ConfigurationManager(ConfigurationManager manager){
+ this.configFile = manager.getConfigFile();
+ this.config = manager.getConfig();
+ }
+
/**
* 初始化文件
* 如果没有这个文件就自动创建,并返回 {@link YamlConfiguration} 配置文件,方便操作
- * @param configFile {@link File} 格式的文件,只需要指定路径和文件名称
* @return 读取到的 {@link YamlConfiguration} 配置文件
*/
- public YamlConfiguration initFile(File configFile){
+ public YamlConfiguration initFile(){
if(!configFile.exists()){
try {
configFile.getParentFile().mkdirs();
@@ -39,23 +56,19 @@ public YamlConfiguration initFile(File configFile){
/**
* 保存 {@link Map} 类型的配置文件
* @param configMap {@link Map} 类型的配置文件
- * @param config {@link YamlConfiguration} 类型的配置文件,可以直接进行内存读写操作
- * @param configFile {@link File} 类型文件,用于将内存中的配置文件保存
*/
- public void saveMapConfig(Map configMap, YamlConfiguration config, File configFile){
+ public void saveMapConfig(Map configMap){
if (!configFile.exists()) return;
configMap.forEach(config::set);
- save(config, configFile);
+ save();
}
/**
* 从内存中保存 {@link YamlConfiguration} 格式文件
- * @param config {@link YamlConfiguration} 内存中配置文件
- * @param configFile {@link File} IO配置文件
*/
- public void save(YamlConfiguration config, File configFile){
+ public void save(){
try {
config.save(configFile);
} catch (IOException e) {
@@ -63,4 +76,12 @@ public void save(YamlConfiguration config, File configFile){
}
}
+
+ public File getConfigFile() {
+ return configFile;
+ }
+
+ public YamlConfiguration getConfig() {
+ return config;
+ }
}