From b8f477e173b9bdeff2d12a2f5badea72baf132e2 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sun, 24 Aug 2025 15:18:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0gradle=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=B9=B6=E4=BC=98=E5=8C=96=E6=8C=87=E4=BB=A4=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=9A=84=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- currency-plugin/build.gradle | 10 +++++----- .../currency/CurrencyAdminSetCommand.java | 1 - .../command/currency/CurrencyGiveCommand.java | 7 ++----- .../command/currency/CurrencyPayCommand.java | 15 ++++----------- .../command/currency/CurrencySetCommand.java | 1 - .../command/currency/CurrencyTakeCommand.java | 6 ++---- .../command/vault/VaultAdminSetCommand.java | 6 ------ .../currency/command/vault/VaultGiveCommand.java | 6 ++---- .../currency/command/vault/VaultPayCommand.java | 16 ++++------------ .../currency/command/vault/VaultSetCommand.java | 5 ++--- .../currency/command/vault/VaultTakeCommand.java | 6 ++---- .../hamster3/currency/core/SQLDataManager.java | 2 +- .../cn/hamster3/currency/data/PlayerData.java | 2 +- .../currency/event/CurrencyChangeEvent.java | 10 +++++----- currency-plugin/src/main/resources/config.yml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- transform-CMI/build.gradle | 2 +- .../java/cn/hamster3/transform/cmi/Main.java | 6 +++--- transform-essentials/build.gradle | 2 +- .../cn/hamster3/transform/essentials/Main.java | 6 +++--- 20 files changed, 40 insertions(+), 73 deletions(-) diff --git a/currency-plugin/build.gradle b/currency-plugin/build.gradle index 906b3be..095c439 100644 --- a/currency-plugin/build.gradle +++ b/currency-plugin/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'cn.hamster3' -version '2.2.8' +version '2.2.9' repositories { maven { @@ -20,7 +20,7 @@ dependencies { compileOnly "cn.hamster3:HamsterService-Bukkit:2.8.3-SNAPSHOT" compileOnly "cn.hamster3:HamsterAPI:2.4.8-SNAPSHOT" compileOnly 'net.milkbowl.vault:VaultAPI:1.7' - compileOnly "me.clip:placeholderapi:2.10.9" + compileOnly "me.clip:placeholderapi:2.11.6" compileOnly rootProject.fileTree(dir: './libs', includes: ['*.jar']) } @@ -39,7 +39,7 @@ java { jar { archivesBaseName = "HamsterCurrency" - destinationDir(rootProject.buildDir) + destinationDirectory = rootProject.layout.buildDirectory } tasks.withType(JavaCompile).configureEach { @@ -62,8 +62,8 @@ publishing { url = 'https://maven.airgame.net/public/' credentials { - username maven_username - password maven_password + username = findProperty("MAVEN_AIRGAME_USERNAME")?.toString() ?: "" + password = findProperty("MAVEN_AIRGAME_PASSWORD")?.toString() ?: "" } } } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyAdminSetCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyAdminSetCommand.java index 4df19c5..213578c 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyAdminSetCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyAdminSetCommand.java @@ -81,7 +81,6 @@ public abstract class CurrencyAdminSetCommand extends CommandExecutor { .replace("%type%", type.getId()) .replace("%amount%", String.format("%.2f", data.getPlayerCurrency(type.getId()))) ); - dataManager.savePlayerData(data); return true; } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyGiveCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyGiveCommand.java index d1b4fe6..b092d63 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyGiveCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyGiveCommand.java @@ -1,7 +1,7 @@ package cn.hamster3.currency.command.currency; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.IDataManager; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; @@ -17,9 +17,6 @@ public class CurrencyGiveCommand extends CurrencyAdminSetCommand { @Override protected void doSet(PlayerData data, CurrencyType type, double amount) { - double balance = data.getPlayerCurrency(type.getId()) + amount; - data.setPlayerCurrency(type.getId(), balance); - dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "add", amount, balance)); + CurrencyAPI.addPlayerCurrency(data.getUuid(), type.getId(), amount); } - } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyPayCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyPayCommand.java index bd83a21..6fd0bc7 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyPayCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyPayCommand.java @@ -2,10 +2,10 @@ package cn.hamster3.currency.command.currency; import cn.hamster3.api.HamsterAPI; import cn.hamster3.api.command.CommandExecutor; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.FileManager; import cn.hamster3.currency.core.IDataManager; import cn.hamster3.currency.core.Message; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; import cn.hamster3.service.bukkit.api.ServiceMessageAPI; @@ -77,22 +77,15 @@ public class CurrencyPayCommand extends CommandExecutor { return true; } Player player = (Player) sender; - PlayerData fromData = dataManager.getPlayerData(player.getUniqueId()); - if (fromData.getPlayerCurrency(type.getId()) < amount) { + if (!CurrencyAPI.hasPlayerCurrency(player.getUniqueId(), type.getId(), amount)) { sender.sendMessage( Message.currencyNotEnough.toString() .replace("%type%", type.getId()) ); return true; } - double fromBalance = fromData.getPlayerCurrency(type.getId()) - amount; - fromData.setPlayerCurrency(type.getId(), fromBalance); - double toBalance = toData.getPlayerCurrency(type.getId()) + amount; - toData.setPlayerCurrency(type.getId(), toBalance); - dataManager.savePlayerData(fromData); - dataManager.savePlayerData(toData); - dataManager.insertLog(new CurrencyLog(fromData.getUuid(), fromData.getPlayerName(), type.getId(), "payOut", amount, fromBalance)); - dataManager.insertLog(new CurrencyLog(toData.getUuid(), toData.getPlayerName(), type.getId(), "payIn", amount, toBalance)); + CurrencyAPI.takePlayerCurrency(player.getUniqueId(), type.getId(), amount); + CurrencyAPI.addPlayerCurrency(toData.getUuid(), type.getId(), amount); sender.sendMessage( Message.paySuccess.toString() .replace("%player%", toData.getPlayerName()) diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencySetCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencySetCommand.java index 16b928e..506ce19 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencySetCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencySetCommand.java @@ -19,5 +19,4 @@ public class CurrencySetCommand extends CurrencyAdminSetCommand { protected void doSet(PlayerData data, CurrencyType type, double amount) { CurrencyAPI.setPlayerCurrency(data.getUuid(), type.getId(), amount); } - } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyTakeCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyTakeCommand.java index bc17930..51f4f34 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyTakeCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/currency/CurrencyTakeCommand.java @@ -1,7 +1,7 @@ package cn.hamster3.currency.command.currency; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.IDataManager; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; @@ -17,8 +17,6 @@ public class CurrencyTakeCommand extends CurrencyAdminSetCommand { @Override protected void doSet(PlayerData data, CurrencyType type, double amount) { - double balance = data.getPlayerCurrency(type.getId()) - amount; - data.setPlayerCurrency(type.getId(), balance); - dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "take", amount, balance)); + CurrencyAPI.takePlayerCurrency(data.getUuid(), type.getId(), amount); } } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultAdminSetCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultAdminSetCommand.java index 0ed791c..4fa0aed 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultAdminSetCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultAdminSetCommand.java @@ -67,12 +67,6 @@ public abstract class VaultAdminSetCommand extends CommandExecutor { } doSet(data, type, amount); dataManager.savePlayerData(data); - sender.sendMessage( - Message.seeCurrency.toString() - .replace("%player%", data.getPlayerName()) - .replace("%type%", type.getId()) - .replace("%amount%", String.format("%.2f", data.getPlayerCurrency(type.getId()))) - ); return true; } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultGiveCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultGiveCommand.java index 51519bb..9f3aaba 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultGiveCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultGiveCommand.java @@ -1,7 +1,7 @@ package cn.hamster3.currency.command.vault; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.IDataManager; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; @@ -17,8 +17,6 @@ public class VaultGiveCommand extends VaultAdminSetCommand { @Override public void doSet(PlayerData data, CurrencyType type, double amount) { - double balance = data.getPlayerCurrency(type.getId()) + amount; - data.setPlayerCurrency(type.getId(), balance); - dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "add", amount, balance)); + CurrencyAPI.addPlayerCurrency(data.getUuid(), type.getId(), amount); } } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultPayCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultPayCommand.java index b7056ac..7810f18 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultPayCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultPayCommand.java @@ -2,10 +2,10 @@ package cn.hamster3.currency.command.vault; import cn.hamster3.api.HamsterAPI; import cn.hamster3.api.command.CommandManager; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.FileManager; import cn.hamster3.currency.core.IDataManager; import cn.hamster3.currency.core.Message; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; import cn.hamster3.service.bukkit.api.ServiceMessageAPI; @@ -79,24 +79,16 @@ public class VaultPayCommand extends CommandManager { sender.sendMessage(Message.amountNumberError.toString()); return true; } - Player player = (Player) sender; - PlayerData fromData = dataManager.getPlayerData(player.getUniqueId()); - if (fromData.getPlayerCurrency(type.getId()) < amount) { + if (!CurrencyAPI.hasPlayerCurrency(player.getUniqueId(), type.getId(), amount)) { sender.sendMessage( Message.currencyNotEnough.toString() .replace("%type%", type.getId()) ); return true; } - double fromBalance = fromData.getPlayerCurrency(type.getId()) - amount; - fromData.setPlayerCurrency(type.getId(), fromBalance); - double toBalance = toData.getPlayerCurrency(type.getId()) + amount; - toData.setPlayerCurrency(type.getId(), toBalance); - dataManager.savePlayerData(fromData); - dataManager.savePlayerData(toData); - dataManager.insertLog(new CurrencyLog(fromData.getUuid(), fromData.getPlayerName(), type.getId(), "payOut", amount, fromBalance)); - dataManager.insertLog(new CurrencyLog(toData.getUuid(), toData.getPlayerName(), type.getId(), "payIn", amount, toBalance)); + CurrencyAPI.takePlayerCurrency(player.getUniqueId(), type.getId(), amount); + CurrencyAPI.addPlayerCurrency(toData.getUuid(), type.getId(), amount); sender.sendMessage( Message.paySuccess.toString() .replace("%player%", toData.getPlayerName()) diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultSetCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultSetCommand.java index bc6874f..8a7bbf7 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultSetCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultSetCommand.java @@ -1,7 +1,7 @@ package cn.hamster3.currency.command.vault; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.IDataManager; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; @@ -17,7 +17,6 @@ public class VaultSetCommand extends VaultAdminSetCommand { @Override public void doSet(PlayerData data, CurrencyType type, double amount) { - data.setPlayerCurrency(type.getId(), amount); - dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "set", amount, amount)); + CurrencyAPI.setPlayerCurrency(data.getUuid(), type.getId(), amount); } } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultTakeCommand.java b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultTakeCommand.java index e2b311a..df6b87c 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultTakeCommand.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/command/vault/VaultTakeCommand.java @@ -1,7 +1,7 @@ package cn.hamster3.currency.command.vault; +import cn.hamster3.currency.api.CurrencyAPI; import cn.hamster3.currency.core.IDataManager; -import cn.hamster3.currency.data.CurrencyLog; import cn.hamster3.currency.data.CurrencyType; import cn.hamster3.currency.data.PlayerData; @@ -17,8 +17,6 @@ public class VaultTakeCommand extends VaultAdminSetCommand { @Override public void doSet(PlayerData data, CurrencyType type, double amount) { - double balance = data.getPlayerCurrency(type.getId()) - amount; - data.setPlayerCurrency(type.getId(), balance); - dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "take", amount, balance)); + CurrencyAPI.takePlayerCurrency(data.getUuid(), type.getId(), amount); } } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/core/SQLDataManager.java b/currency-plugin/src/main/java/cn/hamster3/currency/core/SQLDataManager.java index d419f33..5f6ed94 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/core/SQLDataManager.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/core/SQLDataManager.java @@ -158,7 +158,7 @@ public class SQLDataManager implements IDataManager { if (data == null) { data = new PlayerData(uuid, name); playerData.put(data.getUuid(), data); - }else { + } else { data.setPlayerName(name); } data.setPlayerCurrency(currencyType, money); diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/data/PlayerData.java b/currency-plugin/src/main/java/cn/hamster3/currency/data/PlayerData.java index 186810e..fcbe40b 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/data/PlayerData.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/data/PlayerData.java @@ -14,8 +14,8 @@ import java.util.UUID; public class PlayerData { private final UUID uuid; - private String playerName; private final HashMap playerCurrencies; + private String playerName; public PlayerData(UUID uuid) { this.uuid = uuid; diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/event/CurrencyChangeEvent.java b/currency-plugin/src/main/java/cn/hamster3/currency/event/CurrencyChangeEvent.java index bbc3063..0c897ea 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/event/CurrencyChangeEvent.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/event/CurrencyChangeEvent.java @@ -54,10 +54,10 @@ public class CurrencyChangeEvent extends Event { @Override public String toString() { return "CurrencyChangeEvent{" + - "playerUUID=" + playerUUID + - ", currencyID='" + currencyID + '\'' + - ", oldAmount=" + oldAmount + - ", newAmount=" + newAmount + - '}'; + "playerUUID=" + playerUUID + + ", currencyID='" + currencyID + '\'' + + ", oldAmount=" + oldAmount + + ", newAmount=" + newAmount + + '}'; } } diff --git a/currency-plugin/src/main/resources/config.yml b/currency-plugin/src/main/resources/config.yml index acd17bb..0eae401 100644 --- a/currency-plugin/src/main/resources/config.yml +++ b/currency-plugin/src/main/resources/config.yml @@ -6,7 +6,7 @@ useBC: true # 若开启跨服模式,则需要配置datasource datasource: driver: "com.mysql.jdbc.Driver" - url: "jdbc:mysql://localhost:3306/mc1.12.2-germ?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" + url: "jdbc:mysql://localhost:3306/Test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true" user: root password: Root123... diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e750102..5c82cb0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/transform-CMI/build.gradle b/transform-CMI/build.gradle index bc8d847..8659c13 100644 --- a/transform-CMI/build.gradle +++ b/transform-CMI/build.gradle @@ -40,5 +40,5 @@ jar { rootProject.file("LICENSE") ]) duplicatesStrategy(DuplicatesStrategy.EXCLUDE) - destinationDir(rootProject.buildDir) + destinationDirectory = rootProject.layout.buildDirectory } diff --git a/transform-CMI/src/main/java/cn/hamster3/transform/cmi/Main.java b/transform-CMI/src/main/java/cn/hamster3/transform/cmi/Main.java index a91a0b5..93e356d 100644 --- a/transform-CMI/src/main/java/cn/hamster3/transform/cmi/Main.java +++ b/transform-CMI/src/main/java/cn/hamster3/transform/cmi/Main.java @@ -79,9 +79,9 @@ public class Main { statement.execute(String.format("USE %s;", database)); System.out.println("检查数据表..."); statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_player_data(" + - "uuid VARCHAR(36) PRIMARY KEY," + - "data TEXT" + - ");"); + "uuid VARCHAR(36) PRIMARY KEY," + + "data TEXT" + + ");"); System.out.println("开始更新数据库..."); for (PlayerData data : playerData) { String sql = String.format( diff --git a/transform-essentials/build.gradle b/transform-essentials/build.gradle index a3161c4..5e8c046 100644 --- a/transform-essentials/build.gradle +++ b/transform-essentials/build.gradle @@ -43,5 +43,5 @@ jar { rootProject.file("LICENSE") ]) duplicatesStrategy(DuplicatesStrategy.EXCLUDE) - destinationDir(rootProject.buildDir) + destinationDirectory = rootProject.layout.buildDirectory } diff --git a/transform-essentials/src/main/java/cn/hamster3/transform/essentials/Main.java b/transform-essentials/src/main/java/cn/hamster3/transform/essentials/Main.java index d87aa6a..1feee8d 100644 --- a/transform-essentials/src/main/java/cn/hamster3/transform/essentials/Main.java +++ b/transform-essentials/src/main/java/cn/hamster3/transform/essentials/Main.java @@ -60,9 +60,9 @@ public class Main { statement.execute(String.format("USE %s;", database)); System.out.println("检查数据表..."); statement.execute("CREATE TABLE IF NOT EXISTS hamster_currency_player_data(" + - "uuid VARCHAR(36) PRIMARY KEY," + - "data TEXT" + - ");"); + "uuid VARCHAR(36) PRIMARY KEY," + + "data TEXT" + + ");"); System.out.println("开始更新数据库..."); for (PlayerData data : playerData) { String sql = String.format(