· 5 years ago · Mar 07, 2020, 10:32 AM
1public static Connection connection;
2 public int id;
3
4 public synchronized static void openConnection() {
5 try {
6 if (connection == null || connection.isClosed()) {
7 String host = MySQLConfig.getInstance().getConfig().getString("Host");
8 int port = MySQLConfig.getInstance().getConfig().getInt("Port");
9 String database = MySQLConfig.getInstance().getConfig().getString("Database-Name");
10 String username = MySQLConfig.getInstance().getConfig().getString("Username");
11 String password = MySQLConfig.getInstance().getConfig().getString("Password");
12 try {
13 connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?characterEncoding=latin1&useConfigs=maxPerformance",
14 username, password);
15
16 } catch (Exception e) {
17 System.out.println("[HelpOpGUI] [Severe] MYSQL CONNECTION REQUIRED!!!! CANNOT CONNECT TO DATABASE");
18 System.out.println("MYSQL ERROR START ------------------------------------------------------------------");
19 System.out
20.println(e.getMessage());
21 System.out.println("MYSQL ERROR END ------------------------------------------------------------------");
22 System.out.println("[HelpOpGUI] [Severe] MYSQL CONNECTION REQUIRED!!!! CANNOT CONNECT TO DATABASE");
23 return;
24 }
25 connection.createStatement().executeUpdate(
26 "CREATE TABLE IF NOT EXISTS tickets (id int, type varchar(25), sender_uuid varchar(40), sender_server varchar(40), content varchar(535), sent_date varchar(40), status varchar(17), staff_uuid varchar(40), rating varchar(535), PRIMARY KEY(id))");
27 connection.createStatement().executeUpdate(
28 "CREATE TABLE IF NOT EXISTS staff_stats (uuid varchar(40), handled int, PRIMARY KEY(uuid))");
29 connection.createStatement().executeUpdate(
30 "CREATE TABLE IF NOT EXISTS user_data (uuid varchar(40), username varchar(17), total_sent int, blacklist_points int, PRIMARY KEY(uuid))");
31 connection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS chat_log (id int NOT NULL AUTO_INCREMENT, username varchar(17), server varchar(100), uuid varchar(40), message varchar(400), timestamp varchar(50), PRIMARY KEY (id))");
32 new BukkitRunnable() {
33 public void run() {
34 antiAFK();
35 }
36 }.runTaskTimer(Core.plugin,
37 MySQLConfig.getInstance().getConfig().getInt("Settings.Connection-Timeout-Refresh"),
38 MySQLConfig.getInstance().getConfig().getInt("Settings.Connection-Timeout-Refresh"));
39 } else {
40 return;
41 }
42 } catch (SQLException e) {
43 e.printStackTrace();
44 }
45 }
46
47 public synchronized static void closeConnection() {
48 try {
49 connection.close();
50 connection = null;
51 } catch (Exception e) {
52 System.out.println("[HelpOP] COULD NOT CLOSE CONNECTION! Reason: " + e.getCause());
53 }
54 }
55
56 public synchronized static void antiAFK() {
57 openConnection();
58 try {
59 PreparedStatement sql = connection.prepareStatement("SELECT * FROM `tickets`");
60 ResultSet result = sql.executeQuery();
61 sql.close();
62 result.close();
63 } catch (Exception e) {
64 e.printStackTrace();
65 }
66 }
67 public synchronized static void deleteMessages(int minutes) {
68 openConnection();
69 try {
70 PreparedStatement sql = connection.prepareStatement("SELECT * FROM `tickets`");
71 ResultSet result = sql.executeQuery();
72 sql.close();
73 result.close();
74 } catch (Exception e) {
75 e.printStackTrace();
76 }
77 }