From c6c6b3bc37ad2c4cc21e5d6ed0e12df203219c5a Mon Sep 17 00:00:00 2001 From: CarmJos Date: Fri, 4 Mar 2022 16:45:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E6=8F=92=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/carm/plugin/ultradepository/Main.java | 9 +- .../ultradepository/UltraDepository.java | 7 +- .../configuration/PluginConfig.java | 229 +++++++++--------- .../manager/ConfigManager.java | 100 ++++---- 4 files changed, 182 insertions(+), 163 deletions(-) diff --git a/src/main/java/cc/carm/plugin/ultradepository/Main.java b/src/main/java/cc/carm/plugin/ultradepository/Main.java index b840be4..d059a97 100644 --- a/src/main/java/cc/carm/plugin/ultradepository/Main.java +++ b/src/main/java/cc/carm/plugin/ultradepository/Main.java @@ -30,6 +30,8 @@ public class Main extends EasyPlugin { private DataStorage storage; + + private ConfigManager configManager; private UserManager userManager; private EconomyManager economyManager; private DepositoryManager depositoryManager; @@ -47,7 +49,8 @@ public class Main extends EasyPlugin { protected boolean initialize() { log("加载配置文件..."); - if (!ConfigManager.initialize()) { + this.configManager = new ConfigManager(this); + if (!configManager.initialize()) { log("初始化配置文件失败,放弃加载。"); return false; } @@ -160,6 +163,10 @@ public class Main extends EasyPlugin { return depositoryManager; } + protected ConfigManager getConfigManager() { + return configManager; + } + @Override public boolean isDebugging() { return PluginConfig.DEBUG.get(); diff --git a/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java b/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java index f7517fc..40d16e9 100644 --- a/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java +++ b/src/main/java/cc/carm/plugin/ultradepository/UltraDepository.java @@ -1,5 +1,6 @@ package cc.carm.plugin.ultradepository; +import cc.carm.plugin.ultradepository.manager.ConfigManager; import cc.carm.plugin.ultradepository.manager.DepositoryManager; import cc.carm.plugin.ultradepository.manager.EconomyManager; import cc.carm.plugin.ultradepository.manager.UserManager; @@ -26,5 +27,9 @@ public class UltraDepository { public static DepositoryManager getDepositoryManager() { return Main.getInstance().getDepositoryManager(); } - + + public static ConfigManager getConfigManager() { + return Main.getInstance().getConfigManager(); + } + } diff --git a/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginConfig.java b/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginConfig.java index 3cca850..de48aa4 100644 --- a/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginConfig.java +++ b/src/main/java/cc/carm/plugin/ultradepository/configuration/PluginConfig.java @@ -6,153 +6,156 @@ import cc.carm.lib.easyplugin.configuration.impl.ConfigSound; import cc.carm.lib.easyplugin.configuration.message.ConfigMessage; import cc.carm.lib.easyplugin.configuration.message.ConfigMessageList; import cc.carm.lib.easyplugin.configuration.values.ConfigValue; -import cc.carm.plugin.ultradepository.manager.ConfigManager; +import cc.carm.plugin.ultradepository.UltraDepository; import cc.carm.plugin.ultradepository.storage.StorageMethod; import org.bukkit.Material; import org.bukkit.Sound; public class PluginConfig { - public static final ConfigValue DEBUG = new ConfigValue<>( - "debug", Boolean.class, false - ); + public static final ConfigValue DEBUG = new ConfigValue<>( + "debug", Boolean.class, false + ); - public static final ConfigValue METRICS = new ConfigValue<>( - "metrics", Boolean.class, true - ); + public static final ConfigValue METRICS = new ConfigValue<>( + "metrics", Boolean.class, true + ); - public static final ConfigValue CHECK_UPDATE = new ConfigValue<>( - "check-update", Boolean.class, true - ); + public static final ConfigValue CHECK_UPDATE = new ConfigValue<>( + "check-update", Boolean.class, true + ); - public static final ConfigStringCast STORAGE_METHOD = new ConfigStringCast<>( - "storage.method", StorageMethod::read, StorageMethod.YAML - ); + public static final ConfigStringCast STORAGE_METHOD = new ConfigStringCast<>( + "storage.method", StorageMethod::read, StorageMethod.YAML + ); - /** - * 收集配置 - */ - public static class Collect { + /** + * 收集配置 + */ + public static class Collect { - public static final ConfigValue PICKUP = new ConfigValue<>( - "collect.pickup", Boolean.class, true - ); + public static final ConfigValue PICKUP = new ConfigValue<>( + "collect.pickup", Boolean.class, true + ); - public static final ConfigValue KILL = new ConfigValue<>( - "collect.kill", Boolean.class, true - ); + public static final ConfigValue KILL = new ConfigValue<>( + "collect.kill", Boolean.class, true + ); - public static final ConfigValue BREAK = new ConfigValue<>( - "collect.break", Boolean.class, true - ); + public static final ConfigValue BREAK = new ConfigValue<>( + "collect.break", Boolean.class, true + ); - } + } - public static class Sounds { + public static class Sounds { - public static final ConfigSound COLLECT = new ConfigSound("sounds.collect", Sound.ENTITY_VILLAGER_CELEBRATE); - public static final ConfigSound TAKEOUT = new ConfigSound("sounds.collect"); - public static final ConfigSound SELL_SUCCESS = new ConfigSound("sounds.sell-success"); - public static final ConfigSound SELL_FAIL = new ConfigSound("sounds.sell-fail"); - public static final ConfigSound GUI_CLICK = new ConfigSound("sounds.gui-click"); - } + public static final ConfigSound COLLECT = new ConfigSound("sounds.collect", Sound.ENTITY_VILLAGER_CELEBRATE); + public static final ConfigSound TAKEOUT = new ConfigSound("sounds.collect"); + public static final ConfigSound SELL_SUCCESS = new ConfigSound("sounds.sell-success"); + public static final ConfigSound SELL_FAIL = new ConfigSound("sounds.sell-fail"); + public static final ConfigSound GUI_CLICK = new ConfigSound("sounds.gui-click"); + } - /** - * 通用配置 - */ - public static class General { + /** + * 通用配置 + */ + public static class General { - /** - * 针对每一件物品的额外介绍 - * 将添加到背包界面内的物品上,避免重复配置 - */ - public static class AdditionalLore { + /** + * 针对每一件物品的额外介绍 + * 将添加到背包界面内的物品上,避免重复配置 + */ + public static class AdditionalLore { - public static final ConfigMessageList AVAILABLE_FOR_SALE = new ConfigMessageList( - ConfigManager::getPluginConfig, "general.additional-lore.available-for-sale", - new String[]{}, - new String[]{ - "%(item_name)", "%(amount)", "%(price)", "%(sold)", "%(remain)", "%(limit)" - }); + public static final ConfigMessageList AVAILABLE_FOR_SALE = new ConfigMessageList( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.additional-lore.available-for-sale", + new String[]{}, + new String[]{ + "%(item_name)", "%(amount)", "%(price)", "%(sold)", "%(remain)", "%(limit)" + }); - public static final ConfigMessageList NOT_FOR_SALE = new ConfigMessageList( - ConfigManager::getPluginConfig, "general.additional-lore.not-for-sale", - new String[]{}, new String[]{ - "%(item_name)", "%(amount)" - }); + public static final ConfigMessageList NOT_FOR_SALE = new ConfigMessageList( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.additional-lore.not-for-sale", + new String[]{}, new String[]{ + "%(item_name)", "%(amount)" + }); - } + } - /** - * 提示玩家点击行为的介绍 - * 将添加到背包界面内的物品上,避免重复配置 - */ - public static class ClickLore { - public static final ConfigMessageList AVAILABLE_FOR_SALE = new ConfigMessageList( - ConfigManager::getPluginConfig, - "general.click-lore.available-for-sale", - new String[]{}, new String[]{ - "%(item_name)", "%(amount)", "%(price)" - }); + /** + * 提示玩家点击行为的介绍 + * 将添加到背包界面内的物品上,避免重复配置 + */ + public static class ClickLore { + public static final ConfigMessageList AVAILABLE_FOR_SALE = new ConfigMessageList( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.click-lore.available-for-sale", + new String[]{}, new String[]{ + "%(item_name)", "%(amount)", "%(price)" + }); - public static final ConfigMessageList NOT_FOR_SALE = new ConfigMessageList( - ConfigManager::getPluginConfig, "general.click-lore.not-for-sale", - new String[]{}, - new String[]{ - "%(item_name)", "%(amount)" - }); - } + public static final ConfigMessageList NOT_FOR_SALE = new ConfigMessageList( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.click-lore.not-for-sale", + new String[]{}, + new String[]{ + "%(item_name)", "%(amount)" + }); + } - public static final ConfigMessageList CLICK_LORE = new ConfigMessageList( - ConfigManager::getPluginConfig, - "general.click-lore", - new String[]{}, new String[]{ - "%(item_name)", "%(amount)", "%(price)" - }); + public static final ConfigMessageList CLICK_LORE = new ConfigMessageList( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.click-lore", + new String[]{}, new String[]{ + "%(item_name)", "%(amount)", "%(price)" + }); - /** - * 售出界面的配置 - */ - public static class SellGUI { + /** + * 售出界面的配置 + */ + public static class SellGUI { - public static final ConfigMessage TITLE = new ConfigMessage( - ConfigManager::getPluginConfig, - "general.sell-gui.title", - "&a&l出售", new String[]{ - "%(item_name)", "%(backpack_name)" - } - ); + public static final ConfigMessage TITLE = new ConfigMessage( + () -> UltraDepository.getConfigManager().getPluginConfig(), + "general.sell-gui.title", + "&a&l出售", new String[]{ + "%(item_name)", "%(backpack_name)" + } + ); - public static class Items { + public static class Items { - public static final ConfigItem ADD = new ConfigItem( - "general.sell-gui.items.add", - new String[]{"%(item_name)", "%(amount)"}, - ConfigItem.create(Material.GREEN_STAINED_GLASS_PANE, "&a添加物品 %(amount) 个") - ); + public static final ConfigItem ADD = new ConfigItem( + "general.sell-gui.items.add", + new String[]{"%(item_name)", "%(amount)"}, + ConfigItem.create(Material.GREEN_STAINED_GLASS_PANE, "&a添加物品 %(amount) 个") + ); - public static final ConfigItem REMOVE = new ConfigItem( - "general.sell-gui.items.remove", - new String[]{"%(item_name)", "%(amount)"}, - ConfigItem.create(Material.RED_STAINED_GLASS_PANE, "&c減少物品 %(amount) 个") - ); + public static final ConfigItem REMOVE = new ConfigItem( + "general.sell-gui.items.remove", + new String[]{"%(item_name)", "%(amount)"}, + ConfigItem.create(Material.RED_STAINED_GLASS_PANE, "&c減少物品 %(amount) 个") + ); - public static final ConfigItem CONFIRM = new ConfigItem( - "general.sell-gui.items.confirm", - new String[]{"%(item_name)", "%(amount)", "%(money)"}, - ConfigItem.create(Material.EMERALD, "&2确认售出") - ); + public static final ConfigItem CONFIRM = new ConfigItem( + "general.sell-gui.items.confirm", + new String[]{"%(item_name)", "%(amount)", "%(money)"}, + ConfigItem.create(Material.EMERALD, "&2确认售出") + ); - public static final ConfigItem CANCEL = new ConfigItem( - "general.sell-gui.items.cancel", - ConfigItem.create(Material.REDSTONE, "&4取消售出") - ); + public static final ConfigItem CANCEL = new ConfigItem( + "general.sell-gui.items.cancel", + ConfigItem.create(Material.REDSTONE, "&4取消售出") + ); - } + } - } + } - } + } } diff --git a/src/main/java/cc/carm/plugin/ultradepository/manager/ConfigManager.java b/src/main/java/cc/carm/plugin/ultradepository/manager/ConfigManager.java index 39232d9..8a9915c 100644 --- a/src/main/java/cc/carm/plugin/ultradepository/manager/ConfigManager.java +++ b/src/main/java/cc/carm/plugin/ultradepository/manager/ConfigManager.java @@ -7,70 +7,74 @@ import cc.carm.lib.easyplugin.configuration.language.MessagesInitializer; import cc.carm.plugin.ultradepository.UltraDepository; import cc.carm.plugin.ultradepository.configuration.PluginMessages; import cc.carm.plugin.ultradepository.util.JarUtil; +import org.bukkit.plugin.java.JavaPlugin; import java.io.File; public class ConfigManager { - private static FileConfig pluginConfiguration; - private static MessagesConfig messageConfiguration; + private final JavaPlugin plugin; + private FileConfig pluginConfiguration; + private MessagesConfig messageConfiguration; - public static boolean initialize() { - UltraDepository udPlugin = UltraDepository.getInstance(); + public ConfigManager(JavaPlugin plugin) { + this.plugin = plugin; + } + public boolean initialize() { - try { - File configFile = new File(udPlugin.getDataFolder(), "config.yml"); - if (!configFile.exists()) { - //没找到配置文件,可能是第一次加载此插件 - //把一些英文版的东西复制出来,方便英文用户使用。 - UltraDepository.getInstance().log(" 未找到配置文件,生成默认配置..."); - JarUtil.copyFolderFromJar( - "i18n", udPlugin.getDataFolder(), - JarUtil.CopyOption.COPY_IF_NOT_EXIST - ); + try { + File configFile = new File(plugin.getDataFolder(), "config.yml"); + if (!configFile.exists()) { + //没找到配置文件,可能是第一次加载此插件 + //把一些英文版的东西复制出来,方便英文用户使用。 + UltraDepository.getInstance().log(" 未找到配置文件,生成默认配置..."); + JarUtil.copyFolderFromJar( + "i18n", plugin.getDataFolder(), + JarUtil.CopyOption.COPY_IF_NOT_EXIST + ); - } + } - pluginConfiguration = new FileConfig(udPlugin, "config.yml"); - messageConfiguration = new MessagesConfig(udPlugin, "messages.yml"); + pluginConfiguration = new FileConfig(plugin, "config.yml"); + messageConfiguration = new MessagesConfig(plugin, "messages.yml"); - FileConfig.pluginConfiguration = () -> pluginConfiguration; - FileConfig.messageConfiguration = () -> messageConfiguration; + FileConfig.pluginConfiguration = () -> pluginConfiguration; + FileConfig.messageConfiguration = () -> messageConfiguration; - MessagesInitializer.initialize(messageConfiguration, PluginMessages.class); + MessagesInitializer.initialize(messageConfiguration, PluginMessages.class); - return true; - } catch (Exception ex) { - ex.printStackTrace(); - return false; - } - } + return true; + } catch (Exception ex) { + ex.printStackTrace(); + return false; + } + } - public static FileConfig getPluginConfig() { - return pluginConfiguration; - } + public FileConfig getPluginConfig() { + return pluginConfiguration; + } - public static MessagesConfig getMessageConfig() { - return messageConfiguration; - } + public MessagesConfig getMessageConfig() { + return messageConfiguration; + } - public static void reload() { - try { - getPluginConfig().reload(); - getMessageConfig().reload(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } + public void reload() { + try { + getPluginConfig().reload(); + getMessageConfig().reload(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } - public static void saveConfig() { - try { - getPluginConfig().save(); - getMessageConfig().save(); - } catch (Exception ex) { - ex.printStackTrace(); - } - } + public void saveConfig() { + try { + getPluginConfig().save(); + getMessageConfig().save(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } }