Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.forsteve.death.data;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.UUID;
- import org.bukkit.scheduler.BukkitRunnable;
- import net.forsteve.death.Main;
- import net.forsteve.death.data.object.User;
- import net.forsteve.death.data.object.UserManager;
- public class MySQL
- {
- private static Connection conn;
- private static String base = "forsteve_death";
- public MySQL()
- {
- new BukkitRunnable()
- {
- public void run()
- {
- openConnection();
- }
- }.runTaskAsynchronously(Main.getPlugin);
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- createTable();
- downloadUsers();
- }
- }.runTaskLater(Main.getPlugin, 40);
- saveDatabase();
- }
- private void saveDatabase()
- {
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- saveUsers();
- //System.out.println("[DeathMySQL] Zapisuje dane.");
- }
- }.runTaskTimer(Main.getPlugin, 120, Config.mysql_interval * 20);
- }
- public synchronized static void openConnection()
- {
- String url = "jdbc:mysql://" + Config.mysql_ip + ":" + Config.mysql_port + "/";
- try { conn = DriverManager.getConnection(url + Config.mysql_database, Config.mysql_user, Config.mysql_password); }
- catch (Exception e) { e.printStackTrace(); }
- }
- public static void createTable()
- {
- try
- {
- Statement st = conn.createStatement();
- String new_table = "CREATE TABLE IF NOT EXISTS " + base + "(uuid VARCHAR(36), nick VARCHAR(32), kills MEDIUMTEXT, deaths MEDIUMTEXT, PRIMARY KEY (uuid)) DEFAULT CHARSET=cp1250 collate cp1250_polish_ci";
- st.execute(new_table);
- st.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public static void downloadUsers()
- {
- try
- {
- Statement st = conn.createStatement();
- ResultSet rs = st.executeQuery("SELECT * FROM " + base);
- while (rs.next())
- {
- UUID uuid = UUID.fromString(rs.getString("uuid"));
- String name = rs.getString("nick");
- String kills = rs.getString("kills");
- String deaths = rs.getString("deaths");
- User user = new User(uuid);
- user.setName(name);
- user.setKills(kills);
- user.setDeaths(deaths);
- UserManager.addUser(user);
- }
- st.close();
- } catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- public static void saveUsers()
- {
- try
- {
- Statement st = conn.createStatement();
- for(User u : UserManager.getUsers())
- {
- String nick = u.getName();
- UUID uuid = u.getUuid();
- String kills = u.getKills();
- String deaths = u.getDeaths();
- String sql = "INSERT INTO " + base + " (uuid, nick, kills, deaths)"
- + " VALUES ('" + uuid + "', '" + nick + "', '" + kills + "', '" + deaths + "')"
- + " ON DUPLICATE KEY UPDATE kills='" + kills + "', deaths='" + deaths + "'"
- ;
- st.executeUpdate(sql);
- }
- st.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement