style: 从 pages 子目录中读取页面配置文件

This commit is contained in:
2022-11-11 06:55:56 +08:00
parent 29a6e3247d
commit aaa888f058

View File

@@ -1,12 +1,15 @@
package cn.hamster3.mc.plugin.core.bukkit.page; package cn.hamster3.mc.plugin.core.bukkit.page;
import cn.hamster3.mc.plugin.core.bukkit.HamsterCorePlugin; import cn.hamster3.mc.plugin.core.bukkit.HamsterCorePlugin;
import cn.hamster3.mc.plugin.core.bukkit.util.BukkitUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.HashMap; import java.util.HashMap;
public class PageManager { public class PageManager {
@@ -31,8 +34,17 @@ public class PageManager {
HamsterCorePlugin.getInstance().getLogger().info("" + pluginName + " 创建页面配置文件夹..."); HamsterCorePlugin.getInstance().getLogger().info("" + pluginName + " 创建页面配置文件夹...");
} }
String filename = clazz.getSimpleName() + ".yml"; String filename = clazz.getSimpleName() + ".yml";
YamlConfiguration config = BukkitUtils.getPluginConfig(plugin, filename); File pageFile = new File(pageFolder, filename);
pageConfig = new PageConfig(plugin, config); try (InputStream resource = plugin.getResource("/pages/" + filename)) {
if (resource == null) {
throw new IllegalArgumentException("为插件 " + pluginName + " 加载页面配置文件 " + filename + " 时出错!");
}
Files.copy(resource, pageFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
YamlConfiguration config = YamlConfiguration.loadConfiguration(pageFile);
pageConfig = new PageConfig(plugin, config);
} catch (IOException e) {
throw new IllegalArgumentException("为插件 " + pluginName + " 加载页面配置文件 " + filename + " 时出错!");
}
PAGE_CONFIG.put(clazz.getName(), pageConfig); PAGE_CONFIG.put(clazz.getName(), pageConfig);
return pageConfig; return pageConfig;
} }