From a838423a9494eef52bf4f04e153eb2b5503e0b14 Mon Sep 17 00:00:00 2001 From: Ajneb97 Date: Fri, 23 May 2025 15:39:34 -0400 Subject: [PATCH] 1.17.5 --- .../pk/ajneb97/configs/MainConfigManager.java | 8 +++- .../pk/ajneb97/database/HikariConnection.java | 47 ++++++++++++++----- .../pk/ajneb97/database/MySQLConnection.java | 17 +------ src/main/resources/config.yml | 8 +++- src/main/resources/plugin.yml | 2 +- 5 files changed, 52 insertions(+), 30 deletions(-) diff --git a/src/main/java/pk/ajneb97/configs/MainConfigManager.java b/src/main/java/pk/ajneb97/configs/MainConfigManager.java index 0144115..afbb772 100644 --- a/src/main/java/pk/ajneb97/configs/MainConfigManager.java +++ b/src/main/java/pk/ajneb97/configs/MainConfigManager.java @@ -63,7 +63,13 @@ public class MainConfigManager { Path pathConfig = Paths.get(configFile.getRoute()); try{ String text = new String(Files.readAllBytes(pathConfig)); - + if(!text.contains("verifyServerCertificate:")){ + getConfig().set("mysql_database.pool.connectionTimeout",5000); + getConfig().set("mysql_database.advanced.verifyServerCertificate",false); + getConfig().set("mysql_database.advanced.useSSL",true); + getConfig().set("mysql_database.advanced.allowPublicKeyRetrieval",true); + configFile.saveConfig(); + } if(!text.contains("new_kit_default_save_mode_original:")){ getConfig().set("new_kit_default_save_mode_original", true); configFile.saveConfig(); diff --git a/src/main/java/pk/ajneb97/database/HikariConnection.java b/src/main/java/pk/ajneb97/database/HikariConnection.java index 4c9fcac..d9ddea5 100644 --- a/src/main/java/pk/ajneb97/database/HikariConnection.java +++ b/src/main/java/pk/ajneb97/database/HikariConnection.java @@ -2,22 +2,47 @@ package pk.ajneb97.database; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.bukkit.configuration.file.FileConfiguration; public class HikariConnection { private HikariDataSource hikari; - public HikariConnection(String ip, int port, String database, String username, String password) { - HikariConfig config = new HikariConfig(); - config.setJdbcUrl("jdbc:mysql://" + ip + ":" + port + "/" + database); - config.setUsername(username); - config.setPassword(password); - config.addDataSourceProperty("autoReconnect", "true"); - config.addDataSourceProperty("leakDetectionThreshold", "true"); - config.addDataSourceProperty("verifyServerCertificate", "false"); - config.addDataSourceProperty("useSSL", "false"); - config.setConnectionTimeout(5000); - hikari = new HikariDataSource(config); + public HikariConnection(FileConfiguration config) { + HikariConfig hikariConfig = new HikariConfig(); + String path = "mysql_database"; + + String host = config.getString(path+".host"); + int port = config.getInt(path+".port"); + String database = config.getString(path+".database"); + String username = config.getString(path+".username"); + String password = config.getString(path+".password"); + + hikariConfig.setJdbcUrl("jdbc:mysql://" + host + ":" + port + "/" + database); + hikariConfig.setUsername(username); + hikariConfig.setPassword(password); + + if(config.contains(path+".pool.connectionTimeout")){ + hikariConfig.setConnectionTimeout(config.getLong(path+".pool.connectionTimeout")); + } + if(config.contains(path+".pool.maximumPoolSize")){ + hikariConfig.setMaximumPoolSize(config.getInt(path+".pool.maximumPoolSize")); + } + if(config.contains(path+".pool.connectionTimeout")){ + hikariConfig.setKeepaliveTime(config.getLong(path+".pool.keepaliveTime")); + } + if(config.contains(path+".pool.idleTimeout")){ + hikariConfig.setIdleTimeout(config.getLong(path+".pool.idleTimeout")); + } + if(config.contains(path+".pool.maxLifetime")){ + hikariConfig.setMaxLifetime(config.getLong(path+".pool.maxLifetime")); + } + + for(String key : config.getConfigurationSection(path+".advanced").getKeys(false)){ + hikariConfig.addDataSourceProperty(key,config.get(path+".advanced."+key)); + } + + hikari = new HikariDataSource(hikariConfig); } public HikariDataSource getHikari() { diff --git a/src/main/java/pk/ajneb97/database/MySQLConnection.java b/src/main/java/pk/ajneb97/database/MySQLConnection.java index f9cf0ba..304d0c3 100644 --- a/src/main/java/pk/ajneb97/database/MySQLConnection.java +++ b/src/main/java/pk/ajneb97/database/MySQLConnection.java @@ -18,11 +18,6 @@ public class MySQLConnection { private PlayerKits2 plugin; private HikariConnection connection; - private String host; - private String database; - private String username; - private String password; - private int port; public MySQLConnection(PlayerKits2 plugin){ this.plugin = plugin; @@ -31,12 +26,7 @@ public class MySQLConnection { public void setupMySql(){ FileConfiguration config = plugin.getConfigsManager().getMainConfigManager().getConfig(); try { - host = config.getString("mysql_database.host"); - port = Integer.valueOf(config.getString("mysql_database.port")); - database = config.getString("mysql_database.database"); - username = config.getString("mysql_database.username"); - password = config.getString("mysql_database.password"); - connection = new HikariConnection(host,port,database,username,password); + connection = new HikariConnection(config); connection.getHikari().getConnection(); createTables(); loadData(); @@ -46,11 +36,6 @@ public class MySQLConnection { } } - - public String getDatabase() { - return this.database; - } - public Connection getConnection() { try { return connection.getHikari().getConnection(); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 164a345..861ab11 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -49,4 +49,10 @@ mysql_database: port: 3306 username: root password: root - database: database \ No newline at end of file + database: database + pool: + connectionTimeout: 5000 + advanced: + verifyServerCertificate: false + useSSL: true + allowPublicKeyRetrieval: true \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b90fccd..5ee6553 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: pk.ajneb97.PlayerKits2 -version: 1.17.4 +version: 1.17.5 name: PlayerKits2 api-version: 1.13 softdepend: [Vault,PlaceholderAPI]