· 6 years ago · Nov 09, 2019, 07:18 PM
1 public 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.println(e.getMessage());
20 System.out.println("MYSQL ERROR END ------------------------------------------------------------------");
21 System.out.println("[HelpOpGUI] [Severe] MYSQL CONNECTION REQUIRED!!!! CANNOT CONNECT TO DATABASE");
22 return;
23 }
24 connection.createStatement().executeUpdate(
25 "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))");
26 connection.createStatement().executeUpdate(
27 "CREATE TABLE IF NOT EXISTS staff_stats (uuid varchar(40), handled int, PRIMARY KEY(uuid))");
28 connection.createStatement().executeUpdate(
29 "CREATE TABLE IF NOT EXISTS user_data (uuid varchar(40), username varchar(17), total_sent int, blacklist_points int, PRIMARY KEY(uuid))");
30 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))");
31 new BukkitRunnable() {
32 public void run() {
33 antiAFK();
34 }
35 }.runTaskTimer(Core.plugin,
36 MySQLConfig.getInstance().getConfig().getInt("Settings.Connection-Timeout-Refresh"),
37 MySQLConfig.getInstance().getConfig().getInt("Settings.Connection-Timeout-Refresh"));
38 } else {
39 return;
40 }
41 } catch (SQLException e) {
42 e.printStackTrace();
43 }
44 }
45
46 public synchronized static void closeConnection() {
47 try {
48 connection.close();
49 connection = null;
50 } catch (Exception e) {
51 System.out.println("[HelpOP] COULD NOT CLOSE CONNECTION! Reason: " + e.getCause());
52 }
53 }
54
55 public synchronized static void antiAFK() {
56 openConnection();
57 try {
58 PreparedStatement sql = connection.prepareStatement("SELECT * FROM `tickets`");
59 ResultSet result = sql.executeQuery();
60 sql.close();
61 result.close();
62 } catch (Exception e) {
63 e.printStackTrace();
64 }
65 }
66 public synchronized static void deleteMessages(int minutes) {
67 openConnection();
68 try {
69 PreparedStatement sql = connection.prepareStatement("SELECT * FROM `tickets`");
70 ResultSet result = sql.executeQuery();
71 sql.close();
72 result.close();
73 } catch (Exception e) {
74 e.printStackTrace();
75 }
76 }