From 5bc8e3fb4ce9e3c5b799264c7c6e00968a6caa65 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 15 Nov 2022 12:26:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=20PageManager=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/core/bukkit/page/PageManager.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java index 4861834..59635b1 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/page/PageManager.java @@ -4,6 +4,7 @@ import cn.hamster3.mc.plugin.core.bukkit.HamsterCorePlugin; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; @@ -15,7 +16,8 @@ import java.util.HashMap; public class PageManager { private static final HashMap PAGE_CONFIG = new HashMap<>(); - public static PageConfig getPageConfig(Class clazz) { + @NotNull + public static PageConfig getPageConfig(@NotNull Class clazz) { PageConfig pageConfig = PAGE_CONFIG.get(clazz.getName()); if (pageConfig != null) { return pageConfig; @@ -33,7 +35,19 @@ public class PageManager { if (pageFolder.mkdirs()) { HamsterCorePlugin.getInstance().getLogger().info("为 " + pluginName + " 创建页面配置文件夹..."); } - String filename = clazz.getSimpleName() + ".yml"; + pageConfig = getPageConfig(plugin, clazz.getSimpleName()); + PAGE_CONFIG.put(clazz.getName(), pageConfig); + return pageConfig; + } + + @NotNull + public static PageConfig getPageConfig(@NotNull Plugin plugin, @NotNull String pageName) { + String pluginName = plugin.getName(); + File pageFolder = new File(plugin.getDataFolder(), "pages"); + if (pageFolder.mkdirs()) { + HamsterCorePlugin.getInstance().getLogger().info("为 " + pluginName + " 创建页面配置文件夹..."); + } + String filename = pageName + ".yml"; File pageFile = new File(pageFolder, filename); try (InputStream resource = plugin.getResource("/pages/" + filename)) { if (resource == null) { @@ -41,11 +55,9 @@ public class PageManager { } Files.copy(resource, pageFile.toPath(), StandardCopyOption.REPLACE_EXISTING); YamlConfiguration config = YamlConfiguration.loadConfiguration(pageFile); - pageConfig = new PageConfig(plugin, config); + return new PageConfig(plugin, config); } catch (IOException e) { throw new IllegalArgumentException("为插件 " + pluginName + " 加载页面配置文件 " + filename + " 时出错!"); } - PAGE_CONFIG.put(clazz.getName(), pageConfig); - return pageConfig; } }