package me.maker56.survivalgames.database.sql;
import org.bukkit.configuration.file.FileConfiguration;
import me.maker56.survivalgames.SurvivalGames;
public class DatabaseManager {
protected static boolean run = true;
private static DatabaseThread thread = null;
public static final String tablePrefix = SurvivalGames.instance.getConfig().getString("SQL.TablePrefix");
public static void open() {
FileConfiguration config = SurvivalGames.instance.getConfig();
String type = config.getString("SQL.Type").toUpperCase();
if(type == null) {
System.out.println("[SurvivalGames] Can't parse playerdata database type. Using SQLITE");
type = "SQLITE";
}
open(type);
}
protected static void open(String type) {
DatabaseCore core = null;
if(type.equals("SQLITE")) {
core = new SQLite(SurvivalGames.instance.getDataFolder().getPath());
} else if(type.equals("MYSQL")) {
FileConfiguration config = SurvivalGames.instance.getConfig();
core = new MySQL(config.getString("SQL.MySQL.Host"), config.getInt("SQL.MySQL.Port"),
config.getString("SQL.MySQL.Database"), config.getString("SQL.MySQL.Username"),
config.getString("SQL.MySQL.Password"));
} else {
System.out.println("[SurvivalGames] Can't parse playerdata database type \"" + type + "\". Using SQLITE");
open("SQLITE");
return;
}
thread = new DatabaseThread(core);
thread.start();
}
public static void close() {
run = false;
thread = null;
}
// OTHER STUFF
public static void load() {
DatabaseThread.addTask(new DatabaseTask("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "players` (" +
" `uuid` varchar(36) NOT NULL," +
" `lastname` varchar(16) NOT NULL," +
" `kills` int(100) default '0'," +
" `deaths` int(100) default '0'," +
" `kdr` float default '0'," +
" `wins` int(100) default '0'," +
" `played` int(100) default '0'," +
" `points` int(100) default '0');"));
DatabaseThread.addTask(new DatabaseTask("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "games` (" +
" `id` bigint(20)," +
" `arena` varchar(100) NOT NULL," +
" `duration` int(100)," +
" `end` datetime," +
" `players` int(100)," +
" `winner` varchar(36)," +
" PRIMARY KEY (`id`) );"));
DatabaseThread.addTask(new DatabaseTask("CREATE TABLE IF NOT EXISTS `" + tablePrefix + "kills` (" +
" `player` varchar(36) NOT NULL," +
" `victim` varchar(36) NOT NULL," +
" `health` int(100)," +
" `time` datetime);"));
}
public static String getTablePrefix() {
return tablePrefix;
}
}