mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 07:06:44 +01:00
Added database command
This commit is contained in:
parent
0017b73bdb
commit
8f8fa01389
@ -22,7 +22,6 @@
|
|||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
@ -114,8 +113,6 @@ public class Plot implements Cloneable {
|
|||||||
* @param plotBiome
|
* @param plotBiome
|
||||||
* @param helpers
|
* @param helpers
|
||||||
* @param denied
|
* @param denied
|
||||||
* @param changeTime
|
|
||||||
* @param time
|
|
||||||
* @param merged
|
* @param merged
|
||||||
*/
|
*/
|
||||||
public Plot(final PlotId id, final UUID owner, final Biome plotBiome, final ArrayList<UUID> helpers, final ArrayList<UUID> trusted, final ArrayList<UUID> denied, final String alias, final PlotHomePosition position, final Flag[] flags, final String world, final boolean[] merged) {
|
public Plot(final PlotId id, final UUID owner, final Biome plotBiome, final ArrayList<UUID> helpers, final ArrayList<UUID> trusted, final ArrayList<UUID> denied, final String alias, final PlotHomePosition position, final Flag[] flags, final String world, final boolean[] merged) {
|
||||||
|
@ -1252,15 +1252,15 @@ public class PlotMain extends JavaPlugin {
|
|||||||
return plots;
|
return plots;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setAllPlotsRaw(final LinkedHashMap<String, HashMap<PlotId, Plot>> plots) {
|
||||||
|
PlotMain.plots = plots;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setAllPlotsRaw(final HashMap<String, HashMap<PlotId, Plot>> plots) {
|
public static void setAllPlotsRaw(final HashMap<String, HashMap<PlotId, Plot>> plots) {
|
||||||
PlotMain.plots = new LinkedHashMap<>(plots);
|
PlotMain.plots = new LinkedHashMap<>(plots);
|
||||||
// PlotMain.plots.putAll(plots);
|
// PlotMain.plots.putAll(plots);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setAllPlotsRaw(final LinkedHashMap<String, HashMap<PlotId, Plot>> plots) {
|
|
||||||
PlotMain.plots = plots;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* !!WorldGeneration!!
|
* !!WorldGeneration!!
|
||||||
*/
|
*/
|
||||||
@ -1345,7 +1345,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
if (Settings.DB.USE_MYSQL) {
|
if (Settings.DB.USE_MYSQL) {
|
||||||
// TODO: Remake SQLManager
|
// TODO: Remake SQLManager
|
||||||
if (DBFunc.dbManager == null) {
|
if (DBFunc.dbManager == null) {
|
||||||
DBFunc.dbManager = new SQLManager();
|
DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
mySQL = new MySQL(this, Settings.DB.HOST_NAME, Settings.DB.PORT, Settings.DB.DATABASE, Settings.DB.USER, Settings.DB.PASSWORD);
|
mySQL = new MySQL(this, Settings.DB.HOST_NAME, Settings.DB.PORT, Settings.DB.DATABASE, Settings.DB.USER, Settings.DB.PASSWORD);
|
||||||
@ -1385,7 +1385,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
// DBFunc.dbManager = new MongoManager();
|
// DBFunc.dbManager = new MongoManager();
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "MongoDB is not yet implemented");
|
sendConsoleSenderMessage(C.PREFIX.s() + "MongoDB is not yet implemented");
|
||||||
} else if (Settings.DB.USE_SQLITE) {
|
} else if (Settings.DB.USE_SQLITE) {
|
||||||
DBFunc.dbManager = new SQLManager();
|
DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
|
||||||
try {
|
try {
|
||||||
connection = new SQLite(this, Settings.DB.SQLITE_DB + ".db").openConnection();
|
connection = new SQLite(this, Settings.DB.SQLITE_DB + ".db").openConnection();
|
||||||
{
|
{
|
||||||
|
@ -131,6 +131,7 @@ public enum Command {
|
|||||||
DEOP("deop", "deadmin"),
|
DEOP("deop", "deadmin"),
|
||||||
BAN("ban", "block"),
|
BAN("ban", "block"),
|
||||||
UNBAN("unban", "unblock"),
|
UNBAN("unban", "unblock"),
|
||||||
|
DATABASE("database", "convert"),
|
||||||
TP("tp", "tp");
|
TP("tp", "tp");
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,163 @@
|
|||||||
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
|
import com.intellectualcrafters.plot.Plot;
|
||||||
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import com.intellectualcrafters.plot.StringComparsion;
|
||||||
|
import com.intellectualcrafters.plot.database.MySQL;
|
||||||
|
import com.intellectualcrafters.plot.database.SQLManager;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created 2014-11-15 for PlotSquared
|
||||||
|
*
|
||||||
|
* @author Citymonstret
|
||||||
|
*/
|
||||||
|
public class Database extends SubCommand {
|
||||||
|
|
||||||
|
final String[] tables = new String[]{
|
||||||
|
"plot_trusted", "plot_ratings", "plot_comments"
|
||||||
|
};
|
||||||
|
|
||||||
|
public Database() {
|
||||||
|
super(Command.DATABASE, "Convert/Backup Storage", "database [type] [...details]", CommandCategory.DEBUG, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean sendMessageU(UUID uuid, String msg) {
|
||||||
|
if (uuid == null) {
|
||||||
|
PlotMain.sendConsoleSenderMessage(msg);
|
||||||
|
} else {
|
||||||
|
Player p = Bukkit.getPlayer(uuid);
|
||||||
|
if (p != null && p.isOnline())
|
||||||
|
return PlayerFunctions.sendMessage(p, msg);
|
||||||
|
else
|
||||||
|
return sendMessageU(null, msg);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void insertPlots(final SQLManager manager, final UUID requester, final Connection c) {
|
||||||
|
Plugin p = PlotMain.getPlugin(PlotMain.class);
|
||||||
|
final java.util.Set<Plot> plots = PlotMain.getPlots();
|
||||||
|
p.getServer().getScheduler().runTaskAsynchronously(p, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
ArrayList<Plot> ps = new ArrayList<>();
|
||||||
|
for (Plot p : plots)
|
||||||
|
ps.add(p);
|
||||||
|
manager.createPlots(ps);
|
||||||
|
manager.createAllSettingsAndHelpers(ps);
|
||||||
|
sendMessageU(requester, "&6Database conversion finished");
|
||||||
|
} catch (Exception e) {
|
||||||
|
sendMessageU(requester, "Failed to insert plot objects, see stacktrace for info");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
c.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(Player plr, String... args) {
|
||||||
|
if (args.length < 1) {
|
||||||
|
return sendMessage(plr, "/plot database [sqlite/mysql]");
|
||||||
|
}
|
||||||
|
String type = new StringComparsion(args[0], new String[]{"mysql", "sqlite"}).getBestMatch().toLowerCase();
|
||||||
|
switch (type) {
|
||||||
|
case "MYSQL":
|
||||||
|
if (args.length < 6) {
|
||||||
|
return sendMessage(plr, "/plot database mysql [host] [port] [username] [password] [database] {prefix}");
|
||||||
|
}
|
||||||
|
String host =
|
||||||
|
args[1];
|
||||||
|
String port =
|
||||||
|
args[2];
|
||||||
|
String username =
|
||||||
|
args[3];
|
||||||
|
String password =
|
||||||
|
args[4];
|
||||||
|
String database =
|
||||||
|
args[5];
|
||||||
|
String prefix =
|
||||||
|
"";
|
||||||
|
if (args.length > 6) {
|
||||||
|
prefix = args[6];
|
||||||
|
}
|
||||||
|
Connection n;
|
||||||
|
try {
|
||||||
|
n = new MySQL(
|
||||||
|
PlotMain.getPlugin(PlotMain.class),
|
||||||
|
host,
|
||||||
|
port,
|
||||||
|
database,
|
||||||
|
username,
|
||||||
|
password
|
||||||
|
).openConnection();
|
||||||
|
// Connection
|
||||||
|
if (n.isClosed()) {
|
||||||
|
return sendMessage(plr, "Failed to open connection");
|
||||||
|
}
|
||||||
|
} catch (SQLException | ClassNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return sendMessage(plr, "Failed to open connection, read stacktrace for info");
|
||||||
|
}
|
||||||
|
SQLManager manager = new SQLManager(n, prefix);
|
||||||
|
try {
|
||||||
|
final DatabaseMetaData meta = n.getMetaData();
|
||||||
|
ResultSet set = meta.getTables(null, null, prefix + "plot", null);
|
||||||
|
if (!set.next()) {
|
||||||
|
manager.createTables("mysql", true);
|
||||||
|
} else {
|
||||||
|
for (String s : tables) {
|
||||||
|
set = meta.getTables(null, null, prefix + s, null);
|
||||||
|
if (!set.next()) {
|
||||||
|
manager.createTables("mysql", false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return sendMessage(plr, "Could not create the required tables and/or load the database") &&
|
||||||
|
sendMessage(plr, "Please see the stacktrace for more information");
|
||||||
|
}
|
||||||
|
UUID requester = null;
|
||||||
|
if (plr != null) {
|
||||||
|
requester = plr.getUniqueId();
|
||||||
|
}
|
||||||
|
insertPlots(manager, requester, n);
|
||||||
|
break;
|
||||||
|
case "SQLITE":
|
||||||
|
if (args.length < 2) {
|
||||||
|
return sendMessage(plr, "/plot database sqlite [file name]");
|
||||||
|
}
|
||||||
|
sendMessage(plr, "This is not supported yet");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return sendMessage(plr, "Unknown database type");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean sendMessage(Player player, String msg) {
|
||||||
|
if (player == null) {
|
||||||
|
PlotMain.sendConsoleSenderMessage(msg);
|
||||||
|
} else {
|
||||||
|
PlayerFunctions.sendMessage(player, msg);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -46,7 +46,27 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
public static final String
|
public static final String
|
||||||
MAIN_PERMISSION = "plots.use";
|
MAIN_PERMISSION = "plots.use";
|
||||||
|
|
||||||
private static SubCommand[] _subCommands = new SubCommand[]{new Ban(), new Unban(), new OP(), new DEOP(), new Claim(), new Paste(), new Copy(), new Clipboard(), new Auto(), new Home(), new Visit(), new TP(), new Set(), new Clear(), new Delete(), new SetOwner(), new Denied(), new Helpers(), new Trusted(), new Info(), new list(), new Help(), new Debug(), new Schematic(), new plugin(), new Inventory(), new Purge(), new Reload(), new Merge(), new Unlink(), new Kick(), new Setup(), new DebugClaimTest(), new Inbox(), new Comment(), new Swap(), new MusicSubcommand()};
|
private static SubCommand[] _subCommands =
|
||||||
|
new SubCommand[]{
|
||||||
|
new Ban(), new Unban(),
|
||||||
|
new OP(), new DEOP(),
|
||||||
|
new Claim(), new Paste(),
|
||||||
|
new Copy(), new Clipboard(),
|
||||||
|
new Auto(), new Home(),
|
||||||
|
new Visit(), new TP(),
|
||||||
|
new Set(), new Clear(),
|
||||||
|
new Delete(), new SetOwner(),
|
||||||
|
new Denied(), new Helpers(),
|
||||||
|
new Trusted(), new Info(),
|
||||||
|
new list(), new Help(),
|
||||||
|
new Debug(), new Schematic(),
|
||||||
|
new plugin(), new Inventory(),
|
||||||
|
new Purge(), new Reload(),
|
||||||
|
new Merge(), new Unlink(),
|
||||||
|
new Kick(), new Setup(),
|
||||||
|
new DebugClaimTest(), new Inbox(),
|
||||||
|
new Comment(), new Database(),
|
||||||
|
new Swap(), new MusicSubcommand()};
|
||||||
|
|
||||||
public static ArrayList<SubCommand> subCommands = new ArrayList<SubCommand>() {
|
public static ArrayList<SubCommand> subCommands = new ArrayList<SubCommand>() {
|
||||||
{
|
{
|
||||||
|
@ -24,6 +24,7 @@ package com.intellectualcrafters.plot.commands;
|
|||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "deprecated", "javadoc"})
|
@SuppressWarnings({"unused", "deprecated", "javadoc"})
|
||||||
@ -74,12 +75,17 @@ public class Rate extends SubCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// TODO implement check for already rated
|
// TODO implement check for already rated
|
||||||
final boolean rated = false;
|
boolean rated = true;
|
||||||
|
try {
|
||||||
|
DBFunc.getRatings(plot);
|
||||||
|
} catch (Exception e) {
|
||||||
|
rated = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (rated) {
|
if (rated) {
|
||||||
sendMessage(plr, C.RATING_ALREADY_EXISTS, plot.getId().toString());
|
sendMessage(plr, C.RATING_ALREADY_EXISTS, plot.getId().toString());
|
||||||
}
|
}
|
||||||
// TODO actually do something...
|
boolean success = true;
|
||||||
final boolean success = false;
|
|
||||||
if (success) {
|
if (success) {
|
||||||
sendMessage(plr, C.RATING_APPLIED, plot.getId().toString());
|
sendMessage(plr, C.RATING_APPLIED, plot.getId().toString());
|
||||||
} else {
|
} else {
|
||||||
|
@ -40,6 +40,10 @@ public class DBFunc {
|
|||||||
public static AbstractDB dbManager;
|
public static AbstractDB dbManager;
|
||||||
|
|
||||||
// TODO MongoDB @Brandon
|
// TODO MongoDB @Brandon
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static UUID everyone = UUID.fromString("1-1-3-3-7");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Plot owner
|
* Set Plot owner
|
||||||
@ -101,10 +105,6 @@ public class DBFunc {
|
|||||||
dbManager.createPlotSettings(id, plot);
|
dbManager.createPlotSettings(id, plot);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getId(final String world, final PlotId id2) {
|
|
||||||
return dbManager.getId(world, id2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a plot id
|
* Get a plot id
|
||||||
*
|
*
|
||||||
@ -121,6 +121,9 @@ public class DBFunc {
|
|||||||
* catch(SQLException e) { e.printStackTrace(); } return Integer.MAX_VALUE;
|
* catch(SQLException e) { e.printStackTrace(); } return Integer.MAX_VALUE;
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
|
public static int getId(final String world, final PlotId id2) {
|
||||||
|
return dbManager.getId(world, id2);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
@ -169,11 +172,6 @@ public class DBFunc {
|
|||||||
return dbManager.getSettings(id);
|
return dbManager.getSettings(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static UUID everyone = UUID.fromString("1-1-3-3-7");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot
|
||||||
* @param comment
|
* @param comment
|
||||||
@ -192,7 +190,6 @@ public class DBFunc {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot
|
||||||
* @param comment
|
|
||||||
*/
|
*/
|
||||||
public static ArrayList<PlotComment> getCommenst(final String world, final Plot plot, final int tier) {
|
public static ArrayList<PlotComment> getCommenst(final String world, final Plot plot, final int tier) {
|
||||||
return dbManager.getComments(world, plot, tier);
|
return dbManager.getComments(world, plot, tier);
|
||||||
|
@ -21,49 +21,42 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
import static com.intellectualcrafters.plot.PlotMain.connection;
|
import com.intellectualcrafters.plot.*;
|
||||||
import static com.intellectualcrafters.plot.Settings.DB.PREFIX;
|
import com.intellectualcrafters.plot.Logger.LogLevel;
|
||||||
|
|
||||||
import java.sql.DatabaseMetaData;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.Flag;
|
import java.sql.*;
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
import java.util.*;
|
||||||
import com.intellectualcrafters.plot.Logger;
|
|
||||||
import com.intellectualcrafters.plot.Logger.LogLevel;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotComment;
|
|
||||||
import com.intellectualcrafters.plot.PlotHomePosition;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
*/
|
*/
|
||||||
public class SQLManager extends AbstractDB {
|
public class SQLManager extends AbstractDB {
|
||||||
|
|
||||||
// TODO MongoDB @Brandon
|
private static Connection connection;
|
||||||
|
private static String PREFIX;
|
||||||
|
public static final String SET_OWNER =
|
||||||
|
"UPDATE `" + PREFIX + "plot` SET `owner` = ? WHERE `plot_id_x` = ? AND `plot_id_z` = ?";
|
||||||
|
|
||||||
public static final String SET_OWNER = "UPDATE `" + PREFIX + "plot` SET `owner` = ? WHERE `plot_id_x` = ? AND `plot_id_z` = ?";
|
// TODO MongoDB @Brandon
|
||||||
public static final String GET_ALL_PLOTS = "SELECT `id`, `plot_id_x`, `plot_id_z`, `world` FROM `" + PREFIX + "plot`";
|
public static final String GET_ALL_PLOTS =
|
||||||
public static final String CREATE_PLOTS = "INSERT INTO `" + PREFIX + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) values ";
|
"SELECT `id`, `plot_id_x`, `plot_id_z`, `world` FROM `" + PREFIX + "plot`";
|
||||||
public static final String CREATE_SETTINGS = "INSERT INTO `" + PREFIX + "plot_settings` (`plot_plot_id`) values ";
|
public static final String CREATE_PLOTS =
|
||||||
public static final String CREATE_HELPERS = "INSERT INTO `" + PREFIX + "plot_helpers` (`plot_plot_id`, `user_uuid`) values ";
|
"INSERT INTO `" + PREFIX + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) values ";
|
||||||
public static final String CREATE_PLOT = "INSERT INTO `" + PREFIX + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) VALUES(?, ?, ?, ?)";
|
public static final String CREATE_SETTINGS =
|
||||||
|
"INSERT INTO `" + PREFIX + "plot_settings` (`plot_plot_id`) values ";
|
||||||
|
public static final String CREATE_HELPERS =
|
||||||
|
"INSERT INTO `" + PREFIX + "plot_helpers` (`plot_plot_id`, `user_uuid`) values ";
|
||||||
|
public static final String CREATE_PLOT =
|
||||||
|
"INSERT INTO `" + PREFIX + "plot`(`plot_id_x`, `plot_id_z`, `owner`, `world`) VALUES(?, ?, ?, ?)";
|
||||||
|
|
||||||
|
public SQLManager(Connection c, String p) {
|
||||||
|
connection = c;
|
||||||
|
PREFIX = p;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Plot owner
|
* Set Plot owner
|
||||||
@ -567,7 +560,7 @@ public class SQLManager extends AbstractDB {
|
|||||||
if (element.contains(":")) {
|
if (element.contains(":")) {
|
||||||
final String[] split = element.split(":");
|
final String[] split = element.split(":");
|
||||||
try {
|
try {
|
||||||
flags.add(new Flag(FlagManager.getFlag(split[0], true), split[1].replaceAll("\u00AF", ":").replaceAll("´", ",")));
|
flags.add(new Flag(FlagManager.getFlag(split[0], true), split[1].replaceAll("\u00AF", ":").replaceAll("<EFBFBD>", ",")));
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
exception = true;
|
exception = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user