· 10 years ago · Aug 09, 2016, 07:42 PM
1/*
2*
3* MYSQL Class
4*
5*/
6
7package MYSQL;
8
9import java.sql.Connection;
10import java.sql.DriverManager;
11import java.sql.ResultSet;
12import java.sql.SQLException;
13import java.sql.Statement;
14
15import org.bukkit.Bukkit;
16
17public class MySQL {
18
19 private String host = "host";
20 private String user = "username";
21 private String pass = "password";
22 private String database;
23 private Connection con;
24
25 public MySQL(String database) {
26 this.database = database;
27 connect();
28 Bukkit.getScheduler().runTaskAsynchronously(API.getAPI(), new Runnable() {
29
30 @Override
31 public void run() {
32 createTable();
33 }
34 });
35 }
36
37 public void connect() {
38 if (!isConnected()) {
39 try {
40 con = DriverManager.getConnection("jdbc:mysql://" + getHost() + ":3306/" + getDatabase(), getUser(), getPass());
41 } catch (SQLException e) {
42 e.printStackTrace();
43 }
44 }
45 }
46
47 public void close() {
48 if (isConnected()) {
49 try {
50 con.close();
51 } catch (SQLException e) {
52 e.printStackTrace();
53 }
54 }
55 }
56
57 public boolean isConnected() {
58 return con != null;
59 }
60
61 public void createTable() {
62 if (isConnected()) {
63 try {
64 con.createStatement().executeUpdate(
65 "CREATE TABLE IF NOT EXISTS coins(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, UUID varchar(100), NAME varchar(100), Coins varchar(100));");
66 } catch (SQLException e) {
67 e.printStackTrace();
68 }
69 }
70 }
71
72 public String getHost() {
73 return host;
74 }
75
76 public String getUser() {
77 return user;
78 }
79
80 public String getPass() {
81 return pass;
82 }
83
84 public String getDatabase() {
85 return database;
86 }
87
88 public void query(String qry) {
89 if (isConnected()) {
90 try {
91 con.createStatement().executeUpdate(qry);
92 } catch (SQLException e) {
93 e.printStackTrace();
94 }
95 }
96 }
97
98 public ResultSet getResult(String qry) {
99 ResultSet rs = null;
100 try {
101 Statement st = con.createStatement();
102 rs = st.executeQuery(qry);
103 } catch (SQLException e) {
104 connect();
105 System.err.println(e);
106 }
107 return rs;
108 }
109
110}
111
112/*
113*
114* Stats Class
115*
116*/
117
118package net.SpielBuildAPI;
119
120import java.sql.ResultSet;
121import java.util.UUID;
122
123import org.bukkit.entity.Player;
124
125public class Stats {
126
127 private MySQL mysql;
128
129 public Stats() {
130 mysql = new MySQL("kd24963_server");
131 };
132
133
134
135 public void createAccount(Player p) {
136 boolean exist = false;
137 try {
138 ResultSet rs = mysql.getResult("SELECT Coins FROM coins WHERE UUID='" + p.getUniqueId().toString() + "';");
139 while (rs.next()) {
140 exist = Boolean.valueOf(true).booleanValue();
141 }
142 } catch (Exception err) {
143 System.err.println(err);
144 }
145 if (!exist) {
146 mysql.query("INSERT INTO coins (UUID,NAME,Coins) values ('" + p.getUniqueId().toString() + "', '"+p.getName()+"', 0);");
147 }
148 }
149
150 public int getCoins(Player p) {
151 int c = 0;
152 try {
153 java.sql.ResultSet rs = mysql
154 .getResult("SELECT Coins FROM coins WHERE UUID='" + p.getUniqueId().toString() + "';");
155 while (rs.next()) {
156 c = rs.getInt(1);
157 }
158 } catch (Exception err) {
159 System.err.println(err);
160 }
161 return c;
162 }
163
164 public void addCoins(Player p, int add) {
165 int c = getCoins(p);
166 c += add;
167 mysql.query("UPDATE coins SET Coins = " + c + " WHERE UUID='" + p.getUniqueId().toString() + "';");
168 }
169
170 public void removeCoins(Player p, int del) {
171 int c = getCoins(p);
172 c -= del;
173 mysql.query("UPDATE coins SET Coins = " + c + " WHERE UUID='" + p.getUniqueId().toString() + "';");
174 }
175
176 public void setCoins(Player p, int coins) {
177 mysql.query("UPDATE coins SET Coins = " + coins + " WHERE UUID='" + p.getUniqueId().toString() + "';");
178 }
179
180 public void createAccount(UUID uuid, String name) {
181 boolean exist = false;
182 try {
183 ResultSet rs = mysql.getResult("SELECT Coins FROM coins WHERE UUID='" + uuid.toString() + "';");
184 while (rs.next()) {
185 exist = Boolean.valueOf(true).booleanValue();
186 }
187 } catch (Exception err) {
188 System.err.println(err);
189 }
190 if (!exist) {
191 mysql.query("INSERT INTO coins (UUID,NAME,Coins) values ('" + uuid.toString() + "', '"+name+"', 0);");
192 }
193 }
194
195 public int getCoins(UUID uuid) {
196 int c = 0;
197 try {
198 java.sql.ResultSet rs = mysql
199 .getResult("SELECT Coins FROM coins WHERE UUID='" + uuid.toString() + "';");
200 while (rs.next()) {
201 c = rs.getInt(1);
202 }
203 } catch (Exception err) {
204 System.err.println(err);
205 }
206 return c;
207 }
208
209 public void addCoins(UUID uuid, int add) {
210 int c = getCoins(uuid);
211 c += add;
212 mysql.query("UPDATE coins SET Coins = " + c + " WHERE UUID='" + uuid.toString() + "';");
213 }
214
215 public void removeCoins(UUID uuid, int del) {
216 int c = getCoins(uuid);
217 c -= del;
218 mysql.query("UPDATE coins SET Coins = " + c + " WHERE UUID='" + uuid.toString() + "';");
219 }
220
221 public void setCoins(UUID uuid, int coins) {
222 mysql.query("UPDATE coins SET Coins = " + coins + " WHERE UUID='" + uuid.toString() + "';");
223 }
224
225 public int getCoins(String name) {
226 int c = 0;
227 try {
228 java.sql.ResultSet rs = mysql
229 .getResult("SELECT Coins FROM coins WHERE NAME='" + name + "';");
230 while (rs.next()) {
231 c = rs.getInt(1);
232 }
233 } catch (Exception err) {
234 System.err.println(err);
235 }
236 return c;
237 }
238
239 public void addCoins(String name, int add) {
240 int c = getCoins(name);
241 c += add;
242 mysql.query("UPDATE coins SET Coins = " + c + " WHERE NAME='" + name + "';");
243 }
244
245 public void removeCoins(String name, int del) {
246 int c = getCoins(name);
247 c -= del;
248 mysql.query("UPDATE coins SET Coins = " + c + " WHERE NAME='" + name + "';");
249 }
250
251 public void setCoins(String name, int coins) {
252 mysql.query("UPDATE coins SET Coins = " + coins + " WHERE NAME='" + name + "';");
253 }
254}
255
256
257/*
258*
259* Aufrufen! z.b. in der Main
260*
261*/
262private static Stats stats;
263
264 public static Stats getStats() {
265 return stats;
266 }
267
268@Override
269 public void onEnable() {
270 stats = new Stats();
271 }
272
273/*
274*
275* Verwenden BITTE ASYNC
276*
277*/
278
279
280
281Main.getStats().getCoins(Player);