· 8 years ago · May 16, 2018, 12:06 AM
1import java.sql.Connection;
2import java.sql.DriverManager;
3import java.sql.ResultSet;
4import java.sql.SQLException;
5import java.sql.Statement;
6
7import org.bukkit.Bukkit;
8import org.bukkit.plugin.Plugin;
9
10import com.johnwillikers.rp.callbacks.MySqlCallback;
11import com.johnwillikers.rp.enums.Codes;
12
13import net.md_5.bungee.api.ChatColor;
14
15public class DbHandler {
16
17 public static void createTables() {
18 //Rp_Core MySql Tables
19 String playersTablesQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`players` ( `id` INT NOT NULL AUTO_INCREMENT , `uuid` VARCHAR(200) NOT NULL , `first` VARCHAR(200) NOT NULL , `last` VARCHAR(200) NOT NULL , `player_name` VARCHAR(200) NOT NULL , `gender` INT NOT NULL , `creation_ip` VARCHAR(200) NOT NULL , `last_ip` VARCHAR(200) NOT NULL , `created_at` VARCHAR(200) NOT NULL , `updated_at` VARCHAR(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM";
20 String gamemastersTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db +"`.`gamemasters` ( `id` INT NOT NULL AUTO_INCREMENT , `uuid` VARCHAR(200) NOT NULL , `name` VARCHAR(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
21 //Rp_Karma MySql Tables
22 String karmaTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`karma` ( `id` INT NOT NULL AUTO_INCREMENT , `player_id` INT NOT NULL , `karma` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
23 String reportsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`reports` ( `id` INT NOT NULL AUTO_INCREMENT , `gm_id` INT NOT NULL , `player_id` INT NOT NULL , `body` VARCHAR(200) NOT NULL , `actions` INT NOT NULL , `date` VARCHAR(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
24 //Rp_Mmo MySql Tables
25 String toonsTableQuery = "CREATE TABLE IF NOT EXISTS`" + Core.db + "`.`toons` ( `id` INT NOT NULL AUTO_INCREMENT , `player_id` INT NOT NULL , `xp` INT NOT NULL , `level` INT NOT NULL , `stat_points` INT NOT NULL , `skill_points` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
26 String statsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`stats` ( `id` INT NOT NULL AUTO_INCREMENT , `toon_id` INT NOT NULL , `strength` INT NOT NULL , `agility` INT NOT NULL , `dexterity` INT NOT NULL , `constitution` INT NOT NULL , `spirit` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
27 String skillsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`skills` ( `id` INT NOT NULL AUTO_INCREMENT , `toon_id` INT NOT NULL , `sword` INT NOT NULL , `shield` INT NOT NULL , `axe` INT NOT NULL , `bow` INT NOT NULL , `light_armor` INT NOT NULL , `heavy_armor` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
28 String swordsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`swords` ( `id` INT NOT NULL AUTO_INCREMENT , `type` VARCHAR(200) NOT NULL , `material` VARCHAR(200) NOT NULL , `name` VARCHAR(200) NOT NULL , `strength` INT NOT NULL , `agility` INT NOT NULL , `dexterity` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
29 String shieldsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`shields` ( `id` INT NOT NULL AUTO_INCREMENT , `type` VARCHAR(200) NOT NULL , `material` VARCHAR(200) NOT NULL , `name` VARCHAR(200) NOT NULL , `strength` INT NOT NULL , `agility` INT NOT NULL , `dexterity` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
30 String axesTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`axes` ( `id` INT NOT NULL AUTO_INCREMENT , `type` VARCHAR(200) NOT NULL , `material` VARCHAR(200) NOT NULL , `name` VARCHAR(200) NOT NULL , `strength` INT NOT NULL , `agility` INT NOT NULL , `dexterity` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
31 String bowsTableQuery = "CREATE TABLE IF NOT EXISTS `" + Core.db + "`.`bows` ( `id` INT NOT NULL AUTO_INCREMENT , `type` VARCHAR(200) NOT NULL , `material` VARCHAR(200) NOT NULL , `name` VARCHAR(200) NOT NULL , `strength` INT NOT NULL , `agility` INT NOT NULL , `dexterity` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;";
32 if(!Core.isInit[0])
33 executeUpdate(playersTablesQuery, Core.name);
34 if(Core.dependables[1] == 1) {
35 if(!Core.isInit[2]) {
36 executeUpdate(gamemastersTableQuery, ChatColor.RED + "Rp_Karma");
37 executeUpdate(karmaTableQuery, ChatColor.RED + "Rp_Karma");
38 executeUpdate(reportsTableQuery, ChatColor.RED + "Rp_Karma");
39 }
40 }
41 if(Core.dependables[2] == 1) {
42 if(!Core.isInit[3]) {
43 executeUpdate(toonsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
44 executeUpdate(statsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
45 executeUpdate(skillsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
46 executeUpdate(swordsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
47 executeUpdate(shieldsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
48 executeUpdate(axesTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
49 executeUpdate(bowsTableQuery, ChatColor.LIGHT_PURPLE + "Rp_Mmo");
50 }
51 }
52 }
53
54 public static void executeQuery(Plugin plugin, String query, String pluginName, String location, MySqlCallback callback) {
55 Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
56 @Override
57 public void run() {
58 try {
59 Class.forName("com.mysql.jdbc.Driver");
60 Connection conn = DriverManager.getConnection(Core.driver);
61 Statement stmt = conn.createStatement();
62 Core.debug(pluginName, Codes.DEBUG + "DbHandler.executeQuery | " + location, "Query String = " + query);
63 ResultSet rs = stmt.executeQuery(query);
64 Bukkit.getScheduler().runTask(plugin, new Runnable() {
65 @Override
66 public void run() {
67 callback.onQueryDone(rs);
68 }
69 });
70 } catch (ClassNotFoundException e) {
71 e.printStackTrace();
72 } catch (SQLException e) {
73 // TODO Auto-generated catch block
74 e.printStackTrace();
75 } finally {
76
77 }
78 }
79
80 });
81 }
82
83 public static void executeUpdate(String query, String pluginName) {
84 try {
85 Class.forName("com.mysql.jdbc.Driver");
86 Connection conn = DriverManager.getConnection(Core.driver);
87 Statement stmt = conn.createStatement();
88 Core.debug(pluginName, "DbHandler.executeUpdate", "Query String = " + query);
89 stmt.executeUpdate(query);
90 stmt.close();
91 conn.close();
92 } catch (ClassNotFoundException e) {
93 e.printStackTrace();
94 } catch (SQLException e) {
95 // TODO Auto-generated catch block
96 e.printStackTrace();
97 } finally {
98
99 }
100 }
101
102}