Advertisement
Guest User

Untitled

a guest
May 9th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. package me.koekjeee.mysql;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.player.PlayerJoinEvent;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14.  
  15. public class Main extends JavaPlugin implements Listener {
  16.  
  17. private static Connection connection;
  18.  
  19. public void onEnable() {
  20. getServer().getPluginManager().registerEvents(this, this);
  21. }
  22.  
  23. public void onDisable() {
  24. try {
  25. if(connection != null && connection.isClosed())
  26. connection.close();
  27. } catch(SQLException e) {
  28.  
  29. }
  30. }
  31.  
  32. public synchronized static void closeConnection() {
  33. try {
  34. connection.close();
  35. } catch(Exception e) {
  36. e.printStackTrace();
  37. }
  38. }
  39.  
  40. public synchronized static void openConnection() {
  41. try {
  42. connection = DriverManager.getConnection("jdbc:mysql://localhost.3306/thebcbroz", "root", "");
  43. } catch(Exception e) {
  44. e.printStackTrace();
  45. }
  46. }
  47.  
  48. public synchronized static boolean playerDataContainsPlayer(Player player) {
  49. try {
  50. PreparedStatement sql = connection.prepareStatement("SELECT * FROM 'player_data' WHERE player=?;");
  51. sql.setString(1, player.getName());
  52. ResultSet resultSet = sql.executeQuery();
  53. boolean containsPlayer = resultSet.next();
  54.  
  55. sql.close();
  56. resultSet.close();
  57.  
  58. return containsPlayer;
  59. } catch(Exception e) {
  60. e.printStackTrace();
  61. return false;
  62. }
  63. }
  64.  
  65. @EventHandler
  66. public void onJoin(PlayerJoinEvent event) {
  67. openConnection();
  68. try {
  69. int previousLogins = 0;
  70.  
  71. if(playerDataContainsPlayer(event.getPlayer())) {
  72. PreparedStatement sql = connection.prepareStatement("SELECT logins FROM 'player_data' WHERE player=?;");
  73. sql.setString(1, event.getPlayer().getName());
  74.  
  75. ResultSet result = sql.executeQuery();
  76. result.next();
  77.  
  78. previousLogins = result.getInt("logins");
  79.  
  80. PreparedStatement loginsUpdate = connection.prepareStatement("UPDATE 'player_data' SET logins=? WHERE player=?");
  81. loginsUpdate.setInt(1, previousLogins + 1);
  82. loginsUpdate.setString(2, event.getPlayer().getName());
  83. loginsUpdate.executeUpdate();
  84.  
  85. loginsUpdate.close();
  86. sql.close();
  87. result.close();
  88. } else {
  89. PreparedStatement newPlayer = connection.prepareStatement("INSERT INTO 'player_data' values(?,0,0,1);");
  90. newPlayer.setString(1, event.getPlayer().getName());
  91. newPlayer.execute();
  92. newPlayer.close();
  93. }
  94. } catch(Exception e) {
  95. e.printStackTrace();
  96. } finally {
  97. closeConnection();
  98. }
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement