Isigar

Untitled

Jul 12th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.15 KB | None | 0 0
  1. package cz.relisoft.plugin;
  2.  
  3. import java.sql.Date;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.Calendar;
  7. import java.util.HashMap;
  8. import java.util.Iterator;
  9. import java.util.List;
  10. import java.util.Map;
  11. import java.util.Set;
  12. import java.util.logging.Level;
  13.  
  14. import org.bukkit.Bukkit;
  15. import org.bukkit.Location;
  16. import org.bukkit.Material;
  17. import org.bukkit.World;
  18. import org.bukkit.block.Block;
  19. import org.bukkit.command.Command;
  20. import org.bukkit.command.CommandSender;
  21. import org.bukkit.configuration.file.FileConfiguration;
  22. import org.bukkit.entity.Player;
  23. import org.bukkit.event.EventHandler;
  24. import org.bukkit.event.EventPriority;
  25. import org.bukkit.event.Listener;
  26. import org.bukkit.event.entity.PlayerDeathEvent;
  27. import org.bukkit.event.player.PlayerJoinEvent;
  28. import org.bukkit.event.player.PlayerQuitEvent;
  29. import org.bukkit.permissions.PermissionAttachment;
  30. import org.bukkit.plugin.java.JavaPlugin;
  31. import org.bukkit.scoreboard.DisplaySlot;
  32. import org.bukkit.scoreboard.Objective;
  33. import org.bukkit.scoreboard.Score;
  34. import org.bukkit.scoreboard.Scoreboard;
  35. import org.bukkit.scoreboard.ScoreboardManager;
  36. import org.fusesource.jansi.Ansi.Color;
  37.  
  38. import cz.relisoft.mysql.CustomConnection;
  39. import cz.relisoft.plugin.SQLModels.ResultCallback;
  40. import cz.relisoft.plugin.models.Vip.VipType;
  41. import net.md_5.bungee.api.ChatColor;
  42.  
  43. public class Main extends JavaPlugin implements Listener {
  44.  
  45. private CustomConnection customConnection;
  46. private SQLModels sqlModels;
  47.  
  48. public FileConfiguration config = this.getConfig();
  49.  
  50. private Map<Player,Integer> dbIdMap = new HashMap<>();
  51. private Map<Player,ResultSet> playerDb = new HashMap<>();
  52. private Map<Player,PermissionAttachment> playerAttachment = new HashMap<>();
  53.  
  54. @Override
  55. public void onEnable() {
  56. Bukkit.getPluginManager().registerEvents(this, this);
  57.  
  58. this.customConnection = new CustomConnection(this);
  59. this.sqlModels = new SQLModels(this);
  60.  
  61. boolean failed = false;
  62. try {
  63. this.customConnection.connect();
  64. this.sqlModels.createTables();
  65.  
  66. // Check configuration for
  67. FileConfiguration config = this.getConfig();
  68. config.addDefault("onlyOneSpawn", false);
  69. config.addDefault("spawnWorld", "world");
  70. config.options().copyDefaults(true);
  71. this.saveConfig();
  72.  
  73. //Try to re-contain data for player
  74. for (this.:
  75. ){
  76.  
  77. }
  78.  
  79. }catch (ClassNotFoundException e) {
  80. failed = true;
  81. this.getLogger().log(Level.SEVERE,"Failed to load MySQL extension!");
  82. }catch (SQLException e) {
  83. failed = true;
  84. this.getLogger().log(Level.SEVERE,"Failed to execute SQL statement (Cannot connect to database)!");
  85. }catch (Exception e) {
  86. failed = true;
  87. this.getLogger().log(Level.SEVERE,"Something went wrong! "+e.getMessage());
  88. e.printStackTrace();
  89. }finally {
  90. if(failed) {
  91. this.getLogger().log(Level.ALL, "Error occures! Disabling plugin!");
  92. Bukkit.getPluginManager().disablePlugin(this);
  93. }else {
  94. this.getLogger().log(Level.ALL, "Plugin successfully loaded!");
  95. }
  96. }
  97. }
  98.  
  99. @Override
  100. public void onDisable() {
  101. try {
  102. this.customConnection.close();
  103. }catch (SQLException e) {
  104. this.getLogger().log(Level.SEVERE,"Something went wrong! "+e.getMessage());
  105. }
  106. }
  107.  
  108. @Override
  109. public boolean onCommand(CommandSender sender,
  110. Command cmd,
  111. String label,
  112. String[] args
  113. ) {
  114.  
  115. Player player = null;
  116. if(sender instanceof Player) {
  117. player = (Player) sender;
  118. }
  119.  
  120. if(cmd.getName().equalsIgnoreCase("home")) {
  121.  
  122. if(this.playerDb.containsKey(player)) {
  123. try {
  124. ResultSet set = this.playerDb.get(player);
  125. Float x = set.getFloat("home_x");
  126. Float y = set.getFloat("home_y");
  127. Float z = set.getFloat("home_z");
  128.  
  129. if(x == null || x == 0 || y == null || y == 0 || z == null || z == 0) {
  130. player.sendMessage(ChatColor.RED+"Momentalne si bezdomovec, pro pouziti tohoto prikazu pouzij /sethome.");
  131. return true;
  132. }else {
  133. String world = set.getString("world");
  134. World portWorld = null;
  135. if(world == null || world == "") {
  136. portWorld = player.getWorld();
  137. }else {
  138. portWorld = Bukkit.getWorld(world);
  139. if(!(portWorld instanceof World))
  140. portWorld = player.getWorld();
  141. }
  142. Location loc = new Location(portWorld, x, y, z);
  143. player.teleport(loc);
  144. player.sendMessage(ChatColor.GREEN+"Vitej doma! Home sweet home...");
  145. return true;
  146. }
  147. }catch (Exception e) {
  148. this.getLogger().log(Level.SEVERE, e.getMessage());
  149. return true;
  150. }
  151.  
  152. }else {
  153. this.getLogger().log(Level.SEVERE, "Wrong user! Player "+player.getName()+" has no database information!");
  154. return true;
  155. }
  156. }
  157.  
  158. if(cmd.getName().equalsIgnoreCase("sethome")) {
  159.  
  160. if(this.playerDb.containsKey(player)) {
  161. try {
  162. Location loc = player.getLocation();
  163. this.sqlModels.createUpdateQuerySync(this.sqlModels.playerModel.updateHome(loc.getX(), loc.getY(), loc.getZ(), this.dbIdMap.get(player),player.getWorld().getName()));
  164. ResultSet res = this.sqlModels.createSelectQuerySync(this.sqlModels.playerModel.getOnePlayerById(this.dbIdMap.get(player)));
  165. if(res.next()) {
  166. this.playerDb.replace(player, res);
  167. player.sendMessage(ChatColor.GREEN+"Gratuluji ti! Ud�lal si prvn� krok k �sp�n�mu �ivotu minecraf��ka! (D�le m��e� pou��t /home k n�vratu na tuto pozici.)");
  168. }else {
  169. player.sendMessage(ChatColor.RED+"Cant update your database informations!.");
  170. }
  171.  
  172. return true;
  173. }catch (Exception e) {
  174. this.getLogger().log(Level.SEVERE, e.getMessage());
  175. return true;
  176. }
  177. }else {
  178. this.getLogger().log(Level.SEVERE, "Wrong user! Player "+player.getName()+" has no database information!");
  179. return true;
  180. }
  181. }
  182.  
  183. if(cmd.getName().equalsIgnoreCase("setwarp")) {
  184.  
  185. if(args.length != 1) {
  186. player.sendMessage(ChatColor.BLUE+"/setwarp [name]");
  187. return true;
  188. }
  189.  
  190. try {
  191. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getOneByName(args[0].toString()));
  192. if(result.next()) {
  193. player.sendMessage(ChatColor.RED+"Warp s t�mto jm�nem ji� existuje pros�m pou�ij jm�no jin�!");
  194. return true;
  195. }else {
  196. Location loc = player.getLocation();
  197. this.sqlModels.createUpdateQuerySync(this.sqlModels.warpModel.insertOne(loc.getX(), loc.getY(), loc.getZ(), args[0].toString(),player.getWorld().getName()));
  198. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi vytvo�il warp "+args[0].toString()+"!");
  199. return true;
  200. }
  201. }catch (Exception e) {
  202. this.getLogger().log(Level.SEVERE, e.getMessage());
  203. }
  204. return true;
  205. }
  206. if(cmd.getName().equalsIgnoreCase("warp")) {
  207.  
  208. if(args.length > 1) {
  209. player.sendMessage(ChatColor.BLUE+"/warp [name]");
  210. return true;
  211. }
  212. if(args.length == 0) {
  213. try {
  214. ResultSet res = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getDataQuery());
  215. List<String> warps = null;
  216. player.sendMessage("");
  217. player.sendMessage(ChatColor.GOLD+"Warp list:");
  218. player.sendMessage("");
  219. while(res.next()) {
  220. player.sendMessage(ChatColor.WHITE+"-"+res.getString("name"));
  221. }
  222. return true;
  223. }catch (Exception e) {
  224. this.getLogger().log(Level.SEVERE, e.getMessage());
  225. }
  226. return true;
  227. }
  228.  
  229. try {
  230. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getOneByName(args[0].toString()));
  231. if(result.next()) {
  232. Location loc = new Location(Bukkit.getWorld(result.getString("world")), result.getFloat("x"), result.getFloat("y"), result.getFloat("z"));
  233. player.teleport(loc);
  234. player.sendMessage(ChatColor.GREEN+"Byl si p�epraven pomoc� TARDIS na m�sto zvan� "+args[0].toString()+"!");
  235. }else {
  236. player.sendMessage(ChatColor.RED+"Tento warp neexistuje pro v�pis v�ech dostupn�ch mo�nost� napi� /warps");
  237. return true;
  238. }
  239. }catch (Exception e) {
  240. this.getLogger().log(Level.SEVERE, e.getMessage());
  241. }
  242. }
  243.  
  244. if(cmd.getName().equalsIgnoreCase("warps")) {
  245. try {
  246. ResultSet res = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getDataQuery());
  247.  
  248. player.sendMessage("");
  249. player.sendMessage(ChatColor.GOLD+"Warp list:");
  250. player.sendMessage("");
  251. while(res.next()) {
  252. player.sendMessage(ChatColor.WHITE+"-"+res.getString("name"));
  253. }
  254. return true;
  255. }catch (Exception e) {
  256. this.getLogger().log(Level.SEVERE, e.getMessage());
  257. }
  258. return true;
  259. }
  260. if(cmd.getName().equalsIgnoreCase("delwarp")) {
  261.  
  262. if(args.length != 1) {
  263. player.sendMessage(ChatColor.BLUE+"/delwarp [name]");
  264. return true;
  265. }
  266.  
  267. try {
  268. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getOneByName(args[0].toString()));
  269. if(result.next()) {
  270. this.sqlModels.createUpdateQuerySync(this.sqlModels.warpModel.deleteOne(result.getInt("id_warp")));
  271. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi vymazal warp "+args[0].toString()+"!");
  272. }else {
  273. player.sendMessage(ChatColor.RED+"Tento warp neexistuje pros�m zjisti si co chce� vlastn� mazat...");
  274. }
  275. }catch (Exception e) {
  276. this.getLogger().log(Level.SEVERE, e.getMessage());
  277. }
  278. return true;
  279. }
  280. if(cmd.getName().equalsIgnoreCase("locwarp")) {
  281.  
  282. if(args.length != 1) {
  283. player.sendMessage(ChatColor.BLUE+"/locwarp [name]");
  284. return true;
  285. }
  286.  
  287. try {
  288. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.warpModel.getOneByName(args[0].toString()));
  289. if(result.next()) {
  290. Location loc = player.getLocation();
  291. this.sqlModels.createUpdateQuerySync(this.sqlModels.warpModel.updateOne(loc.getX(), loc.getY(), loc.getZ(), result.getInt("id"),player.getWorld().getName()));
  292. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi p�enastavil v�choz� pozici warpu "+args[0].toString()+"!");
  293. }else {
  294. player.sendMessage(ChatColor.RED+"Tento warp neexistuje pros�m zjisti si co chce� nastavit!");
  295. return true;
  296. }
  297. }catch (Exception e) {
  298. this.getLogger().log(Level.SEVERE, e.getMessage());
  299. }
  300. }
  301. if(cmd.getName().equalsIgnoreCase("setspawn")) {
  302. try {
  303. this.sqlModels.createUpdateQuerySync(this.sqlModels.spawns.removeOld(player.getWorld().getName()));
  304.  
  305. Location loc = player.getLocation();
  306. this.sqlModels.createUpdateQuerySync(this.sqlModels.spawns.insertSpawn(loc.getX(), loc.getY(), loc.getZ(), loc.getPitch(), loc.getYaw(),player.getWorld().getName()));
  307.  
  308. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi nastavil spawn! Si fakt cool chlap�k!");
  309. }catch (Exception e) {
  310. this.getLogger().log(Level.SEVERE,e.getMessage());
  311. player.sendMessage(ChatColor.RED+"Nem��u nastavit spawn! Pro v�ce informac� zavolej milovan�ho developera :)");
  312. }
  313. return true;
  314. }
  315.  
  316. if(cmd.getName().equalsIgnoreCase("spawn")) {
  317. try {
  318. if(this.getConfig().getBoolean("onlyOneSpawn")) {
  319. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.spawns.getByWorld(this.getConfig().getString("spawnWorld")));
  320. if(result.next()) {
  321. Location loc = new Location(Bukkit.getWorld(result.getString("world")), result.getFloat("x"), result.getFloat("y"), result.getFloat("z"));
  322. loc.setPitch(result.getFloat("pitch"));
  323. loc.setYaw(result.getFloat("yaw"));
  324. player.teleport(loc);
  325. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi se p�esunul v prostoru :O");
  326. }else {
  327. player.sendMessage(ChatColor.RED+"Nem��u naj�t v datab�zi spawn :( Kontaktujte administr�tory!");
  328. }
  329. }else {
  330. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.spawns.getByWorld(player.getWorld().getName()));
  331. if(result.next()) {
  332. Location loc = new Location(Bukkit.getWorld(result.getString("world")), result.getFloat("x"), result.getFloat("y"), result.getFloat("z"));
  333. loc.setPitch(result.getFloat("pitch"));
  334. loc.setYaw(result.getFloat("yaw"));
  335. player.teleport(loc);
  336. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi se p�esunul v prostoru :O");
  337. }else {
  338. player.sendMessage(ChatColor.RED+"Nem��u naj�t v datab�zi spawn :( Kontaktujte administr�tory!");
  339. }
  340. }
  341.  
  342. }catch (Exception e) {
  343. this.getLogger().log(Level.SEVERE,e.getMessage());
  344. player.sendMessage(ChatColor.RED+"Nem��u portovat na spawn! Pro v�ce informac� zavolej milovan�ho developera :)");
  345. }
  346. return true;
  347. }
  348.  
  349. if(cmd.getName().equalsIgnoreCase("amibetter")) {
  350. try {
  351. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.vipModel.getByPlayerActiveOnly(this.dbIdMap.get(player)));
  352. if(result.next()) {
  353. result.beforeFirst();
  354. while(result.next()) {
  355. switch (result.getString("type")) {
  356. case "iron":
  357. player.sendMessage(ChatColor.DARK_GRAY+"[IRON] Jsi n� dobr� kamar�d a m� r�d z�kladn� v�hody! Expirace: "+result.getDate("expire_at").toString());
  358. break;
  359. case "gold":
  360. player.sendMessage(ChatColor.GOLD+"[GOLD] Za�ala l�ska... Pokud m� neopust� nikdy ti nezahnu s jin�m! Expirace: "+result.getDate("expire_at").toString());
  361. break;
  362. case "dia":
  363. player.sendMessage(ChatColor.DARK_AQUA+"[DIA] Ka�d� miluje zlatokopky a nikdo v�c ne� ty! Expirace: "+result.getDate("expire_at").toString());
  364. break;
  365. case "sponzor":
  366. player.sendMessage(ChatColor.UNDERLINE+"[Sponzor] Pane, jak V�m mohu poslou�it? Expirace: "+result.getDate("expire_at"));
  367. break;
  368. default:
  369. break;
  370. }
  371. }
  372. }else {
  373. player.sendMessage(ChatColor.YELLOW+"Jsi �pln� norm�ln�... Sorry jako!");
  374. }
  375. return true;
  376. }catch (Exception e) {
  377. this.getLogger().log(Level.SEVERE,e.getMessage());
  378. player.sendMessage(ChatColor.RED+"Nefunguje p��kaz. Pro v�ce informac� zavolej milovan�ho developera :)");
  379. }
  380. }
  381. if(cmd.getName().equalsIgnoreCase("setvip")) {
  382. try {
  383. if(args.length != 3) {
  384. player.sendMessage(ChatColor.BLUE+ "Pro nastaven� VIP pou�ij /setvip HRAC TYP_VIP POCET_DNI pr: /setvip Isigar dia 5");
  385. return true;
  386. }
  387.  
  388. try {
  389. double days = Double.parseDouble(args[2]);
  390.  
  391. Calendar cal = Calendar.getInstance();
  392. cal.add(Calendar.DATE, (int)days);
  393.  
  394. if(Bukkit.getPlayer(args[0].toString()).isOnline()) {
  395. Player hrac = Bukkit.getPlayer(args[0].toString());
  396. ResultSet res = this.sqlModels.createSelectQuerySync(this.sqlModels.vipModel.getByPlayerActiveOnly(this.dbIdMap.get(hrac)));
  397. if(res.next()) {
  398. res.beforeFirst();
  399. int iterator = 0;
  400. while(res.next()) {
  401. System.out.println("Sna��me se naj�t spojitost s "+args[1].toString().toLowerCase() +" - "+res.getString("type"));
  402. if(res.getString("type").equalsIgnoreCase(args[1].toString())) {
  403. System.out.println("Na�li jsme spojitost! "+res.getString("type"));
  404. String updateSql = this.sqlModels.vipModel.updateActualExpire(cal.getTime(), res.getInt("id_vip"));
  405. this.sqlModels.createUpdateQuerySync(updateSql);
  406. player.sendMessage(ChatColor.GREEN+"�sp�n� jste prodlou�il "+args[1].toString().toLowerCase()+" VIP hr��i "+args[0].toString()+" o "+days+" dn�");
  407. }else {
  408. iterator++;
  409. }
  410.  
  411. }
  412.  
  413. res.last();
  414. if(res.getRow() == iterator) {
  415. String sql = null;
  416. switch (args[1].toString().toLowerCase()) {
  417. case "iron":
  418. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.iron, this.dbIdMap.get(hrac));
  419. break;
  420. case "gold":
  421. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.gold, this.dbIdMap.get(hrac));
  422. break;
  423. case "dia":
  424. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.dia, this.dbIdMap.get(hrac));
  425. break;
  426. case "sponzor":
  427. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.sponzor, this.dbIdMap.get(hrac));
  428. break;
  429. default:
  430. player.sendMessage(ChatColor.BLUE+ "VIP mďż˝ poze 4 typy! iron, gold, dia, sponzor");
  431. return true;
  432. }
  433.  
  434. this.sqlModels.createUpdateQuerySync(sql);
  435. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi daroval "+args[1].toString().toLowerCase()+" VIP hr��i "+args[0].toString()+" na "+days+" dn�");
  436. Bukkit.getPlayer(args[0].toString()).sendMessage(ChatColor.GOLD+"Pr�v� V�m bylo darov�n� "+args[1].toString().toLowerCase()+" VIP na "+days+" dn�");
  437. if(args[1].toString().toLowerCase() == "sponzor") {
  438. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0].toString()+" group add "+args[1].toString().toLowerCase()+"");
  439. }
  440. else {
  441. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0].toString()+" group add "+args[1].toString().toLowerCase()+"vip");
  442. }
  443.  
  444. }
  445. return true;
  446. }else {
  447. String sql = null;
  448. switch (args[1].toString().toLowerCase()) {
  449. case "iron":
  450. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.iron, this.dbIdMap.get(hrac));
  451. break;
  452. case "gold":
  453. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.gold, this.dbIdMap.get(hrac));
  454. break;
  455. case "dia":
  456. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.dia, this.dbIdMap.get(hrac));
  457. break;
  458. case "sponzor":
  459. sql = this.sqlModels.vipModel.insertNew(cal.getTime(), VipType.sponzor, this.dbIdMap.get(hrac));
  460. break;
  461. default:
  462. player.sendMessage(ChatColor.BLUE+ "VIP mďż˝ poze 4 typy! iron, gold, dia, sponzor");
  463. return true;
  464. }
  465.  
  466. this.sqlModels.createUpdateQuerySync(sql);
  467. player.sendMessage(ChatColor.GREEN+"�sp�n� jsi daroval "+args[1].toString().toLowerCase()+" VIP hr��i "+args[0].toString()+" na "+days+" dn�");
  468. Bukkit.getPlayer(args[0].toString()).sendMessage(ChatColor.GOLD+"Pr�v� V�m bylo darov�n� "+args[1].toString().toLowerCase()+" VIP na "+days+" dn�");
  469. if(args[1].toString().toLowerCase() == "sponzor") {
  470. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0].toString()+" group add "+args[1].toString().toLowerCase()+"");
  471. }
  472. else {
  473. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user "+args[0].toString()+" group add "+args[1].toString().toLowerCase()+"vip");
  474. }
  475.  
  476. return true;
  477. }
  478. }else {
  479. player.sendMessage(ChatColor.BLUE+ "Hr�� kter�mu chcete d�t VIP mus� b�t online!");
  480. return true;
  481. }
  482. }catch (NumberFormatException e) {
  483. player.sendMessage(ChatColor.BLUE+ "Pro nastaven� VIP pou�ij /setvip HRAC POCET_DNI - po�et dn� je ��slo!");
  484. return true;
  485. }
  486. }catch (Exception e) {
  487. this.getLogger().log(Level.SEVERE,e.getMessage());
  488. player.sendMessage(ChatColor.RED+"Nefunguje p��kaz. Pro v�ce informac� zavolej milovan�ho developera :)");
  489. }
  490. }
  491.  
  492. if(cmd.getName().equalsIgnoreCase("setlock")) {
  493. try {
  494. Set<Material> doors = null;
  495. doors.add(Material.ACACIA_DOOR);
  496. doors.add(Material.BIRCH_DOOR);
  497. doors.add(Material.DARK_OAK_DOOR);
  498. doors.add(Material.IRON_DOOR);
  499. doors.add(Material.JUNGLE_DOOR);
  500. for(Material mat : doors) {
  501. if(player.getTargetBlock(null,50).getType().equals(mat)) {
  502.  
  503. }else {
  504. continue;
  505. }
  506. }
  507. }catch (Exception e) {
  508. this.getLogger().log(Level.SEVERE,e.getMessage());
  509. player.sendMessage(ChatColor.RED+"Nefunguje p��kaz. Pro v�ce informac� zavolej milovan�ho developera :)");
  510. }
  511. }
  512. return false;
  513. }
  514.  
  515. @EventHandler(priority=EventPriority.NORMAL)
  516. public void onPlayerJoin(PlayerJoinEvent event) {
  517. Bukkit.broadcastMessage("Welcome here! "+event.getPlayer().getName());
  518.  
  519. try {
  520. ResultSet result = this.sqlModels.createSelectQuerySync(this.sqlModels.playerModel.getOnePlayerByNameAndUID(event.getPlayer().getName(), event.getPlayer().getUniqueId().toString()));
  521. if(result.next()) {
  522. this.getLogger().log(Level.INFO, "Find database record for player "+event.getPlayer().getName()+" with ID "+result.getInt("id_player")+"!");
  523.  
  524. this.dbIdMap.put(event.getPlayer(), result.getInt("id_player"));
  525. this.playerDb.put(event.getPlayer(), result);
  526.  
  527. this.sqlModels.createUpdateQuery(this.sqlModels.playerJoinsModel.insertRecordQuery(this.dbIdMap.get(event.getPlayer()), event.getPlayer().getName()));
  528. }else {
  529. this.getLogger().log(Level.INFO, "Player "+event.getPlayer().getName()+" has no data in database. Creating new records!");
  530. this.sqlModels.createUpdateQuerySync(this.sqlModels.playerModel.insertPlayer(event.getPlayer().getName(), event.getPlayer().getUniqueId().toString()));
  531. }
  532. // Remove vips
  533. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group remove ironvip");
  534. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group remove goldvip");
  535. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group remove diavip");
  536. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group remove sponzor");
  537.  
  538. // Set permission for VIP if he has one
  539. ResultSet set = this.sqlModels.createSelectQuerySync(this.sqlModels.vipModel.getByPlayerActiveOnly(this.dbIdMap.get(event.getPlayer())));
  540. if(set.next()) {
  541. set.last();
  542. System.out.println(set.getRow());
  543. set.beforeFirst();
  544.  
  545. while(set.next()) {
  546. System.out.println(set.getString("type"));
  547. switch (set.getString("type")) {
  548. case "sponzor":
  549. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group add sponzor");
  550. break;
  551. case "dia":
  552. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group add diavip");
  553. break;
  554. case "gold":
  555. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group add goldvip");
  556. break;
  557. case "iron":
  558. Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"pex user "+event.getPlayer().getName()+" group add ironvip");
  559. break;
  560. }
  561. }
  562. }
  563. }catch (Exception e) {
  564. e.printStackTrace();
  565. }
  566. }
  567.  
  568. @EventHandler(priority=EventPriority.NORMAL)
  569. public void onPlayerQuit(PlayerQuitEvent event) throws ClassNotFoundException, SQLException {
  570. //Get last join
  571. try {
  572. SQLModels sqlModel = this.sqlModels;
  573. ResultCallback resultCallback = this.sqlModels.new ResultCallback() {
  574.  
  575. @Override
  576. public void done(ResultSet res) throws SQLException, ClassNotFoundException {
  577. try {
  578. if(res.next()) {
  579. sqlModel.createUpdateQuery(sqlModel.playerQuitModel.insertRecordQuery(res.getInt("player"), res.getInt("id")));
  580. Bukkit.getLogger().log(Level.INFO, "Successfuly logged player "+event.getPlayer().getName()+" quit action!");
  581. } else {
  582. Bukkit.getLogger().log(Level.WARNING, "Cannot find "+event.getPlayer().getName()+" join log!");
  583. }
  584. } catch (Exception e) {
  585. e.printStackTrace();
  586. }
  587. }
  588.  
  589. };
  590. this.sqlModels.createSelectQuery(this.sqlModels.playerJoinsModel.getLastByPlayer(this.dbIdMap.get(event.getPlayer())), resultCallback);
  591. }catch (Exception e) {
  592. this.getLogger().log(Level.SEVERE, "Cant log quit action for player "+event.getPlayer().getName());
  593. }
  594.  
  595. if(this.dbIdMap.containsKey(event.getPlayer())) {
  596. this.dbIdMap.remove(event.getPlayer());
  597. }
  598. if(this.playerAttachment.containsKey(event.getPlayer())) {
  599. this.playerAttachment.remove(event.getPlayer());
  600. }
  601.  
  602. if(this.playerDb.containsKey(event.getPlayer())) {
  603. this.playerDb.remove(event.getPlayer());
  604. }
  605. }
  606.  
  607. @EventHandler(priority=EventPriority.NORMAL)
  608. public void onPlayerDeath(PlayerDeathEvent event) {
  609. Player killedPlayer = event.getEntity().getPlayer();
  610.  
  611. if(event.getEntity().getKiller() instanceof Player) {
  612. Player killer = (Player) event.getEntity().getKiller();
  613. event.setDeathMessage(ChatColor.RED+"Player "+ killedPlayer.getName() +" was killed by "+ killer.getName() +"!");
  614. }else {
  615. event.setDeathMessage(ChatColor.BLUE+"Player "+killedPlayer.getName()+" is now dead!");
  616. }
  617. }
  618.  
  619.  
  620. public CustomConnection getCustomConnection() {
  621. return this.customConnection;
  622. }
  623.  
  624. }
Add Comment
Please, Sign In to add comment