Upload folder via GUI - src

This commit is contained in:
Git Manager GUI
2026-05-31 12:52:00 +02:00
parent 3cce4477cb
commit 99a326ce2e
3 changed files with 47 additions and 28 deletions

View File

@@ -131,20 +131,25 @@ public class DatabaseManager {
// ===== 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());
try (Connection c = getConnection()) {
boolean exists;
try (PreparedStatement check = c.prepareStatement("SELECT 1 FROM ts_warps WHERE name=?")) {
check.setString(1, name);
exists = check.executeQuery().next();
}
String sql = exists
? "UPDATE ts_warps SET world=?,x=?,y=?,z=?,yaw=?,pitch=?,server=?,creator=?,permission=? WHERE name=?"
: "INSERT INTO ts_warps (world,x,y,z,yaw,pitch,server,creator,permission,name) VALUES(?,?,?,?,?,?,?,?,?,?)";
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, creator != null ? creator.toString() : null);
ps.setString(9, permission);
ps.setString(10, name);
ps.executeUpdate();
}
ps.executeUpdate();
} catch (SQLException e) { plugin.getLogger().warning("saveWarp: " + e.getMessage()); }
}
@@ -250,19 +255,23 @@ public class DatabaseManager {
// ===== 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());
try (Connection c = getConnection()) {
// Check if row exists
boolean exists;
try (PreparedStatement check = c.prepareStatement("SELECT 1 FROM ts_player_data WHERE uuid=?")) {
check.setString(1, uuid.toString());
exists = check.executeQuery().next();
}
String sql = exists
? "UPDATE ts_player_data SET last_world=?,last_x=?,last_y=?,last_z=?,last_yaw=?,last_pitch=?,last_server=? WHERE uuid=?"
: "INSERT INTO ts_player_data (last_world,last_x,last_y,last_z,last_yaw,last_pitch,last_server,uuid) VALUES(?,?,?,?,?,?,?,?)";
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();
}
ps.executeUpdate();
} catch (SQLException e) { plugin.getLogger().warning("saveLastLocation: " + e.getMessage()); }
}

View File

@@ -11,8 +11,14 @@ public class WarpManager {
public WarpManager(TeleportSuite plugin) { this.plugin = plugin; }
public void setWarp(Player player, String name, String permission) {
TeleportLocation loc = new TeleportLocation(player.getLocation(), plugin.getConfigManager().getServerName());
// Snapshot the location at the exact moment /setwarp is called
TeleportLocation loc = new TeleportLocation(
player.getLocation().clone(),
plugin.getConfigManager().getServerName());
plugin.getDatabaseManager().saveWarp(name, loc, player.getUniqueId(), permission);
plugin.getLogger().info("Warp '" + name + "' gesetzt: "
+ loc.getWorld() + " " + loc.getX() + "/" + loc.getY() + "/" + loc.getZ()
+ " von " + player.getName());
player.sendMessage(plugin.getConfigManager().getMessage("warp-set", "name", name));
}
@@ -26,7 +32,11 @@ public class WarpManager {
player.sendMessage(plugin.getConfigManager().getMessage("no-permission"));
return;
}
plugin.getTeleportManager().teleport(player, warp.getLocation());
TeleportLocation dest = warp.getLocation();
plugin.getLogger().info("Warp '" + name + "' geladen: "
+ dest.getWorld() + " " + dest.getX() + "/" + dest.getY() + "/" + dest.getZ()
+ " -> Spieler " + player.getName());
plugin.getTeleportManager().teleport(player, dest);
}
public boolean deleteWarp(String name) {

View File

@@ -1,5 +1,5 @@
name: TeleportSuite
version: 1.0.3
version: 1.0.4
main: de.teleportsuite.TeleportSuite
api-version: 1.20
description: BungeeCord-fähiges Teleport-Komplettpaket