1
mirror of https://github.com/CarmJos/UltraDepository.git synced 2024-09-19 19:55:45 +00:00

更换插件的加载入口

This commit is contained in:
Carm Jos 2022-03-04 16:45:08 +08:00
parent 717e313f25
commit c6c6b3bc37
4 changed files with 182 additions and 163 deletions

View File

@ -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();

View File

@ -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();
}
}

View File

@ -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<Boolean> DEBUG = new ConfigValue<>(
"debug", Boolean.class, false
);
public static final ConfigValue<Boolean> DEBUG = new ConfigValue<>(
"debug", Boolean.class, false
);
public static final ConfigValue<Boolean> METRICS = new ConfigValue<>(
"metrics", Boolean.class, true
);
public static final ConfigValue<Boolean> METRICS = new ConfigValue<>(
"metrics", Boolean.class, true
);
public static final ConfigValue<Boolean> CHECK_UPDATE = new ConfigValue<>(
"check-update", Boolean.class, true
);
public static final ConfigValue<Boolean> CHECK_UPDATE = new ConfigValue<>(
"check-update", Boolean.class, true
);
public static final ConfigStringCast<StorageMethod> STORAGE_METHOD = new ConfigStringCast<>(
"storage.method", StorageMethod::read, StorageMethod.YAML
);
public static final ConfigStringCast<StorageMethod> STORAGE_METHOD = new ConfigStringCast<>(
"storage.method", StorageMethod::read, StorageMethod.YAML
);
/**
* 收集配置
*/
public static class Collect {
/**
* 收集配置
*/
public static class Collect {
public static final ConfigValue<Boolean> PICKUP = new ConfigValue<>(
"collect.pickup", Boolean.class, true
);
public static final ConfigValue<Boolean> PICKUP = new ConfigValue<>(
"collect.pickup", Boolean.class, true
);
public static final ConfigValue<Boolean> KILL = new ConfigValue<>(
"collect.kill", Boolean.class, true
);
public static final ConfigValue<Boolean> KILL = new ConfigValue<>(
"collect.kill", Boolean.class, true
);
public static final ConfigValue<Boolean> BREAK = new ConfigValue<>(
"collect.break", Boolean.class, true
);
public static final ConfigValue<Boolean> 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取消售出")
);
}
}
}
}
}
}
}

View File

@ -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();
}
}
}