2020-12-03 01:36:57 -05:00
|
|
|
package me.totalfreedom.tfguilds.sql;
|
|
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
import java.sql.DriverManager;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import me.totalfreedom.tfguilds.TFGuilds;
|
2021-05-22 14:26:48 +10:00
|
|
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
|
|
|
import org.bukkit.Bukkit;
|
2020-12-03 01:36:57 -05:00
|
|
|
|
|
|
|
public class SQLDatabase
|
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
|
2021-04-05 22:26:29 +10:00
|
|
|
private Connection connection;
|
2020-12-03 01:36:57 -05:00
|
|
|
|
2021-05-22 14:26:48 +10:00
|
|
|
public SQLDatabase(TFGuilds plugin)
|
2020-12-03 01:36:57 -05:00
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
String password = ConfigEntry.MYSQL_PASSWORD.getString();
|
|
|
|
if (password == null)
|
2020-12-03 01:36:57 -05:00
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
password = "";
|
2020-12-03 01:36:57 -05:00
|
|
|
}
|
|
|
|
try
|
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
Bukkit.getLogger().info(ConfigEntry.MYSQL_USERNAME.getString());
|
|
|
|
connection = DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s",
|
|
|
|
ConfigEntry.MYSQL_HOST.getString(),
|
|
|
|
ConfigEntry.MYSQL_PORT.getInteger(),
|
|
|
|
ConfigEntry.MYSQL_DATABASE.getString()),
|
|
|
|
ConfigEntry.MYSQL_USERNAME.getString(),
|
|
|
|
password);
|
2021-04-05 22:26:29 +10:00
|
|
|
createTables();
|
2021-05-22 14:26:48 +10:00
|
|
|
plugin.getLogger().info("Connection to the MySQL server established!");
|
2020-12-03 01:36:57 -05:00
|
|
|
}
|
|
|
|
catch (SQLException ex)
|
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
plugin.getLogger().severe("Could not connect to MySQL server!");
|
2020-12-03 01:36:57 -05:00
|
|
|
}
|
2021-04-05 22:26:29 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
public Connection getConnection()
|
|
|
|
{
|
|
|
|
return connection;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void createTables() throws SQLException
|
|
|
|
{
|
2021-05-22 14:26:48 +10:00
|
|
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `users` (" +
|
|
|
|
"`uuid` TEXT," +
|
|
|
|
"`id` INT," +
|
|
|
|
"`tag` BOOLEAN)")
|
|
|
|
.execute();
|
|
|
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `warps` (" +
|
|
|
|
"`guild_id` TEXT," +
|
|
|
|
"`name` TEXT," +
|
|
|
|
"`x` DOUBLE," +
|
|
|
|
"`y` DOUBLE," +
|
|
|
|
"`z` DOUBLE," +
|
|
|
|
"`world` TEXT)")
|
|
|
|
.execute();
|
|
|
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `guilds` (" +
|
|
|
|
"`id` TEXT," +
|
|
|
|
"`name` TEXT," +
|
|
|
|
"`owner` INT," +
|
|
|
|
"`moderators` TEXT," +
|
|
|
|
"`members` TEXT," +
|
|
|
|
"`tag` TEXT," +
|
|
|
|
"`default_rank` TEXT," +
|
|
|
|
"`state` INT," +
|
|
|
|
"`motd` TEXT," +
|
|
|
|
"`x` DOUBLE," +
|
|
|
|
"`y` DOUBLE," +
|
|
|
|
"`z` DOUBLE," +
|
|
|
|
"`world` TEXT," +
|
|
|
|
"`creation` LONG)")
|
|
|
|
.execute();
|
|
|
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `ranks` (" +
|
|
|
|
"`guild_id` TEXT," +
|
|
|
|
"`name` TEXT," +
|
|
|
|
"`members` TEXT)")
|
|
|
|
.execute();
|
2020-12-03 01:36:57 -05:00
|
|
|
}
|
2021-05-22 14:26:48 +10:00
|
|
|
}
|