From 6f50a03c70b8e0e3bc0c733d7ce0d9c547b20e6d Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sat, 23 May 2026 18:07:59 +0000 Subject: [PATCH] Delete src/main/java/de/teleportsuite/database/DatabaseManager.java via Git Manager GUI --- .../database/DatabaseManager.java | 374 ------------------ 1 file changed, 374 deletions(-) delete mode 100644 src/main/java/de/teleportsuite/database/DatabaseManager.java diff --git a/src/main/java/de/teleportsuite/database/DatabaseManager.java b/src/main/java/de/teleportsuite/database/DatabaseManager.java deleted file mode 100644 index 88030ff..0000000 --- a/src/main/java/de/teleportsuite/database/DatabaseManager.java +++ /dev/null @@ -1,374 +0,0 @@ -package de.teleportsuite.database; - -import com.zaxxer.hikari.HikariConfig; -import com.zaxxer.hikari.HikariDataSource; -import de.teleportsuite.TeleportSuite; -import de.teleportsuite.models.*; -import java.sql.*; -import java.util.*; - -public class DatabaseManager { - - private final TeleportSuite plugin; - private HikariDataSource dataSource; - private boolean isMySQL; - - public DatabaseManager(TeleportSuite plugin) { this.plugin = plugin; } - - public boolean connect() { - String type = plugin.getConfig().getString("database.type", "sqlite").toLowerCase(); - isMySQL = type.equals("mysql"); - try { - HikariConfig config = new HikariConfig(); - if (isMySQL) { - String host = plugin.getConfig().getString("database.mysql.host", "localhost"); - int port = plugin.getConfig().getInt("database.mysql.port", 3306); - String db = plugin.getConfig().getString("database.mysql.database", "teleportsuite"); - String user = plugin.getConfig().getString("database.mysql.username", "root"); - String pass = plugin.getConfig().getString("database.mysql.password", ""); - config.setJdbcUrl("jdbc:mysql://"+host+":"+port+"/"+db+"?useSSL=false&autoReconnect=true&characterEncoding=UTF-8"); - config.setUsername(user); - config.setPassword(pass); - config.setMaximumPoolSize(plugin.getConfig().getInt("database.mysql.pool-size", 10)); - } else { - String file = plugin.getDataFolder().getAbsolutePath() + "/" + - plugin.getConfig().getString("database.sqlite.file", "teleportsuite.db"); - config.setJdbcUrl("jdbc:sqlite:" + file); - config.setMaximumPoolSize(1); - } - config.setPoolName("TeleportSuite-Pool"); - dataSource = new HikariDataSource(config); - plugin.getLogger().info("Datenbankverbindung hergestellt (" + (isMySQL ? "MySQL" : "SQLite") + ")"); - return true; - } catch (Exception e) { - plugin.getLogger().severe("Datenbankfehler: " + e.getMessage()); - return false; - } - } - - public void createTables() { - String ai = isMySQL ? "AUTO_INCREMENT" : "AUTOINCREMENT"; - String bool = isMySQL ? "TINYINT(1)" : "INTEGER"; - String[] tables = { - "CREATE TABLE IF NOT EXISTS ts_homes (id INTEGER PRIMARY KEY "+ai+",uuid VARCHAR(36) NOT NULL,name VARCHAR(64) NOT NULL,world VARCHAR(64) NOT NULL,x DOUBLE NOT NULL,y DOUBLE NOT NULL,z DOUBLE NOT NULL,yaw FLOAT NOT NULL,pitch FLOAT NOT NULL,server VARCHAR(64) DEFAULT 'local',UNIQUE(uuid,name))", - "CREATE TABLE IF NOT EXISTS ts_warps (id INTEGER PRIMARY KEY "+ai+",name VARCHAR(64) NOT NULL UNIQUE,world VARCHAR(64) NOT NULL,x DOUBLE NOT NULL,y DOUBLE NOT NULL,z DOUBLE NOT NULL,yaw FLOAT NOT NULL,pitch FLOAT NOT NULL,server VARCHAR(64) DEFAULT 'local',creator VARCHAR(36),permission VARCHAR(128) DEFAULT NULL)", - "CREATE TABLE IF NOT EXISTS ts_portals (id INTEGER PRIMARY KEY "+ai+",name VARCHAR(64) NOT NULL UNIQUE,world VARCHAR(64) NOT NULL,x1 INT NOT NULL,y1 INT NOT NULL,z1 INT NOT NULL,x2 INT NOT NULL,y2 INT NOT NULL,z2 INT NOT NULL,target_server VARCHAR(64),target_world VARCHAR(64),target_x DOUBLE,target_y DOUBLE,target_z DOUBLE,target_yaw FLOAT DEFAULT 0,target_pitch FLOAT DEFAULT 0)", - "CREATE TABLE IF NOT EXISTS ts_spawns (id INTEGER PRIMARY KEY "+ai+",type VARCHAR(32) NOT NULL UNIQUE,world VARCHAR(64) NOT NULL,x DOUBLE NOT NULL,y DOUBLE NOT NULL,z DOUBLE NOT NULL,yaw FLOAT NOT NULL,pitch FLOAT NOT NULL,server VARCHAR(64) DEFAULT 'local')", - "CREATE TABLE IF NOT EXISTS ts_savepoints (id INTEGER PRIMARY KEY "+ai+",uuid VARCHAR(36) NOT NULL,name VARCHAR(64) NOT NULL,world VARCHAR(64) NOT NULL,x DOUBLE NOT NULL,y DOUBLE NOT NULL,z DOUBLE NOT NULL,yaw FLOAT NOT NULL,pitch FLOAT NOT NULL,server VARCHAR(64) DEFAULT 'local',UNIQUE(uuid,name))", - "CREATE TABLE IF NOT EXISTS ts_player_data (uuid VARCHAR(36) PRIMARY KEY,last_world VARCHAR(64),last_x DOUBLE,last_y DOUBLE,last_z DOUBLE,last_yaw FLOAT,last_pitch FLOAT,last_server VARCHAR(64) DEFAULT 'local',death_world VARCHAR(64),death_x DOUBLE,death_y DOUBLE,death_z DOUBLE,death_yaw FLOAT,death_pitch FLOAT,death_server VARCHAR(64) DEFAULT 'local',first_join "+bool+" DEFAULT 1)" - }; - try (Connection conn = getConnection(); Statement stmt = conn.createStatement()) { - for (String sql : tables) stmt.execute(sql); - plugin.getLogger().info("Datenbanktabellen erstellt/verifiziert."); - } catch (SQLException e) { - plugin.getLogger().severe("Fehler beim Erstellen der Tabellen: " + e.getMessage()); - } - } - - // ===== HOMES ===== - public void saveHome(UUID uuid, String name, TeleportLocation loc) { - String sql = isMySQL - ? "INSERT INTO ts_homes (uuid,name,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE world=?,x=?,y=?,z=?,yaw=?,pitch=?,server=?" - : "INSERT OR REPLACE INTO ts_homes (uuid,name,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, uuid.toString()); ps.setString(2, name); - ps.setString(3, loc.getWorld()); ps.setDouble(4, loc.getX()); ps.setDouble(5, loc.getY()); - ps.setDouble(6, loc.getZ()); ps.setFloat(7, loc.getYaw()); ps.setFloat(8, loc.getPitch()); - ps.setString(9, loc.getServer()); - if (isMySQL) { - ps.setString(10, loc.getWorld()); ps.setDouble(11, loc.getX()); ps.setDouble(12, loc.getY()); - ps.setDouble(13, loc.getZ()); ps.setFloat(14, loc.getYaw()); ps.setFloat(15, loc.getPitch()); - ps.setString(16, loc.getServer()); - } - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("saveHome: " + e.getMessage()); } - } - - public List getHomes(UUID uuid) { - List list = new ArrayList<>(); - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT * FROM ts_homes WHERE uuid=?")) { - ps.setString(1, uuid.toString()); - ResultSet rs = ps.executeQuery(); - while (rs.next()) { - TeleportLocation loc = new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - list.add(new Home(uuid, rs.getString("name"), loc)); - } - } catch (SQLException e) { plugin.getLogger().warning("getHomes: " + e.getMessage()); } - return list; - } - - public Home getHome(UUID uuid, String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT * FROM ts_homes WHERE uuid=? AND name=?")) { - ps.setString(1, uuid.toString()); ps.setString(2, name); - ResultSet rs = ps.executeQuery(); - if (rs.next()) { - TeleportLocation loc = new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - return new Home(uuid, name, loc); - } - } catch (SQLException e) { plugin.getLogger().warning("getHome: " + e.getMessage()); } - return null; - } - - public boolean deleteHome(UUID uuid, String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("DELETE FROM ts_homes WHERE uuid=? AND name=?")) { - ps.setString(1, uuid.toString()); ps.setString(2, name); - return ps.executeUpdate() > 0; - } catch (SQLException e) { plugin.getLogger().warning("deleteHome: " + e.getMessage()); return false; } - } - - public int countHomes(UUID uuid) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT COUNT(*) FROM ts_homes WHERE uuid=?")) { - ps.setString(1, uuid.toString()); - ResultSet rs = ps.executeQuery(); - if (rs.next()) return rs.getInt(1); - } catch (SQLException e) { plugin.getLogger().warning("countHomes: " + e.getMessage()); } - return 0; - } - - // ===== WARPS ===== - public void saveWarp(String name, TeleportLocation loc, UUID creator, String permission) { - String sql = isMySQL - ? "INSERT INTO ts_warps (name,world,x,y,z,yaw,pitch,server,creator,permission) VALUES(?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE world=?,x=?,y=?,z=?,yaw=?,pitch=?,server=?" - : "INSERT OR REPLACE INTO ts_warps (name,world,x,y,z,yaw,pitch,server,creator,permission) VALUES(?,?,?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, name); ps.setString(2, loc.getWorld()); - ps.setDouble(3, loc.getX()); ps.setDouble(4, loc.getY()); ps.setDouble(5, loc.getZ()); - ps.setFloat(6, loc.getYaw()); ps.setFloat(7, loc.getPitch()); ps.setString(8, loc.getServer()); - ps.setString(9, creator != null ? creator.toString() : null); ps.setString(10, permission); - if (isMySQL) { - ps.setString(11, loc.getWorld()); ps.setDouble(12, loc.getX()); ps.setDouble(13, loc.getY()); - ps.setDouble(14, loc.getZ()); ps.setFloat(15, loc.getYaw()); ps.setFloat(16, loc.getPitch()); - ps.setString(17, loc.getServer()); - } - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("saveWarp: " + e.getMessage()); } - } - - public Warp getWarp(String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT * FROM ts_warps WHERE name=?")) { - ps.setString(1, name); - ResultSet rs = ps.executeQuery(); - if (rs.next()) { - TeleportLocation loc = new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - String creatorStr = rs.getString("creator"); - UUID creator = creatorStr != null ? UUID.fromString(creatorStr) : null; - return new Warp(name, loc, creator, rs.getString("permission")); - } - } catch (SQLException e) { plugin.getLogger().warning("getWarp: " + e.getMessage()); } - return null; - } - - public List getAllWarps() { - List list = new ArrayList<>(); - try (Connection c = getConnection(); - Statement stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM ts_warps ORDER BY name")) { - while (rs.next()) { - TeleportLocation loc = new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - String creatorStr = rs.getString("creator"); - UUID creator = creatorStr != null ? UUID.fromString(creatorStr) : null; - list.add(new Warp(rs.getString("name"), loc, creator, rs.getString("permission"))); - } - } catch (SQLException e) { plugin.getLogger().warning("getAllWarps: " + e.getMessage()); } - return list; - } - - public boolean deleteWarp(String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("DELETE FROM ts_warps WHERE name=?")) { - ps.setString(1, name); - return ps.executeUpdate() > 0; - } catch (SQLException e) { plugin.getLogger().warning("deleteWarp: " + e.getMessage()); return false; } - } - - // ===== PORTALS ===== - public void savePortal(Portal portal) { - String sql = isMySQL - ? "INSERT INTO ts_portals (name,world,x1,y1,z1,x2,y2,z2,target_server,target_world,target_x,target_y,target_z,target_yaw,target_pitch) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE world=VALUES(world),x1=VALUES(x1),y1=VALUES(y1),z1=VALUES(z1),x2=VALUES(x2),y2=VALUES(y2),z2=VALUES(z2),target_server=VALUES(target_server),target_world=VALUES(target_world),target_x=VALUES(target_x),target_y=VALUES(target_y),target_z=VALUES(target_z),target_yaw=VALUES(target_yaw),target_pitch=VALUES(target_pitch)" - : "INSERT OR REPLACE INTO ts_portals (name,world,x1,y1,z1,x2,y2,z2,target_server,target_world,target_x,target_y,target_z,target_yaw,target_pitch) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - TeleportLocation dest = portal.getDestination(); - ps.setString(1, portal.getName()); ps.setString(2, portal.getWorld()); - // We need full portal data - for simplicity storing via Portal model fields - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("savePortal: " + e.getMessage()); } - } - - public List getAllPortals() { - List list = new ArrayList<>(); - try (Connection c = getConnection(); - Statement stmt = c.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM ts_portals")) { - while (rs.next()) { - TeleportLocation dest = new TeleportLocation(rs.getString("target_world"),rs.getDouble("target_x"),rs.getDouble("target_y"),rs.getDouble("target_z"),rs.getFloat("target_yaw"),rs.getFloat("target_pitch"),rs.getString("target_server")); - list.add(new Portal(rs.getString("name"),rs.getString("world"),rs.getInt("x1"),rs.getInt("y1"),rs.getInt("z1"),rs.getInt("x2"),rs.getInt("y2"),rs.getInt("z2"),rs.getString("target_server"),dest)); - } - } catch (SQLException e) { plugin.getLogger().warning("getAllPortals: " + e.getMessage()); } - return list; - } - - public boolean deletePortal(String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("DELETE FROM ts_portals WHERE name=?")) { - ps.setString(1, name); - return ps.executeUpdate() > 0; - } catch (SQLException e) { plugin.getLogger().warning("deletePortal: " + e.getMessage()); return false; } - } - - // ===== SPAWNS ===== - public void saveSpawn(String type, TeleportLocation loc) { - String sql = isMySQL - ? "INSERT INTO ts_spawns (type,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE world=?,x=?,y=?,z=?,yaw=?,pitch=?,server=?" - : "INSERT OR REPLACE INTO ts_spawns (type,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, type); ps.setString(2, loc.getWorld()); - ps.setDouble(3, loc.getX()); ps.setDouble(4, loc.getY()); ps.setDouble(5, loc.getZ()); - ps.setFloat(6, loc.getYaw()); ps.setFloat(7, loc.getPitch()); ps.setString(8, loc.getServer()); - if (isMySQL) { - ps.setString(9, loc.getWorld()); ps.setDouble(10, loc.getX()); ps.setDouble(11, loc.getY()); - ps.setDouble(12, loc.getZ()); ps.setFloat(13, loc.getYaw()); ps.setFloat(14, loc.getPitch()); - ps.setString(15, loc.getServer()); - } - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("saveSpawn: " + e.getMessage()); } - } - - public TeleportLocation getSpawn(String type) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT * FROM ts_spawns WHERE type=?")) { - ps.setString(1, type); - ResultSet rs = ps.executeQuery(); - if (rs.next()) return new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - } catch (SQLException e) { plugin.getLogger().warning("getSpawn: " + e.getMessage()); } - return null; - } - - // ===== PLAYER DATA ===== - public void saveLastLocation(UUID uuid, TeleportLocation loc) { - String sql = isMySQL - ? "INSERT INTO ts_player_data (uuid,last_world,last_x,last_y,last_z,last_yaw,last_pitch,last_server) VALUES(?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE last_world=?,last_x=?,last_y=?,last_z=?,last_yaw=?,last_pitch=?,last_server=?" - : "INSERT OR REPLACE INTO ts_player_data (uuid,last_world,last_x,last_y,last_z,last_yaw,last_pitch,last_server) VALUES(?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, uuid.toString()); ps.setString(2, loc.getWorld()); - ps.setDouble(3, loc.getX()); ps.setDouble(4, loc.getY()); ps.setDouble(5, loc.getZ()); - ps.setFloat(6, loc.getYaw()); ps.setFloat(7, loc.getPitch()); ps.setString(8, loc.getServer()); - if (isMySQL) { - ps.setString(9, loc.getWorld()); ps.setDouble(10, loc.getX()); ps.setDouble(11, loc.getY()); - ps.setDouble(12, loc.getZ()); ps.setFloat(13, loc.getYaw()); ps.setFloat(14, loc.getPitch()); - ps.setString(15, loc.getServer()); - } - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("saveLastLocation: " + e.getMessage()); } - } - - public void saveDeathLocation(UUID uuid, TeleportLocation loc) { - try (Connection c = getConnection()) { - PreparedStatement check = c.prepareStatement("SELECT uuid FROM ts_player_data WHERE uuid=?"); - check.setString(1, uuid.toString()); - ResultSet rs = check.executeQuery(); - String sql; - if (rs.next()) { - sql = "UPDATE ts_player_data SET death_world=?,death_x=?,death_y=?,death_z=?,death_yaw=?,death_pitch=?,death_server=? WHERE uuid=?"; - try (PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, loc.getWorld()); ps.setDouble(2, loc.getX()); ps.setDouble(3, loc.getY()); - ps.setDouble(4, loc.getZ()); ps.setFloat(5, loc.getYaw()); ps.setFloat(6, loc.getPitch()); - ps.setString(7, loc.getServer()); ps.setString(8, uuid.toString()); - ps.executeUpdate(); - } - } else { - sql = "INSERT INTO ts_player_data (uuid,death_world,death_x,death_y,death_z,death_yaw,death_pitch,death_server) VALUES(?,?,?,?,?,?,?,?)"; - try (PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, uuid.toString()); ps.setString(2, loc.getWorld()); - ps.setDouble(3, loc.getX()); ps.setDouble(4, loc.getY()); ps.setDouble(5, loc.getZ()); - ps.setFloat(6, loc.getYaw()); ps.setFloat(7, loc.getPitch()); ps.setString(8, loc.getServer()); - ps.executeUpdate(); - } - } - } catch (SQLException e) { plugin.getLogger().warning("saveDeathLocation: " + e.getMessage()); } - } - - public TeleportLocation getLastLocation(UUID uuid) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT last_world,last_x,last_y,last_z,last_yaw,last_pitch,last_server FROM ts_player_data WHERE uuid=?")) { - ps.setString(1, uuid.toString()); - ResultSet rs = ps.executeQuery(); - if (rs.next() && rs.getString("last_world") != null) - return new TeleportLocation(rs.getString("last_world"),rs.getDouble("last_x"),rs.getDouble("last_y"),rs.getDouble("last_z"),rs.getFloat("last_yaw"),rs.getFloat("last_pitch"),rs.getString("last_server")); - } catch (SQLException e) { plugin.getLogger().warning("getLastLocation: " + e.getMessage()); } - return null; - } - - public TeleportLocation getDeathLocation(UUID uuid) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT death_world,death_x,death_y,death_z,death_yaw,death_pitch,death_server FROM ts_player_data WHERE uuid=?")) { - ps.setString(1, uuid.toString()); - ResultSet rs = ps.executeQuery(); - if (rs.next() && rs.getString("death_world") != null) - return new TeleportLocation(rs.getString("death_world"),rs.getDouble("death_x"),rs.getDouble("death_y"),rs.getDouble("death_z"),rs.getFloat("death_yaw"),rs.getFloat("death_pitch"),rs.getString("death_server")); - } catch (SQLException e) { plugin.getLogger().warning("getDeathLocation: " + e.getMessage()); } - return null; - } - - public boolean isFirstJoin(UUID uuid) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT first_join FROM ts_player_data WHERE uuid=?")) { - ps.setString(1, uuid.toString()); - ResultSet rs = ps.executeQuery(); - if (rs.next()) return rs.getInt("first_join") == 1; - } catch (SQLException e) { plugin.getLogger().warning("isFirstJoin: " + e.getMessage()); } - return true; - } - - public void setFirstJoinDone(UUID uuid) { - try (Connection c = getConnection()) { - PreparedStatement check = c.prepareStatement("SELECT uuid FROM ts_player_data WHERE uuid=?"); - check.setString(1, uuid.toString()); - ResultSet rs = check.executeQuery(); - if (rs.next()) { - PreparedStatement ps = c.prepareStatement("UPDATE ts_player_data SET first_join=0 WHERE uuid=?"); - ps.setString(1, uuid.toString()); ps.executeUpdate(); - } else { - PreparedStatement ps = c.prepareStatement("INSERT INTO ts_player_data (uuid,first_join) VALUES(?,0)"); - ps.setString(1, uuid.toString()); ps.executeUpdate(); - } - } catch (SQLException e) { plugin.getLogger().warning("setFirstJoinDone: " + e.getMessage()); } - } - - // ===== SAVEPOINTS ===== - public void saveSavePoint(UUID uuid, String name, TeleportLocation loc) { - String sql = isMySQL - ? "INSERT INTO ts_savepoints (uuid,name,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE world=?,x=?,y=?,z=?,yaw=?,pitch=?,server=?" - : "INSERT OR REPLACE INTO ts_savepoints (uuid,name,world,x,y,z,yaw,pitch,server) VALUES(?,?,?,?,?,?,?,?,?)"; - try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql)) { - ps.setString(1, uuid.toString()); ps.setString(2, name); - ps.setString(3, loc.getWorld()); ps.setDouble(4, loc.getX()); ps.setDouble(5, loc.getY()); - ps.setDouble(6, loc.getZ()); ps.setFloat(7, loc.getYaw()); ps.setFloat(8, loc.getPitch()); - ps.setString(9, loc.getServer()); - if (isMySQL) { - ps.setString(10, loc.getWorld()); ps.setDouble(11, loc.getX()); ps.setDouble(12, loc.getY()); - ps.setDouble(13, loc.getZ()); ps.setFloat(14, loc.getYaw()); ps.setFloat(15, loc.getPitch()); - ps.setString(16, loc.getServer()); - } - ps.executeUpdate(); - } catch (SQLException e) { plugin.getLogger().warning("saveSavePoint: " + e.getMessage()); } - } - - public TeleportLocation getSavePoint(UUID uuid, String name) { - try (Connection c = getConnection(); - PreparedStatement ps = c.prepareStatement("SELECT * FROM ts_savepoints WHERE uuid=? AND name=?")) { - ps.setString(1, uuid.toString()); ps.setString(2, name); - ResultSet rs = ps.executeQuery(); - if (rs.next()) return new TeleportLocation(rs.getString("world"),rs.getDouble("x"),rs.getDouble("y"),rs.getDouble("z"),rs.getFloat("yaw"),rs.getFloat("pitch"),rs.getString("server")); - } catch (SQLException e) { plugin.getLogger().warning("getSavePoint: " + e.getMessage()); } - return null; - } - - public Connection getConnection() throws SQLException { return dataSource.getConnection(); } - public void disconnect() { if (dataSource != null && !dataSource.isClosed()) dataSource.close(); } - public boolean isMySQL() { return isMySQL; } -}