Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
`java-library`
alias(libs.plugins.lombok)
}

val group by properties
Expand Down
2 changes: 0 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[versions]
# Plugins
lombok = "8.11"

# Project tools
junit-jupiter = "5.11.3"
Expand All @@ -15,7 +14,6 @@ paper-api = "1.16.5-R0.1-SNAPSHOT"
jsonmessage = "1.3.1"

[plugins]
lombok = { id = "io.freefair.lombok", version.ref = "lombok" }

[libraries]
com-mysql-mysql-connector-j = { module = "com.mysql:mysql-connector-j", version.ref = "com-mysql-mysql-connector-j" }
Expand Down
21 changes: 16 additions & 5 deletions src/main/java/jp/azisaba/lgw/kdstatus/KDStatusReloaded.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,16 @@
import jp.azisaba.lgw.kdstatus.task.DBConnectionCheckTask;
import jp.azisaba.lgw.kdstatus.task.SavePlayerDataTask;
import jp.azisaba.lgw.kdstatus.utils.Chat;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;

public class KDStatusReloaded extends JavaPlugin {

@Getter
private KDStatusConfig pluginConfig;
@Getter
private KillDeathDataContainer kdDataContainer;
@Getter
private static KDStatusReloaded plugin;
@Getter
private SavePlayerDataTask saveTask;
private DBConnectionCheckTask dbCheckTask;

Expand Down Expand Up @@ -110,4 +105,20 @@ public PlayerDataMySQLController getKDData() {
return kdData;
}

public KDStatusConfig getPluginConfig() {
return pluginConfig;
}

public KillDeathDataContainer getKdDataContainer() {
return kdDataContainer;
}

public static KDStatusReloaded getPlugin() {
return plugin;
}

public SavePlayerDataTask getSaveTask() {
return saveTask;
}

}
28 changes: 21 additions & 7 deletions src/main/java/jp/azisaba/lgw/kdstatus/sql/DBAuthConfig.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,38 @@
package jp.azisaba.lgw.kdstatus.sql;

import jp.azisaba.lgw.kdstatus.KDStatusReloaded;
import lombok.AccessLevel;
import lombok.Getter;

import java.util.logging.Logger;

/**
* Safe auth config loader
*/
public class DBAuthConfig {
@Getter(AccessLevel.PROTECTED)
private static String host;
@Getter(AccessLevel.PROTECTED)
private static String port;
@Getter(AccessLevel.PROTECTED)
private static String database;
@Getter(AccessLevel.PROTECTED)
private static String user;
@Getter(AccessLevel.PROTECTED)

protected static String getHost() {
return host;
}

protected static String getPort() {
return port;
}

protected static String getDatabase() {
return database;
}

protected static String getUser() {
return user;
}

protected static String getPassword() {
return password;
}

private static String password;

public static void loadAuthConfig() {
Expand Down
24 changes: 17 additions & 7 deletions src/main/java/jp/azisaba/lgw/kdstatus/sql/HikariMySQLDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.NotNull;

import java.sql.Connection;
import java.sql.PreparedStatement;
Expand All @@ -18,16 +16,28 @@
/**
* Wrapper class of HikariDataSource for MySQL
*/
@RequiredArgsConstructor
public class HikariMySQLDatabase {
private final Logger logger;
private final int maxPoolSize;
private final String host, port, databaseName, user, password;

@Getter
private boolean initialized;
private HikariDataSource hikari;

public HikariMySQLDatabase(Logger logger, int maxPoolSize, String host, String port, String databaseName, String user, String password) {
this.logger = logger;
this.maxPoolSize = maxPoolSize;
this.host = host;
this.port = port;
this.databaseName = databaseName;
this.user = user;
this.password = password;
}

public boolean isInitialized() {
return initialized;
}

public boolean isConnected() {
if (hikari == null) return false;
return hikari.isRunning();
Expand Down Expand Up @@ -102,7 +112,7 @@ public Connection getConnectionOrNull() {
}


public PreparedStatement preparedStatement(@NonNull String sql) {
public PreparedStatement preparedStatement(@NotNull String sql) {
Connection conn = getConnectionOrNull();
if (conn == null) {
logger.log(Level.SEVERE, "Failed to create preparedStatement: connection is null");
Expand All @@ -124,7 +134,7 @@ public PreparedStatement preparedStatement(@NonNull String sql) {
* @return result of execution. If failed, return null
*/

public ResultSet executeQuery(@NonNull String sql, Consumer<PreparedStatement> pstmtConsumer) {
public ResultSet executeQuery(@NotNull String sql, Consumer<PreparedStatement> pstmtConsumer) {
// get a connection
Connection conn = getConnectionOrNull();
if (conn == null) {
Expand Down
15 changes: 10 additions & 5 deletions src/main/java/jp/azisaba/lgw/kdstatus/sql/KDUserData.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

import jp.azisaba.lgw.kdstatus.KDStatusReloaded;
import jp.azisaba.lgw.kdstatus.utils.TimeUnit;
import lombok.Getter;
import lombok.NonNull;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.io.IOException;
Expand All @@ -14,7 +13,6 @@

public class KDUserData {

@Getter
private final UUID uuid;

private YamlConfiguration conf;
Expand All @@ -28,7 +26,6 @@ public class KDUserData {
public static final String MONTHLY_KILLS_KEY = "MonthlyKill";
public static final String YEARLY_KILLS_KEY = "YearlyKill";

@Getter
private String name;
private int totalKills, dailyKills, monthlyKills, yearlyKills;
private int deaths;
Expand Down Expand Up @@ -135,13 +132,21 @@ public void addKills(TimeUnit unit, int num) {
updateLastUpdated();
}

public String getName() {
return name;
}

public UUID getUuid() {
return uuid;
}

/**
* 指定した期間のキル数を取得します
*
* @param unit 取得したい期間
* @return 取得したキル数。なければ0
*/
public int getKills(@NonNull TimeUnit unit) {
public int getKills(@NotNull TimeUnit unit) {
fixCorrectValue();

if (unit == TimeUnit.LIFETIME) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import jp.azisaba.lgw.kdstatus.utils.Chat;
import jp.azisaba.lgw.kdstatus.utils.TimeUnit;
import jp.azisaba.lgw.kdstatus.utils.UUIDConverter;
import lombok.NonNull;
import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.sql.ResultSet;
Expand Down Expand Up @@ -56,7 +56,7 @@ public KDUserData getPlayerData(Player p, boolean loadIfNotLoaded) {
* @return cacheに保存されている戦績か、ファイルから読み込まれたプレイヤーの戦績
* @throws NullPointerException 対象プレイヤーがnullの場合
*/
public KDUserData loadPlayerData(@NonNull Player p) {
public KDUserData loadPlayerData(@NotNull Player p) {
if (playerDataCache.containsKey(p.getUniqueId())) {
return playerDataCache.get(p.getUniqueId());
}
Expand Down Expand Up @@ -112,7 +112,7 @@ public boolean removeUserDataFromCache(UUID uuid) {
* @param p 対象プレイヤー
* @param save ファイルにセーブするかどうか
*/
public boolean unloadPlayer(@NonNull Player p, boolean save) {
public boolean unloadPlayer(@NotNull Player p, boolean save) {
if (!playerDataCache.containsKey(p.getUniqueId())) {
return true;
}
Expand All @@ -128,15 +128,15 @@ public boolean unloadPlayer(@NonNull Player p, boolean save) {
return true;
}

public boolean savePlayerData(@NonNull KDUserData data) {
public boolean savePlayerData(@NotNull KDUserData data) {
if (!isMigrated) {
return sqlController.save(data);
} else {
return KDStatusReloaded.getPlugin().getKDData().update(data);
}
}

public boolean savePlayerData(@NonNull Player p) {
public boolean savePlayerData(@NotNull Player p) {
KDUserData userData = getPlayerData(p, false);
if (userData == null) return true;
return savePlayerData(userData);
Expand Down Expand Up @@ -240,7 +240,7 @@ public List<KillRankingData> getTopKillRankingData(TimeUnit unit, int count) thr
return null;
}

public int getRanking(@NonNull UUID uuid, @NonNull TimeUnit unit) {
public int getRanking(@NotNull UUID uuid, @NotNull TimeUnit unit) {

if (!isMigrated) {
ResultSet set = sqlController.getHandler().executeQuery(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package jp.azisaba.lgw.kdstatus.sql;

import lombok.Getter;

import java.util.UUID;

@Getter
public class KillRankingData {

private final UUID uuid;
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/jp/azisaba/lgw/kdstatus/sql/MySQLHandler.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
package jp.azisaba.lgw.kdstatus.sql;

import lombok.Getter;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MySQLHandler {

@Getter
private Connection connection;

public boolean isConnected() {
return (connection != null);
}

public Connection getConnection() {
return connection;
}

/**
* Internal method for connect MySQL
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package jp.azisaba.lgw.kdstatus.sql;

import jp.azisaba.lgw.kdstatus.utils.TimeUnit;
import lombok.NonNull;
import org.jetbrains.annotations.NotNull;

import java.math.BigInteger;
import java.sql.ResultSet;
Expand All @@ -17,15 +17,15 @@ public interface PlayerDataController {

boolean update(KDUserData data);

BigInteger getKills(@NonNull UUID uuid, @NonNull TimeUnit unit);
BigInteger getKills(@NotNull UUID uuid, @NotNull TimeUnit unit);

BigInteger getDeaths(@NonNull UUID uuid);
BigInteger getDeaths(@NotNull UUID uuid);

String getName(UUID uuid);

long getLastUpdated(@NonNull UUID uuid);
long getLastUpdated(@NotNull UUID uuid);

ResultSet getRawData(@NonNull UUID uuid);
ResultSet getRawData(@NotNull UUID uuid);

int getRank(UUID uuid, TimeUnit unit);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package jp.azisaba.lgw.kdstatus.sql;

import jp.azisaba.lgw.kdstatus.utils.TimeUnit;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.NotNull;

import java.math.BigInteger;
import java.sql.PreparedStatement;
Expand All @@ -14,11 +13,14 @@
import java.util.logging.Level;
import java.util.logging.Logger;

@RequiredArgsConstructor
public class PlayerDataHikariMySQLController implements PlayerDataController {
private final Logger logger;
private HikariMySQLDatabase db;

public PlayerDataHikariMySQLController(Logger logger) {
this.logger = logger;
}

public void connect() {
}

Expand Down Expand Up @@ -91,12 +93,12 @@ public boolean update(KDUserData data) {
}

@Override
public BigInteger getKills(@NonNull UUID uuid, @NonNull TimeUnit unit) {
public BigInteger getKills(@NotNull UUID uuid, @NotNull TimeUnit unit) {
return null;
}

@Override
public BigInteger getDeaths(@NonNull UUID uuid) {
public BigInteger getDeaths(@NotNull UUID uuid) {
return null;
}

Expand All @@ -106,12 +108,12 @@ public String getName(UUID uuid) {
}

@Override
public long getLastUpdated(@NonNull UUID uuid) {
public long getLastUpdated(@NotNull UUID uuid) {
return 0;
}

@Override
public ResultSet getRawData(@NonNull UUID uuid) {
public ResultSet getRawData(@NotNull UUID uuid) {
return null;
}

Expand Down
Loading
Loading