Skip to content

Commit 97f08ae

Browse files
committed
perf: 命令管理器改为构造函数获取参数
1 parent ee7d3f1 commit 97f08ae

File tree

2 files changed

+38
-16
lines changed

2 files changed

+38
-16
lines changed

src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,23 @@ public class ImplConfigManager extends ConfigurationManager {
2222

2323
private static final String versioning = "0.0.0";
2424

25+
public ImplConfigManager(){
26+
super(config_file, config);
27+
}
28+
2529
@Override
2630
public void init() {
2731

28-
config = initFile(config_file);
32+
config = initFile();
2933

3034
if (!Objects.equals(config.getString("Versioning"), versioning)) {
3135

3236
config = new YamlConfiguration();
3337

34-
saveMapConfig(default_config, config ,config_file);
38+
saveMapConfig(default_config);
3539
config.set("Versioning", versioning);
36-
save(config, config_file);
40+
save();
3741
}
3842
}
3943

40-
public static YamlConfiguration getConfig() {
41-
return config;
42-
}
4344
}

src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,39 @@
88

99
/**
1010
* <h1>配置管理器</h1>
11-
* 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写IO操作流。
11+
* 抽象类,提供了 {@link YamlConfiguration} 相关的操作代码,以免重复编写 IO流 相关操作。
12+
* 使用方法:
13+
* 1.直接使用,new 出实例即可。
14+
* 2.创建子类,super 然后 new 子类即可。
1215
*/
1316
public abstract class ConfigurationManager {
1417

1518
/**
1619
* <h2>初始化方法</h2>
20+
* 若继承,则需使用该实例。
1721
*/
1822
public abstract void init();
1923

24+
private final File configFile;
25+
26+
private final YamlConfiguration config;
27+
28+
public ConfigurationManager(File configFile, YamlConfiguration config) {
29+
this.configFile = configFile;
30+
this.config = config;
31+
}
32+
33+
public ConfigurationManager(ConfigurationManager manager){
34+
this.configFile = manager.getConfigFile();
35+
this.config = manager.getConfig();
36+
}
37+
2038
/**
2139
* <h2>初始化文件</h2>
2240
* 如果没有这个文件就自动创建,并返回 {@link YamlConfiguration} 配置文件,方便操作
23-
* @param configFile {@link File} 格式的文件,只需要指定路径和文件名称
2441
* @return 读取到的 {@link YamlConfiguration} 配置文件
2542
*/
26-
public YamlConfiguration initFile(File configFile){
43+
public YamlConfiguration initFile(){
2744
if(!configFile.exists()){
2845
try {
2946
configFile.getParentFile().mkdirs();
@@ -39,28 +56,32 @@ public YamlConfiguration initFile(File configFile){
3956
/**
4057
* <h2>保存 {@link Map} 类型的配置文件</h2>
4158
* @param configMap {@link Map} 类型的配置文件
42-
* @param config {@link YamlConfiguration} 类型的配置文件,可以直接进行内存读写操作
43-
* @param configFile {@link File} 类型文件,用于将内存中的配置文件保存
4459
*/
45-
public void saveMapConfig(Map<String, Object> configMap, YamlConfiguration config, File configFile){
60+
public void saveMapConfig(Map<String, Object> configMap){
4661
if (!configFile.exists()) return;
4762

4863
configMap.forEach(config::set);
4964

50-
save(config, configFile);
65+
save();
5166
}
5267

5368
/**
5469
* <h2>从内存中保存 {@link YamlConfiguration} 格式文件</h2>
55-
* @param config {@link YamlConfiguration} 内存中配置文件
56-
* @param configFile {@link File} IO配置文件
5770
*/
58-
public void save(YamlConfiguration config, File configFile){
71+
public void save(){
5972
try {
6073
config.save(configFile);
6174
} catch (IOException e) {
6275
e.printStackTrace();
6376
}
6477
}
6578

79+
80+
public File getConfigFile() {
81+
return configFile;
82+
}
83+
84+
public YamlConfiguration getConfig() {
85+
return config;
86+
}
6687
}

0 commit comments

Comments
 (0)