feat: 数据库日志添加玩家名称

This commit is contained in:
2023-08-10 21:45:49 +08:00
parent d7e477dd3f
commit 35f7eacee6
13 changed files with 36 additions and 29 deletions

View File

@@ -5,7 +5,7 @@ plugins {
} }
group 'cn.hamster3' group 'cn.hamster3'
version '2.1.0' version '2.1.1'
repositories { repositories {
maven { maven {

View File

@@ -43,7 +43,7 @@ public abstract class CurrencyAPI {
} }
data.setPlayerCurrency(currencyID, amount); data.setPlayerCurrency(currencyID, amount);
dataManager.savePlayerData(data); 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) { public static void addPlayerCurrency(UUID uuid, String currencyID, double amount) {
@@ -58,7 +58,7 @@ public abstract class CurrencyAPI {
double balance = data.getPlayerCurrency(currencyID) + amount; double balance = data.getPlayerCurrency(currencyID) + amount;
data.setPlayerCurrency(currencyID, balance); data.setPlayerCurrency(currencyID, balance);
dataManager.savePlayerData(data); 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) { public static void takePlayerCurrency(UUID uuid, String currencyID, double amount) {
@@ -73,7 +73,7 @@ public abstract class CurrencyAPI {
double balance = data.getPlayerCurrency(currencyID) - amount; double balance = data.getPlayerCurrency(currencyID) - amount;
data.setPlayerCurrency(currencyID, balance); data.setPlayerCurrency(currencyID, balance);
dataManager.savePlayerData(data); 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) { public static boolean hasPlayerCurrency(UUID uuid, String currencyID, double amount) {

View File

@@ -19,7 +19,7 @@ public class CurrencyGiveCommand extends CurrencyAdminSetCommand {
protected void doSet(PlayerData data, CurrencyType type, double amount) { protected void doSet(PlayerData data, CurrencyType type, double amount) {
double balance = data.getPlayerCurrency(type.getId()) + amount; double balance = data.getPlayerCurrency(type.getId()) + amount;
data.setPlayerCurrency(type.getId(), balance); 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));
} }
} }

View File

@@ -91,8 +91,8 @@ public class CurrencyPayCommand extends CommandExecutor {
toData.setPlayerCurrency(type.getId(), toBalance); toData.setPlayerCurrency(type.getId(), toBalance);
dataManager.savePlayerData(fromData); dataManager.savePlayerData(fromData);
dataManager.savePlayerData(toData); dataManager.savePlayerData(toData);
dataManager.insertLog(new CurrencyLog(fromData.getUuid(), type.getId(), "payOut", amount, fromBalance)); dataManager.insertLog(new CurrencyLog(fromData.getUuid(), fromData.getPlayerName(), type.getId(), "payOut", amount, fromBalance));
dataManager.insertLog(new CurrencyLog(toData.getUuid(), type.getId(), "payIn", amount, toBalance)); dataManager.insertLog(new CurrencyLog(toData.getUuid(), toData.getPlayerName(), type.getId(), "payIn", amount, toBalance));
sender.sendMessage( sender.sendMessage(
Message.paySuccess.toString() Message.paySuccess.toString()
.replace("%player%", toData.getPlayerName()) .replace("%player%", toData.getPlayerName())

View File

@@ -18,7 +18,7 @@ public class CurrencySetCommand extends CurrencyAdminSetCommand {
@Override @Override
protected void doSet(PlayerData data, CurrencyType type, double amount) { protected void doSet(PlayerData data, CurrencyType type, double amount) {
data.setPlayerCurrency(type.getId(), 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));
} }
} }

View File

@@ -19,6 +19,6 @@ public class CurrencyTakeCommand extends CurrencyAdminSetCommand {
protected void doSet(PlayerData data, CurrencyType type, double amount) { protected void doSet(PlayerData data, CurrencyType type, double amount) {
double balance = data.getPlayerCurrency(type.getId()) - amount; double balance = data.getPlayerCurrency(type.getId()) - amount;
data.setPlayerCurrency(type.getId(), balance); 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));
} }
} }

View File

@@ -19,6 +19,6 @@ public class VaultGiveCommand extends VaultAdminSetCommand {
public void doSet(PlayerData data, CurrencyType type, double amount) { public void doSet(PlayerData data, CurrencyType type, double amount) {
double balance = data.getPlayerCurrency(type.getId()) + amount; double balance = data.getPlayerCurrency(type.getId()) + amount;
data.setPlayerCurrency(type.getId(), balance); 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));
} }
} }

View File

@@ -95,8 +95,8 @@ public class VaultPayCommand extends CommandManager {
toData.setPlayerCurrency(type.getId(), toBalance); toData.setPlayerCurrency(type.getId(), toBalance);
dataManager.savePlayerData(fromData); dataManager.savePlayerData(fromData);
dataManager.savePlayerData(toData); dataManager.savePlayerData(toData);
dataManager.insertLog(new CurrencyLog(fromData.getUuid(), type.getId(), "payOut", amount, fromBalance)); dataManager.insertLog(new CurrencyLog(fromData.getUuid(), fromData.getPlayerName(), type.getId(), "payOut", amount, fromBalance));
dataManager.insertLog(new CurrencyLog(toData.getUuid(), type.getId(), "payIn", amount, toBalance)); dataManager.insertLog(new CurrencyLog(toData.getUuid(), toData.getPlayerName(), type.getId(), "payIn", amount, toBalance));
sender.sendMessage( sender.sendMessage(
Message.paySuccess.toString() Message.paySuccess.toString()
.replace("%player%", toData.getPlayerName()) .replace("%player%", toData.getPlayerName())

View File

@@ -18,6 +18,6 @@ public class VaultSetCommand extends VaultAdminSetCommand {
@Override @Override
public void doSet(PlayerData data, CurrencyType type, double amount) { public void doSet(PlayerData data, CurrencyType type, double amount) {
data.setPlayerCurrency(type.getId(), 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));
} }
} }

View File

@@ -19,6 +19,6 @@ public class VaultTakeCommand extends VaultAdminSetCommand {
public void doSet(PlayerData data, CurrencyType type, double amount) { public void doSet(PlayerData data, CurrencyType type, double amount) {
double balance = data.getPlayerCurrency(type.getId()) - amount; double balance = data.getPlayerCurrency(type.getId()) - amount;
data.setPlayerCurrency(type.getId(), balance); 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));
} }
} }

View File

@@ -57,12 +57,14 @@ public class SQLDataManager implements IDataManager {
") CHARACTER SET = utf8mb4;"); ") CHARACTER SET = utf8mb4;");
statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_logs(" + statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_logs(" +
"uuid VARCHAR(36) NOT NULL," + "uuid VARCHAR(36) NOT NULL," +
"player_name VARCHAR(36) NOT NULL," +
"type VARCHAR(36) NOT NULL," + "type VARCHAR(36) NOT NULL," +
"action VARCHAR(36) NOT NULL," + "action VARCHAR(36) NOT NULL," +
"amount DOUBLE NOT NULL," + "amount DOUBLE NOT NULL," +
"balance DOUBLE NOT NULL," + "balance DOUBLE NOT NULL," +
"time DATETIME NOT NULL DEFAULT NOW()," + "time DATETIME NOT NULL DEFAULT NOW()," +
"INDEX idx_uuid(uuid)" + "INDEX idx_uuid(uuid)," +
"INDEX idx_name(player_name)" +
") CHARACTER SET = utf8mb4;"); ") CHARACTER SET = utf8mb4;");
statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_settings(" + statement.execute("CREATE TABLE IF NOT EXISTS " + database + ".hamster_currency_settings(" +
"title VARCHAR(64) PRIMARY KEY," + "title VARCHAR(64) PRIMARY KEY," +
@@ -307,13 +309,14 @@ public class SQLDataManager implements IDataManager {
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
try (Connection connection = dataSource.getConnection()) { try (Connection connection = dataSource.getConnection()) {
try (PreparedStatement statement = connection.prepareStatement( 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(1, log.getUuid().toString());
statement.setString(2, log.getType()); statement.setString(2, log.getPlayerName());
statement.setString(3, log.getAction()); statement.setString(3, log.getType());
statement.setDouble(4, log.getAmount()); statement.setString(4, log.getAction());
statement.setDouble(5, log.getBalance()); statement.setDouble(5, log.getAmount());
statement.setDouble(6, log.getBalance());
statement.executeUpdate(); statement.executeUpdate();
} }
} catch (SQLException e) { } catch (SQLException e) {

View File

@@ -7,6 +7,8 @@ import java.util.UUID;
public class CurrencyLog { public class CurrencyLog {
@NotNull @NotNull
private final UUID uuid; private final UUID uuid;
@NotNull
private final String playerName;
/** /**
* 货币类型 * 货币类型
*/ */
@@ -26,26 +28,28 @@ public class CurrencyLog {
*/ */
private final double balance; 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.uuid = uuid;
this.playerName = playerName;
this.type = type; this.type = type;
this.action = action; this.action = action;
this.amount = amount; this.amount = amount;
this.balance = balance; this.balance = balance;
} }
@NotNull public @NotNull UUID getUuid() {
public UUID getUuid() {
return uuid; return uuid;
} }
@NotNull public @NotNull String getPlayerName() {
public String getType() { return playerName;
}
public @NotNull String getType() {
return type; return type;
} }
@NotNull public @NotNull String getAction() {
public String getAction() {
return action; return action;
} }

View File

@@ -37,7 +37,7 @@ public class VaultEconomyHook extends AbstractEconomy {
} }
data.setPlayerCurrency(type, balance); data.setPlayerCurrency(type, balance);
dataManager.savePlayerData(data); 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, ""); 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; double balance = data.getPlayerCurrency(type) - amount;
data.setPlayerCurrency(type, balance); data.setPlayerCurrency(type, balance);
dataManager.savePlayerData(data); 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, "扣款成功"); return new EconomyResponse(amount, data.getPlayerCurrency(type), EconomyResponse.ResponseType.SUCCESS, "扣款成功");
} }