66 lines
2.3 KiB
Java
66 lines
2.3 KiB
Java
package de.mviper.adventskalender;
|
|
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
import java.sql.*;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
public class MySQLManager {
|
|
|
|
private static Connection connection;
|
|
|
|
public static void connect() {
|
|
FileConfiguration config = Adventskalender.getInstance().getConfig();
|
|
String host = config.getString("mysql.host");
|
|
int port = config.getInt("mysql.port");
|
|
String database = config.getString("mysql.database");
|
|
String user = config.getString("mysql.user");
|
|
String password = config.getString("mysql.password");
|
|
|
|
try {
|
|
if (connection != null && !connection.isClosed()) return;
|
|
|
|
synchronized (MySQLManager.class) {
|
|
Class.forName("com.mysql.jdbc.Driver");
|
|
connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?autoReconnect=true&useSSL=false", user, password);
|
|
}
|
|
|
|
createTables();
|
|
Adventskalender.getInstance().getLogger().info("MySQL-Verbindung erfolgreich hergestellt!");
|
|
} catch (Exception e) {
|
|
Adventskalender.getInstance().getLogger().severe("MySQL-Verbindung fehlgeschlagen: " + e.getMessage());
|
|
}
|
|
}
|
|
|
|
private static void createTables() {
|
|
try (Statement s = connection.createStatement()) {
|
|
// Tabelle für Einzelspieler-Daten
|
|
s.executeUpdate("CREATE TABLE IF NOT EXISTS advent_players (uuid VARCHAR(36), day INT, PRIMARY KEY(uuid, day))");
|
|
// Tabelle für globalen Modus
|
|
s.executeUpdate("CREATE TABLE IF NOT EXISTS advent_global (day INT PRIMARY KEY, player_name VARCHAR(16))");
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static boolean isConnected() {
|
|
try {
|
|
return connection != null && !connection.isClosed();
|
|
} catch (SQLException e) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static void close() {
|
|
try {
|
|
if (isConnected()) connection.close();
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static Connection getConnection() {
|
|
return connection;
|
|
}
|
|
} |