Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.lairon.xclans.data;
- import com.lairon.xclans.clan.Clan;
- import com.lairon.xclans.settings.DataProviderSettings;
- import java.lang.reflect.InvocationTargetException;
- import java.sql.*;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- public class DataProvider {
- private Connection connection;
- private ClanFactory clanFactory = new ClanFactory();
- public DataProvider(DataProviderSettings settings) throws ClassNotFoundException, SQLException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
- if (settings.isMySqlEnabled()) {
- Class.forName("com.mysql.jdbc.Driver").getDeclaredConstructor().newInstance();
- connection = DriverManager.getConnection("jdbc:mysql://" + settings.getIp() + "/" + settings.getDbName() + "?autoReconnect=true&useSSL=false", settings.getUserName(), settings.getPassword());
- } else {
- Class.forName("org.sqlite.JDBC");
- connection = DriverManager.getConnection("jdbc:sqlite:plugins/XClans/ClansData.db");
- }
- Statement statement = connection.createStatement();
- statement.execute("""
- CREATE TABLE IF NOT EXISTS `Clans` (
- `ID` VARCHAR(43) NOT NULL,
- `Owner` VARCHAR(45) NOT NULL,
- `Members` LONGTEXT NULL DEFAULT NULL,
- `Moderators` LONGTEXT NULL DEFAULT NULL,
- `WelcomeMessage` LONGTEXT NULL DEFAULT NULL,
- `Balance` INT NULL DEFAULT 0,
- `Exp` INT NULL DEFAULT 0,
- `Date` DATETIME NULL DEFAULT NULL,
- `Color` VARCHAR(2) NULL DEFAULT NULL,
- `Home` VARCHAR(45) NULL DEFAULT NULL,
- `OpenHome` TINYINT NULL DEFAULT 0,
- `Level` INT NULL DEFAULT 0,
- `Pvp` TINYINT NULL DEFAULT 0,
- `Alliances` VARCHAR(45) NULL DEFAULT NULL,
- PRIMARY KEY (`ID`))
- """);
- statement.close();
- }
- public Clan[] loadAllClans() throws SQLException {
- ArrayList<Clan> clans = new ArrayList<>();
- String sql = "SELECT * FROM Clans;";
- Statement statement = connection.createStatement();
- ResultSet resultSet = statement.executeQuery(sql);
- while (resultSet.next()) {
- Clan clan = clanFactory.createClanInstanceByResultSet(resultSet);
- clans.add(clan);
- }
- return clans.toArray(new Clan[]{});
- }
- public void saveClan(Clan clan) throws SQLException {
- String sql = """
- INSERT INTO `Clans`
- (`ID`,
- `Owner`,
- `Members`,
- `Moderators`,
- `WelcomeMessage`,
- `Balance`,
- `Exp`,
- `Date`,
- `Color`,
- `Home`,
- `OpenHome`,
- `Level`,
- `Pvp`,
- `Alliances`)
- VALUES
- (<{ID}>,
- <{Owner}>,
- <{Members}>,
- <{Moderators}>,
- <{WelcomeMessage}>,
- <{Balance}>,
- <{Exp}>,
- <{Date}>,
- <{Color}>,
- <{Home}>,
- <{OpenHome}>,
- <{Level}>,
- <{Pvp}>,
- <{Alliances}>);
- """;
- sql = sql.replace("<{ID}>", "\"" + clan.getClanID() + "\"")
- .replace("<{Owner}>", "\"" + clan.getOwner() + "\"")
- .replace("<{Members}>", clan.getMembers() == null ? "NULL" : "'" + String.join(" ", clan.getMembers()) + "'")
- .replace("<{Moderators}>", clan.getModerators() == null ? "NULL" : "'" + String.join(" ", clan.getModerators()) + "'")
- .replace("<{WelcomeMessage}>", clan.getWelcomeMessage() == null ? "NULL" : "'" + clan.getWelcomeMessage() + "'")
- .replace("<{Balance}>", clan.getBalance() + "")
- .replace("<{Exp}>", clan.getExp() + "")
- .replace("<{Date}>", clan.getDate() == null ? "NULL" : "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(clan.getDate()) + "'")
- .replace("<{Color}>", clan.getColor() == null ? "NULL" : "'" + clan.getColor().toString() + "'")
- .replace("<{Home}>", clan.getClanHome() == null ? "NULL" : "'" +
- clan.getClanHome().getWorld().getName() + " " +
- clan.getClanHome().getX() + " " +
- clan.getClanHome().getY() + " " +
- clan.getClanHome().getZ() + "'")
- .replace("<{OpenHome}>", clan.isOpenCH() + "")
- .replace("<{Level}>", clan.getLevel() + "")
- .replace("<{Pvp}>", clan.isPvp() + "")
- .replace("<{Alliances}>", clan.getAlliances() == null ? "NULL" : "'" + String.join(" ", clan.getAlliances()) + "'");
- var statement = connection.createStatement();
- statement.execute(sql);
- statement.close();
- }
- public Clan loadClanByID(String id) throws SQLException {
- String sql = "SELECT * FROM Clans WHERE ID = \"" + id + "\"";
- Statement statement = connection.createStatement();
- ResultSet resultSet = statement.executeQuery(sql);
- while (resultSet.next()) {
- return clanFactory.createClanInstanceByResultSet(resultSet);
- }
- statement.close();
- return null;
- }
- public void deleteClan(String id) throws SQLException {
- String sql = "DELETE FROM `Clans` WHERE ID = \"" + id + "\"";
- Statement statement = statement = connection.createStatement();
- statement.execute(sql);
- statement.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment