· 5 years ago · Apr 21, 2020, 07:26 PM
1package me.AltSystem;
2
3import java.sql.DriverManager;
4import java.sql.PreparedStatement;
5import java.sql.ResultSet;
6import java.sql.SQLException;
7
8import org.bukkit.scheduler.BukkitRunnable;
9
10import java.sql.Connection;
11
12
13public class MySQL {
14 public Connection connection;
15
16 public void load() {
17 try {
18 Class.forName("com.mysql.jdbc.Driver");
19 } catch (ClassNotFoundException e) {
20 e.printStackTrace();
21 System.err.println("Driver jdbc not found!");
22 return;
23 }
24 openConnection();
25 String query = "CREATE TABLE IF NOT EXISTS "+ Main.instance.table +" (Player VARCHAR(100), Status INT(10), Data TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
26 try {
27 getConnection().createStatement().execute(query);
28 } catch (SQLException e) {
29 e.printStackTrace();
30 }
31
32 }
33
34 public void Request(String Player) {
35 openConnection();
36 String query = "INSERT INTO "+ Main.instance.table +" (Player, Status) VALUES ('" + Player + "', '1');";
37 try {
38 getConnection().createStatement().execute(query);
39 } catch (SQLException e) {
40 e.printStackTrace();
41 }
42 }
43
44 public int Confirm(String Player) {
45 int status = 0;
46 openConnection();
47 String query = "SELECT * FROM "+ Main.instance.table +" WHERE Player = '" + Player + "';";
48 try {
49 PreparedStatement statement = getConnection().prepareStatement(query);
50 ResultSet result = statement.executeQuery();
51 while (result.next()) {
52 status = result.getInt("Status");
53 return status;
54 }
55 } catch (SQLException e) {
56 e.printStackTrace();
57 }
58 return status;
59 }
60
61 public void Conversion(String Player) {
62 openConnection();
63 String query = "UPDATE "+ Main.instance.table +" SET Status = REPLACE (Status, 1,2) WHERE Player = '" + Player + "';";
64 try {
65 getConnection().createStatement().execute(query);
66 } catch (SQLException e) {
67 e.printStackTrace();
68 }
69 }
70
71 public boolean Purge() {
72 openConnection();
73 String query = "TRUNCATE "+ Main.instance.table +";";
74 try {
75 getConnection().createStatement().execute(query);
76 return true;
77 } catch (SQLException e) {
78 e.printStackTrace();
79 }
80 return false;
81 }
82
83 public void openConnection() {
84 new BukkitRunnable() {
85
86 @Override
87 public void run() {
88 try {
89 synchronized (this) {
90 if (getConnection() != null && !getConnection().isClosed()) {
91 return;
92 }
93 Class.forName("com.mysql.jdbc.Driver");
94 setConnection(DriverManager.getConnection("jdbc:mysql://" + Main.instance.host+ ":" + Main.instance.port + "/" + Main.instance.database + "?useSSL="+Main.instance.SSL, Main.instance.user, Main.instance.password));
95
96 }
97 } catch (SQLException e) {
98 e.printStackTrace();
99 } catch (ClassNotFoundException e) {
100 e.printStackTrace();
101 }
102
103 }
104
105 }.runTaskAsynchronously(Main.getInstance());
106 }
107
108
109 public Connection getConnection() {
110 return connection;
111 }
112
113 public void setConnection(Connection connection) {
114 this.connection = connection;
115 }
116
117}