Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ publishing {
publications {
mavenJava(MavenPublication) {
groupId = group
artifactId = "RedStarLib"
artifactId = "redstarlib"
version = version

from components.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,39 @@

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

/**
* <h2>初始化方法</h2>
* 若继承,则需使用该实例。
*/
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();
}

/**
* <h2>初始化文件</h2>
* 如果没有这个文件就自动创建,并返回 {@link YamlConfiguration} 配置文件,方便操作
* @param configFile {@link File} 格式的文件,只需要指定路径和文件名称
* @return 读取到的 {@link YamlConfiguration} 配置文件
*/
public YamlConfiguration initFile(File configFile){
public YamlConfiguration initFile(){
if(!configFile.exists()){
try {
configFile.getParentFile().mkdirs();
Expand All @@ -39,28 +56,32 @@ public YamlConfiguration initFile(File configFile){
/**
* <h2>保存 {@link Map} 类型的配置文件</h2>
* @param configMap {@link Map} 类型的配置文件
* @param config {@link YamlConfiguration} 类型的配置文件,可以直接进行内存读写操作
* @param configFile {@link File} 类型文件,用于将内存中的配置文件保存
*/
public void saveMapConfig(Map<String, Object> configMap, YamlConfiguration config, File configFile){
public void saveMapConfig(Map<String, Object> configMap){
if (!configFile.exists()) return;

configMap.forEach(config::set);

save(config, configFile);
save();
}

/**
* <h2>从内存中保存 {@link YamlConfiguration} 格式文件</h2>
* @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) {
e.printStackTrace();
}
}


public File getConfigFile() {
return configFile;
}

public YamlConfiguration getConfig() {
return config;
}
}