Compare commits

...

2 Commits

Author SHA1 Message Date
3426fa2be8 Merge remote-tracking branch 'origin/master' 2024-08-06 20:32:56 +08:00
420cb1aca0 feat: 添加配置选项以允许不挂接VaultAPI 2024-08-06 20:32:50 +08:00
5 changed files with 28 additions and 19 deletions

View File

@@ -6,7 +6,7 @@ plugins {
} }
group = "cn.hamster3.mc.plugin" group = "cn.hamster3.mc.plugin"
version = "3.1.1" version = "3.1.2"
repositories { repositories {
maven("https://maven.airgame.net/maven-public/") maven("https://maven.airgame.net/maven-public/")

View File

@@ -74,17 +74,21 @@ public class CurrencyPlugin extends JavaPlugin {
Bukkit.getPluginManager().registerEvents(CurrencyListener.INSTANCE, this); Bukkit.getPluginManager().registerEvents(CurrencyListener.INSTANCE, this);
logger.info("已注册 CurrencyListener"); logger.info("已注册 CurrencyListener");
ParentCurrencyCommand.INSTANCE.register(); ParentCurrencyCommand.INSTANCE.register();
if (Bukkit.getPluginManager().isPluginEnabled("Vault")) { if (CurrencyConfigManager.isEnableVault()) {
logger.info("检测到 Vault 已安装"); if (Bukkit.getPluginManager().isPluginEnabled("Vault")) {
Bukkit.getServicesManager().register(Economy.class, VaultEconomyHook.INSTANCE, this, ServicePriority.Normal); logger.info("检测到 Vault 已安装");
CurrencyType type = CurrencyDataManager.getVaultCurrencyType(); Bukkit.getServicesManager().register(Economy.class, VaultEconomyHook.INSTANCE, this, ServicePriority.Normal);
if (type != null) { CurrencyType type = CurrencyDataManager.getVaultCurrencyType();
logger.info(String.format("已挂载货币类型 %s(%s) 至 Vault 系统", type.getId(), type.getName())); if (type != null) {
logger.info(String.format("已挂载货币类型 %s(%s) 至 Vault 系统", type.getId(), type.getName()));
} else {
logger.warning("已挂接 Vault 系统,但未找到 Vault 货币类型,请检查配置文件或创建货币类型: " + CurrencyConfigManager.getVaultCurrencyID());
}
} else { } else {
logger.warning("已挂接 Vault 系统,但未找到 Vault 货币类型,请检查配置文件或创建货币类型: " + CurrencyConfigManager.getVaultCurrencyID()); logger.info("未找到 Vault 插件! 取消注册 Vault 经济系统");
} }
} else { } else {
logger.info("未找到 Vault 插件! 取消注册 Vault 经济系统"); logger.info("不进行 Vault 经济系统注册");
} }
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
logger.info("仓鼠经济启动完成,总计耗时 " + time + " ms"); logger.info("仓鼠经济启动完成,总计耗时 " + time + " ms");

View File

@@ -5,6 +5,8 @@ import lombok.Getter;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
public class CurrencyConfigManager { public class CurrencyConfigManager {
@Getter
private static boolean enableVault;
@Getter @Getter
private static String vaultCurrencyID; private static String vaultCurrencyID;
@Getter @Getter
@@ -19,6 +21,7 @@ public class CurrencyConfigManager {
FileConfiguration pluginConfig = plugin.getConfig(); FileConfiguration pluginConfig = plugin.getConfig();
enableVault = pluginConfig.getBoolean("vault-settings.enable", false);
vaultCurrencyID = pluginConfig.getString("vault-settings.currency-id", "money"); vaultCurrencyID = pluginConfig.getString("vault-settings.currency-id", "money");
vaultNamePlural = pluginConfig.getString("vault-settings.currency-name-plural", "金币"); vaultNamePlural = pluginConfig.getString("vault-settings.currency-name-plural", "金币");
vaultNameSingular = pluginConfig.getString("vault-settings.currency-name-singular", "金币"); vaultNameSingular = pluginConfig.getString("vault-settings.currency-name-singular", "金币");

View File

@@ -25,16 +25,16 @@ public final class CurrencyDataManager {
try (Connection connection = CoreAPI.getInstance().getConnection()) { try (Connection connection = CoreAPI.getInstance().getConnection()) {
try (Statement statement = connection.createStatement()) { try (Statement statement = connection.createStatement()) {
statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_type(" + statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_type(" +
"`id` VARCHAR(36) PRIMARY KEY," + "`id` VARCHAR(36) PRIMARY KEY," +
"`name` VARCHAR(36) NOT NULL," + "`name` VARCHAR(36) NOT NULL," +
"`transferable` BOOLEAN NOT NULL" + "`transferable` BOOLEAN NOT NULL" +
") CHARSET utf8mb4;"); ") CHARSET utf8mb4;");
statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_data(" + statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_data(" +
"`uuid` CHAR(36) NOT NULL," + "`uuid` CHAR(36) NOT NULL," +
"`currency` VARCHAR(36) NOT NULL," + "`currency` VARCHAR(36) NOT NULL," +
"`amount` DOUBLE NOT NULL," + "`amount` DOUBLE NOT NULL," +
"PRIMARY KEY `player_currency` (`uuid`, `currency`)" + "PRIMARY KEY `player_currency` (`uuid`, `currency`)" +
") CHARSET utf8mb4;"); ") CHARSET utf8mb4;");
try (ResultSet set = statement.executeQuery("SELECT * FROM hamster_currency_type;")) { try (ResultSet set = statement.executeQuery("SELECT * FROM hamster_currency_type;")) {
while (set.next()) { while (set.next()) {
CurrencyType type = new CurrencyType( CurrencyType type = new CurrencyType(

View File

@@ -1,8 +1,10 @@
# VaultAPI 相关配置 # VaultAPI 相关配置
vault-settings: vault-settings:
# 是否启用 vault 挂接
enable: true
# 与 VaultAPI 挂接的货币 ID # 与 VaultAPI 挂接的货币 ID
currency-id: money currency-id: money
# Vault 显示货币名称(单数) # Vault 显示货币名称(单数)
currency-name-singular: 金币 currency-name-singular: 金币
# Vault 显示货币名称(复数) # Vault 显示货币名称(复数)
currency-name-plural: 金币 currency-name-plural: 金币