· 8 years ago · May 30, 2018, 12:14 PM
1package pl.lenistwo.pluginBase;
2
3import org.bukkit.*;
4import org.bukkit.entity.Item;
5import org.bukkit.entity.Player;
6import org.bukkit.event.Listener;
7import org.bukkit.inventory.ItemStack;
8import org.bukkit.plugin.PluginManager;
9import org.bukkit.plugin.java.JavaPlugin;
10import pl.lenistwo.pluginBase.Commands.*;
11import pl.lenistwo.pluginBase.Commands.BanList;
12import pl.lenistwo.pluginBase.Database.Connecting;
13import pl.lenistwo.pluginBase.Events.EntityDamageToEntity;
14import pl.lenistwo.pluginBase.Events.OnPlayerJoin;
15import pl.lenistwo.pluginBase.Events.PreLoginEvent;
16import pl.lenistwo.pluginBase.Events.QuitEvent;
17import pl.lenistwo.pluginBase.Utill.Config;
18import pl.lenistwo.pluginBase.Utill.VanishMenager;
19import java.net.InetAddress;
20import java.sql.PreparedStatement;
21import java.sql.ResultSet;
22import java.sql.SQLException;
23import java.sql.Statement;
24import java.util.*;
25
26public class Plugin extends JavaPlugin implements Listener {
27
28 private static Plugin instance;
29 private Connecting connected = new Connecting();
30 private ArrayList<UUID> bans = new ArrayList();
31 private ArrayList<String> addresses = new ArrayList<>();
32 private HashMap<UUID,Location> home = new HashMap<>();
33 private HashMap<String,Location> warp = new HashMap<>();
34 private ArrayList<ItemStack> kit1 = new ArrayList<>();
35 private ArrayList<ItemStack> kit2 = new ArrayList<>();
36 public static Plugin getInstance(){ return instance; }
37 private VanishMenager menager = new VanishMenager();
38
39 @Override
40 public void onEnable() {
41 instance = this;
42 Bukkit.getPluginManager().registerEvents(this,this);
43 Config.create();
44 if (connected.connect() == null){
45 instance.getPluginLoader().disablePlugin(this);
46 getLogger().info("Can not reach connection to database! \n Check Config variables!");
47 return;
48 }
49 initCommands();
50 initEvents();
51 create_Ban_Table();
52 create_Home_Table();
53 create_Warp_Table();
54 create_Kit1_Table();
55 create_Kit2_Table();
56 load_Kit1_from_DB();
57 load_Kit2_from_DB();
58 load_from_DB();
59 load_homes_from_DB();
60 load_warp_from_DB();
61 getLogger().info("Plugin Enabled!");
62 }
63
64 public void onDisable(){
65 getLogger().info("Plugin Disabled");
66 try {
67 if (connected.connect() != null){
68 connected.connect().close();
69 }
70 } catch (SQLException e) {
71 e.printStackTrace();
72 }
73 }
74
75 private void initEvents(){
76 PluginManager pm = Bukkit.getPluginManager();
77 pm.registerEvents(new PreLoginEvent(),this);
78 pm.registerEvents(new EntityDamageToEntity(),this);
79 pm.registerEvents(new QuitEvent(),this);
80 pm.registerEvents(new OnPlayerJoin(),this);
81 }
82
83 private void initCommands(){
84 getCommand("kickAll").setExecutor(new KickAll());
85 getCommand("fly").setExecutor(new Fly());
86 getCommand("ban").setExecutor(new BanCommand());
87 getCommand("unBan").setExecutor(new UnBan());
88 getCommand("banList").setExecutor(new BanList());
89 getCommand("tpa").setExecutor(new TeleportCommand());
90 getCommand("tpaccept").setExecutor(new TeleportAccept());
91 getCommand("feed").setExecutor(new Feed());
92 getCommand("exp").setExecutor(new Exp());
93 getCommand("god").setExecutor(new God());
94 getCommand("heal").setExecutor(new Heal());
95 getCommand("give").setExecutor(new Give());
96 getCommand("fix").setExecutor(new Repair());
97 getCommand("speed").setExecutor(new Speed());
98 getCommand("workbench").setExecutor(new WorkBench());
99 getCommand("gamemode").setExecutor(new Gm());
100 getCommand("vanish").setExecutor(new Vanish());
101 getCommand("tpadeny").setExecutor(new TeleportDeny());
102 getCommand("burn").setExecutor(new Burn());
103 getCommand("kill").setExecutor(new Kill());
104 getCommand("kick").setExecutor(new Kick());
105 getCommand("sethome").setExecutor(new SetHome());
106 getCommand("home").setExecutor(new Home());
107 getCommand("delhome").setExecutor(new DelHome());
108 getCommand("onlinelist").setExecutor(new OnlineList());
109 getCommand("clear").setExecutor(new ClearInventory());
110 getCommand("ender").setExecutor(new EnderChest());
111 getCommand("nick").setExecutor(new Nick());
112 getCommand("tpall").setExecutor(new TeleportAll());
113 getCommand("setspawn").setExecutor(new SetSpawn());
114 getCommand("spawn").setExecutor(new Spawn());
115 getCommand("broadcast").setExecutor(new Broadcast());
116 getCommand("setWarp").setExecutor(new SetWarp());
117 getCommand("warp").setExecutor(new Warp());
118 getCommand("warps").setExecutor(new Warps());
119 getCommand("delWarp").setExecutor(new DelWarp());
120 getCommand("ping").setExecutor(new Ping());
121 getCommand("spawnMob").setExecutor(new SpawnMob());
122 getCommand("enchant").setExecutor(new Enchant());
123 getCommand("enchantHelp").setExecutor(new EnchantHelp());
124 getCommand("msg").setExecutor(new MsgTo());
125 getCommand("r").setExecutor(new MsgFrom());
126 getCommand("socialSpy").setExecutor(new SocialSpy());
127 getCommand("banIp").setExecutor(new BanIP());
128 getCommand("unBanIp").setExecutor(new UnBanIP());
129 getCommand("bannedIp").setExecutor(new BannedIPs());
130 getCommand("kits").setExecutor(new Kits());
131 getCommand("tppos").setExecutor(new TpPos());
132 }
133
134 private void create_Ban_Table(){
135 String query = "CREATE TABLE IF NOT EXISTS ban \n" +
136 "(\n" +
137 " UUID VARCHAR(255), PRIMARY KEY(UUID), IP VARCHAR(255)\n" +
138 " , TYPE int(1));";
139 try {
140 Statement statement = connected.connect().createStatement();
141 statement.execute(query);
142 } catch (SQLException e) {
143 e.printStackTrace();
144 }
145 }
146
147 private void create_Kit1_Table(){
148 String query = "CREATE TABLE IF NOT EXISTS kit1 \n" +
149 "(\n" +
150 " Nazwa VARCHAR(255), PRIMARY KEY(Nazwa), Ammount INT(100)\n" +
151 " );";
152 try {
153 Statement statement = connected.connect().createStatement();
154 statement.execute(query);
155 } catch (SQLException e) {
156 e.printStackTrace();
157 }
158 }
159
160 private void create_Kit2_Table(){
161 String query = "CREATE TABLE IF NOT EXISTS kit2 \n" +
162 "(\n" +
163 " Nazwa VARCHAR(255), PRIMARY KEY(Nazwa), Ammount INT(100)\n" +
164 " );";
165 try {
166 Statement statement = connected.connect().createStatement();
167 statement.execute(query);
168 } catch (SQLException e) {
169 e.printStackTrace();
170 }
171 }
172
173 private void create_Home_Table(){
174 String query = "CREATE TABLE IF NOT EXISTS home \n" +
175 "(\n" +
176 " UUID VARCHAR(255), PRIMARY KEY(UUID), world VARCHAR(100), x VARCHAR(100), y VARCHAR(100), z VARCHAR(100)\n" +
177 ");";
178 try {
179 Statement statement = connected.connect().createStatement();
180 statement.execute(query);
181 } catch (SQLException e) {
182 e.printStackTrace();
183 }
184 }
185
186 private void create_Warp_Table(){
187 String qeury = "CREATE TABLE IF NOT EXISTS home \n" +
188 "(\n" +
189 " nazwa VARCHAR(255), PRIMARY KEY(nazwa), world VARCHAR(255), x int(100), y int(100), z int(100)\n" +
190 ");";
191 try {
192 Statement statement = connected.connect().createStatement();
193 statement.execute(qeury);
194 } catch (SQLException e) {
195 e.printStackTrace();
196 }
197
198 }
199
200 private void load_from_DB(){
201 String query = "SELECT * FROM ban";
202 try {
203 connected.connect();
204 Statement statement = connected.connect().createStatement();
205 ResultSet rs = statement.executeQuery(query);
206 while (rs.next()){
207 String column = rs.getString("UUID");
208 java.util.UUID id = java.util.UUID.fromString(column);
209 String ip = rs.getString("IP");
210 Integer type = rs.getInt("TYPE");
211
212 if (type == 0){
213 bans.add(id);
214 }else {
215 addresses.add(ip);
216 }
217 }
218 } catch (SQLException e) {
219 e.printStackTrace();
220 }
221
222 }
223
224 private void insert_into_DB(java.util.UUID uuid, InetAddress address,Integer type){
225 String id = uuid.toString();
226 String ip = address.toString();
227 String query = "INSERT INTO ban (UUID,IP,TYPE) VALUES (?,?,?)";
228 try {
229 PreparedStatement statement = connected.connect().prepareStatement(query);
230 statement.setString(1,id);
231 statement.setString(2,ip);
232 statement.setString(3,type.toString());
233 statement.executeUpdate();
234 } catch (SQLException e) {
235 e.printStackTrace();
236 }
237 }
238
239 private void delete_from_DB(java.util.UUID uuid){
240 String id = uuid.toString();
241 String que = "DELETE FROM ban WHERE UUID = ?";
242 try {
243 PreparedStatement statement = connected.connect().prepareStatement(que);
244 statement.setString(1,id);
245 statement.executeUpdate();
246 } catch (SQLException e) {
247 e.printStackTrace();
248 }
249
250 }
251
252 private void delete_IP_from_DB(String adress){
253 String que = "DELETE FROM ban WHERE IP = ?";
254 try {
255 PreparedStatement statement = connected.connect().prepareStatement(que);
256 statement.setString(1,adress);
257 statement.executeUpdate();
258 } catch (SQLException e) {
259 e.printStackTrace();
260 }
261
262 }
263
264 public boolean isBanned(java.util.UUID uuid){
265 return bans.contains(uuid);
266 }
267
268 public void banPlayer(java.util.UUID uuid, InetAddress address,Integer type){
269 if (type == 0){
270 bans.add(uuid);
271 }else {
272 addresses.add(address.toString());
273 }
274 insert_into_DB(uuid,address,type);
275 }
276
277 public void unBanPlayer(java.util.UUID uuid){
278 bans.remove(uuid);
279 delete_from_DB(uuid);
280 }
281
282 public boolean isBannedIP(String adress){
283 return addresses.contains(adress);
284 }
285
286 public void unBanIP(String ip){
287 addresses.remove(ip);
288 delete_IP_from_DB(ip);
289 }
290
291 public void banList(Player sender){
292 Iterator banns = bans.iterator();
293 while (banns.hasNext()) {
294 OfflinePlayer offline = Bukkit.getOfflinePlayer((java.util.UUID) banns.next());
295 sender.sendMessage(offline.getName() + " jest zbanowany");
296 }
297 }
298 public void banIPList(Player sender){
299 Iterator ips = addresses.iterator();
300 while (ips.hasNext()) {
301 sender.sendMessage("Adres "+ ips.next() + " jest zbanowany");
302 }
303 }
304
305 private void load_homes_from_DB(){
306 String query = "SELECT * FROM home ";
307 try {
308 connected.connect();
309 Statement statement = connected.connect().createStatement();
310 ResultSet rs = statement.executeQuery(query);
311 while (rs.next()){
312 String uuid = rs.getString("UUID");
313 String world = rs.getString("world");
314 String x = rs.getString("x");
315 String y = rs.getString("y");
316 String z = rs.getString("z");
317 java.util.UUID id = java.util.UUID.fromString(uuid);
318 home.put(id,getLocation(Bukkit.getWorld(world),x,y,z));
319 }
320 } catch (SQLException e) {
321 e.printStackTrace();
322 }
323
324 }
325
326 private void insert_home_into_DB(java.util.UUID uuid,String world,String x,String y,String z ){
327 String id = uuid.toString();
328 String query = "INSERT INTO home (UUID,world,x,y,z) VALUES (?,?,?,?,?)";
329 try {
330 PreparedStatement statement = connected.connect().prepareStatement(query);
331 statement.setString(1,id);
332 statement.setString(2,world);
333 statement.setString(3,x);
334 statement.setString(4,y);
335 statement.setString(5,z);
336 statement.executeUpdate();
337 } catch (SQLException e) {
338 e.printStackTrace();
339 }
340 }
341
342 private void delete_home_from_DB(java.util.UUID uuid){
343 String id = uuid.toString();
344 String que = "DELETE FROM home WHERE UUID = ?";
345 try {
346 PreparedStatement statement = connected.connect().prepareStatement(que);
347 statement.setString(1,id);
348 statement.executeUpdate();
349 } catch (SQLException e) {
350 e.printStackTrace();
351 }
352
353 }
354
355 private Location getLocation(World world,String ex,String ey,String ez){
356
357 Location location;
358
359 int x = Integer.parseInt(ex);
360 int y = Integer.parseInt(ey);
361 int z = Integer.parseInt(ez);
362 location = new Location(world,x,y,z);
363
364 return location;
365 }
366
367 public boolean getHome(UUID uuid){
368 if (home.containsKey(uuid)){
369 return true;
370 }
371 return false;
372 }
373
374 public Location toHome(UUID id){
375 return home.get(id);
376 }
377
378 public void setHome(UUID uuid, World world, String x, String y, String z){
379 home.put(uuid,getLocation(world,x,y,z));
380 insert_home_into_DB(uuid,world.toString(),x,y,z);
381 }
382
383 public void delHome(UUID uuid){
384 home.remove(uuid);
385 delete_home_from_DB(uuid);
386 }
387
388 public VanishMenager getMenager() {
389 return menager;
390 }
391
392 private void load_warp_from_DB(){
393 String query = "SELECT * FROM warp ";
394 try {
395 connected.connect();
396 Statement statement = connected.connect().createStatement();
397 ResultSet rs = statement.executeQuery(query);
398 while (rs.next()){
399 String nazwa = rs.getString("nazwa");
400 String world = rs.getString("world");
401 String x = rs.getString("x");
402 String y = rs.getString("y");
403 String z = rs.getString("z");
404 warp.put(nazwa,getLocation(Bukkit.getWorld(world),x,y,z));
405 }
406 } catch (SQLException e) {
407 e.printStackTrace();
408 }
409
410 }
411
412 private void insert_warp_into_DB(String nazwa, String world,String x,String y,String z){
413 String query = "INSERT INTO warp (nazwa,world,x,y,z) VALUES (?,?,?,?,?)";
414 try {
415 PreparedStatement statement = connected.connect().prepareStatement(query);
416 statement.setString(1,nazwa);
417 statement.setString(2,world);
418 statement.setString(3,x);
419 statement.setString(4,y);
420 statement.setString(5,z);
421 statement.executeUpdate();
422 } catch (SQLException e) {
423 e.printStackTrace();
424 }
425 }
426
427 private void delete_warp_from_DB(String nazwa){
428 String que = "DELETE FROM warp WHERE nazwa = ?";
429 try {
430 PreparedStatement statement = connected.connect().prepareStatement(que);
431 statement.setString(1,nazwa);
432 statement.executeUpdate();
433 } catch (SQLException e) {
434 e.printStackTrace();
435 }
436
437 }
438
439 public boolean isSet(String nazwa){
440 return warp.containsKey(nazwa);
441 }
442
443 public void addWarp(String nazwa,World world,String x,String y,String z){
444 warp.put(nazwa,getLocation(world,x,y,z));
445 insert_warp_into_DB(nazwa,world.toString(),x,y,z);
446 }
447
448 public void delWarp(String nazwa){
449 warp.remove(nazwa);
450 delete_warp_from_DB(nazwa);
451 }
452
453 public Location getWarpLocation(String nazwa){
454 return warp.get(nazwa);
455 }
456
457 public String warpsNames(){
458 StringBuilder builder = new StringBuilder();
459
460 warp.keySet().parallelStream().forEach(s-> builder.append(s+" "));
461 return builder.toString();
462 }
463
464 private void load_Kit1_from_DB(){
465 String query = "SELECT * FROM kit1";
466 try {
467 connected.connect();
468 Statement statement = connected.connect().createStatement();
469 ResultSet rs = statement.executeQuery(query);
470 while (rs.next()){
471 String name = rs.getString("Nazwa");
472 Integer ammount = rs.getInt("Ammount");
473 kit1.add(new ItemStack(Material.matchMaterial(name),ammount));
474 }
475 } catch (SQLException e) {
476 e.printStackTrace();
477 }
478
479 }
480 private void load_Kit2_from_DB(){
481 String query = "SELECT * FROM kit2";
482 try {
483 connected.connect();
484 Statement statement = connected.connect().createStatement();
485 ResultSet rs = statement.executeQuery(query);
486 while (rs.next()){
487 String name = rs.getString("Nazwa");
488 Integer ammount = rs.getInt("Ammount");
489 kit2.add(new ItemStack(Material.matchMaterial(name),ammount));
490 }
491 } catch (SQLException e) {
492 e.printStackTrace();
493 }
494
495 }
496
497
498
499}