diff --git a/currency-plugin/build.gradle b/currency-plugin/build.gradle index 353969c..fcc4692 100644 --- a/currency-plugin/build.gradle +++ b/currency-plugin/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'cn.hamster3' -version '2.1.0' +version '2.1.1' repositories { maven { diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/api/CurrencyAPI.java b/currency-plugin/src/main/java/cn/hamster3/currency/api/CurrencyAPI.java index 71193b3..bc6c3b1 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/api/CurrencyAPI.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/api/CurrencyAPI.java @@ -43,7 +43,7 @@ public abstract class CurrencyAPI { } data.setPlayerCurrency(currencyID, amount); dataManager.savePlayerData(data); - dataManager.insertLog(new CurrencyLog(uuid, currencyID, "set", amount, amount)); + dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "set", amount, amount)); } public static void addPlayerCurrency(UUID uuid, String currencyID, double amount) { @@ -58,7 +58,7 @@ public abstract class CurrencyAPI { double balance = data.getPlayerCurrency(currencyID) + amount; data.setPlayerCurrency(currencyID, balance); dataManager.savePlayerData(data); - dataManager.insertLog(new CurrencyLog(uuid, currencyID, "add", amount, balance)); + dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "add", amount, balance)); } public static void takePlayerCurrency(UUID uuid, String currencyID, double amount) { @@ -73,7 +73,7 @@ public abstract class CurrencyAPI { double balance = data.getPlayerCurrency(currencyID) - amount; data.setPlayerCurrency(currencyID, balance); dataManager.savePlayerData(data); - dataManager.insertLog(new CurrencyLog(uuid, currencyID, "take", amount, balance)); + dataManager.insertLog(new CurrencyLog(uuid, data.getPlayerName(), currencyID, "take", amount, balance)); } public static boolean hasPlayerCurrency(UUID uuid, String currencyID, double amount) { 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 67a198d..d1b4fe6 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 @@ -19,7 +19,7 @@ public class CurrencyGiveCommand extends CurrencyAdminSetCommand { 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(), type.getId(), "add", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "add", amount, balance)); } } 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 c321ba6..bd83a21 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 @@ -91,8 +91,8 @@ public class CurrencyPayCommand extends CommandExecutor { toData.setPlayerCurrency(type.getId(), toBalance); dataManager.savePlayerData(fromData); dataManager.savePlayerData(toData); - dataManager.insertLog(new CurrencyLog(fromData.getUuid(), type.getId(), "payOut", amount, fromBalance)); - dataManager.insertLog(new CurrencyLog(toData.getUuid(), type.getId(), "payIn", amount, toBalance)); + 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)); 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 c4bfe5d..484877a 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 @@ -18,7 +18,7 @@ public class CurrencySetCommand extends CurrencyAdminSetCommand { @Override protected void doSet(PlayerData data, CurrencyType type, double amount) { data.setPlayerCurrency(type.getId(), amount); - dataManager.insertLog(new CurrencyLog(data.getUuid(), type.getId(), "set", amount, amount)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "set", amount, 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 2622c56..bc17930 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 @@ -19,6 +19,6 @@ public class CurrencyTakeCommand extends CurrencyAdminSetCommand { 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(), type.getId(), "take", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "take", amount, balance)); } } 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 9f5831e..51519bb 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 @@ -19,6 +19,6 @@ public class VaultGiveCommand extends VaultAdminSetCommand { 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(), type.getId(), "add", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "add", amount, balance)); } } 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 9231f3c..b7056ac 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 @@ -95,8 +95,8 @@ public class VaultPayCommand extends CommandManager { toData.setPlayerCurrency(type.getId(), toBalance); dataManager.savePlayerData(fromData); dataManager.savePlayerData(toData); - dataManager.insertLog(new CurrencyLog(fromData.getUuid(), type.getId(), "payOut", amount, fromBalance)); - dataManager.insertLog(new CurrencyLog(toData.getUuid(), type.getId(), "payIn", amount, toBalance)); + 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)); 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 0f6bdb1..bc6874f 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 @@ -18,6 +18,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(), type.getId(), "set", amount, amount)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "set", amount, 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 2abaecb..e2b311a 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 @@ -19,6 +19,6 @@ public class VaultTakeCommand extends VaultAdminSetCommand { 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(), type.getId(), "take", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type.getId(), "take", amount, balance)); } } 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 e2d1cab..deccba7 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 @@ -57,12 +57,14 @@ public class SQLDataManager implements IDataManager { ") CHARACTER SET = utf8mb4;"); statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_logs(" + "uuid VARCHAR(36) NOT NULL," + + "player_name VARCHAR(36) NOT NULL," + "type VARCHAR(36) NOT NULL," + "action VARCHAR(36) NOT NULL," + "amount DOUBLE NOT NULL," + "balance DOUBLE NOT NULL," + "time DATETIME NOT NULL DEFAULT NOW()," + - "INDEX idx_uuid(uuid)" + + "INDEX idx_uuid(uuid)," + + "INDEX idx_name(player_name)" + ") CHARACTER SET = utf8mb4;"); statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_settings(" + "title VARCHAR(64) PRIMARY KEY," + @@ -307,13 +309,14 @@ public class SQLDataManager implements IDataManager { Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { try (Connection connection = dataSource.getConnection()) { try (PreparedStatement statement = connection.prepareStatement( - "INSERT INTO " + database + ".hamster_currency_logs VALUES(?, ?, ?, ?, ?, DEFAULT);" + "INSERT INTO " + database + ".hamster_currency_logs VALUES(?, ?, ?, ?, ?, ?, DEFAULT);" )) { statement.setString(1, log.getUuid().toString()); - statement.setString(2, log.getType()); - statement.setString(3, log.getAction()); - statement.setDouble(4, log.getAmount()); - statement.setDouble(5, log.getBalance()); + statement.setString(2, log.getPlayerName()); + statement.setString(3, log.getType()); + statement.setString(4, log.getAction()); + statement.setDouble(5, log.getAmount()); + statement.setDouble(6, log.getBalance()); statement.executeUpdate(); } } catch (SQLException e) { diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/data/CurrencyLog.java b/currency-plugin/src/main/java/cn/hamster3/currency/data/CurrencyLog.java index 3a15bfa..1b3d14e 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/data/CurrencyLog.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/data/CurrencyLog.java @@ -7,6 +7,8 @@ import java.util.UUID; public class CurrencyLog { @NotNull private final UUID uuid; + @NotNull + private final String playerName; /** * 货币类型 */ @@ -26,26 +28,28 @@ public class CurrencyLog { */ private final double balance; - public CurrencyLog(@NotNull UUID uuid, @NotNull String type, @NotNull String action, double amount, double balance) { + public CurrencyLog(@NotNull UUID uuid, @NotNull String playerName, @NotNull String type, @NotNull String action, double amount, double balance) { this.uuid = uuid; + this.playerName = playerName; this.type = type; this.action = action; this.amount = amount; this.balance = balance; } - @NotNull - public UUID getUuid() { + public @NotNull UUID getUuid() { return uuid; } - @NotNull - public String getType() { + public @NotNull String getPlayerName() { + return playerName; + } + + public @NotNull String getType() { return type; } - @NotNull - public String getAction() { + public @NotNull String getAction() { return action; } diff --git a/currency-plugin/src/main/java/cn/hamster3/currency/hook/VaultEconomyHook.java b/currency-plugin/src/main/java/cn/hamster3/currency/hook/VaultEconomyHook.java index aa84914..d7f02a7 100644 --- a/currency-plugin/src/main/java/cn/hamster3/currency/hook/VaultEconomyHook.java +++ b/currency-plugin/src/main/java/cn/hamster3/currency/hook/VaultEconomyHook.java @@ -37,7 +37,7 @@ public class VaultEconomyHook extends AbstractEconomy { } data.setPlayerCurrency(type, balance); dataManager.savePlayerData(data); - dataManager.insertLog(new CurrencyLog(data.getUuid(), type, "add", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type, "add", amount, balance)); return new EconomyResponse(amount, data.getPlayerCurrency(type), EconomyResponse.ResponseType.SUCCESS, ""); } @@ -52,7 +52,7 @@ public class VaultEconomyHook extends AbstractEconomy { double balance = data.getPlayerCurrency(type) - amount; data.setPlayerCurrency(type, balance); dataManager.savePlayerData(data); - dataManager.insertLog(new CurrencyLog(data.getUuid(), type, "take", amount, balance)); + dataManager.insertLog(new CurrencyLog(data.getUuid(), data.getPlayerName(), type, "take", amount, balance)); return new EconomyResponse(amount, data.getPlayerCurrency(type), EconomyResponse.ResponseType.SUCCESS, "扣款成功"); }