From ee7d3f1667ad627733b9e8abd4bc3648faf2d118 Mon Sep 17 00:00:00 2001 From: pingguomc <141195321+pingguomc@users.noreply.github.com> Date: Thu, 29 May 2025 12:44:29 +0800 Subject: [PATCH 1/2] fix: packages --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 97f08aedf138c782855a9fc0bd3a22d2377848d8 Mon Sep 17 00:00:00 2001 From: pingguomc <141195321+pingguomc@users.noreply.github.com> Date: Thu, 29 May 2025 12:49:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?perf:=20=E5=91=BD=E4=BB=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=99=A8=E6=94=B9=E4=B8=BA=E6=9E=84=E9=80=A0=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E8=8E=B7=E5=8F=96=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redstarlib/impl/ImplConfigManager.java | 13 +++--- .../manager/ConfigurationManager.java | 41 ++++++++++++++----- 2 files changed, 38 insertions(+), 16 deletions(-) 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; + } }