made some fixes after testing
This commit is contained in:
parent
e06ee55259
commit
34d3a59182
1 changed files with 32 additions and 31 deletions
|
@ -2,6 +2,7 @@ package net.benjidial.nswp;
|
|||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
|
@ -23,6 +24,14 @@ public class Database {
|
|||
return player.getUniqueId().toString().replaceAll("-", "");
|
||||
}
|
||||
|
||||
static OfflinePlayer idToPlayer(String id) {
|
||||
return Bukkit.getOfflinePlayer(UUID.fromString(
|
||||
id.substring( 0, 8) + "-" + id.substring( 8, 12) + "-" +
|
||||
id.substring(12, 16) + "-" + id.substring(16, 20) + "-" +
|
||||
id.substring(20, 32)
|
||||
));
|
||||
}
|
||||
|
||||
static String waypointTableName(Player player) {
|
||||
return "waypoints_" + playerID(player);
|
||||
}
|
||||
|
@ -124,9 +133,6 @@ public class Database {
|
|||
}
|
||||
|
||||
public static void addWaypoint(Player player, Waypoint waypoint) throws SQLException {
|
||||
if (lookupWaypoint(player, waypoint.name) != null)
|
||||
player.sendMessage("There is already a waypoint with that name.");
|
||||
else {
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"INSERT INTO " + waypointTableName(player) + "(name, world, x, y, z, pitch, yaw) " +
|
||||
"VALUES(?, ?, ?, ?, ?, ?, ?)"
|
||||
|
@ -139,8 +145,6 @@ public class Database {
|
|||
statement.setDouble(6, waypoint.location.getPitch());
|
||||
statement.setDouble(7, waypoint.location.getYaw());
|
||||
statement.executeUpdate();
|
||||
player.sendMessage("Waypoint added.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void deleteWaypoint(Player player, String name) throws SQLException {
|
||||
|
@ -148,17 +152,14 @@ public class Database {
|
|||
"DELETE FROM " + waypointTableName(player) + " WHERE name = ?"
|
||||
);
|
||||
statement.setString(1, name);
|
||||
if (statement.executeUpdate() == 0)
|
||||
player.sendMessage("No waypoint with that name.");
|
||||
else
|
||||
player.sendMessage("Waypoint deleted.");
|
||||
statement.executeUpdate();
|
||||
}
|
||||
|
||||
public static void createTPATable() throws SQLException {
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"CREATE TABLE IF NOT EXISTS tpa_allowed (" +
|
||||
"from TEXT NOT NULL, " +
|
||||
"to TEXT NOT NULL" +
|
||||
"from_id TEXT NOT NULL, " +
|
||||
"to_id TEXT NOT NULL" +
|
||||
")"
|
||||
);
|
||||
statement.executeUpdate();
|
||||
|
@ -166,7 +167,7 @@ public class Database {
|
|||
|
||||
public static boolean isTPAAllowed(Player from, Player to) throws SQLException {
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"SELECT * FROM tpa_allowed WHERE from = ? AND to = ?"
|
||||
"SELECT * FROM tpa_allowed WHERE from_id = ? AND to_id = ?"
|
||||
);
|
||||
statement.setString(1, playerID(from));
|
||||
statement.setString(2, playerID(to));
|
||||
|
@ -176,7 +177,7 @@ public class Database {
|
|||
|
||||
public static void allowTPA(Player from, Player to) throws SQLException {
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"INSERT INTO tpa_allowed(from, to) VALUES(?, ?)"
|
||||
"INSERT INTO tpa_allowed(from_id, to_id) VALUES(?, ?)"
|
||||
);
|
||||
statement.setString(1, playerID(from));
|
||||
statement.setString(2, playerID(to));
|
||||
|
@ -187,7 +188,7 @@ public class Database {
|
|||
//this is kinda scrungled but i think it should work.
|
||||
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"SELECT * FROM tpa_allowed WHERE to = ?"
|
||||
"SELECT * FROM tpa_allowed WHERE to_id = ?"
|
||||
);
|
||||
statement.setString(1, playerID(to));
|
||||
ResultSet table = statement.executeQuery();
|
||||
|
@ -195,11 +196,11 @@ public class Database {
|
|||
int removed = 0;
|
||||
|
||||
while (table.next()) {
|
||||
String fromID = table.getString("from");
|
||||
String fromID = table.getString("from_id");
|
||||
|
||||
if (Bukkit.getOfflinePlayer(UUID.fromString(fromID)).getName() == fromName) {
|
||||
if (idToPlayer(fromID).getName().equals(fromName)) {
|
||||
PreparedStatement deleteStatement = connection.prepareStatement(
|
||||
"DELETE FROM tpa_allowed WHERE from = ? AND to = ?"
|
||||
"DELETE FROM tpa_allowed WHERE from_id = ? AND to_id = ?"
|
||||
);
|
||||
deleteStatement.setString(1, fromID);
|
||||
deleteStatement.setString(2, playerID(to));
|
||||
|
@ -225,14 +226,14 @@ public class Database {
|
|||
public static ArrayList<String> getTPAAllowedTo(Player to) throws SQLException {
|
||||
|
||||
PreparedStatement statement = connection.prepareStatement(
|
||||
"SELECT * FROM tpa_allowed WHERE to = ?"
|
||||
"SELECT * FROM tpa_allowed WHERE to_id = ?"
|
||||
);
|
||||
statement.setString(1, playerID(to));
|
||||
ResultSet table = statement.executeQuery();
|
||||
|
||||
ArrayList<String> results = new ArrayList<>();
|
||||
while (table.next()) {
|
||||
String name = Bukkit.getOfflinePlayer(UUID.fromString(table.getString("from"))).getName();
|
||||
String name = idToPlayer(table.getString("from_id")).getName();
|
||||
//there is no way to disallow a player whose name is not know. but, to allow a player,
|
||||
//they have to be online, and so their name should be known.
|
||||
if (name != null)
|
||||
|
|
Loading…
Add table
Reference in a new issue