Advertisement
Guest User

Plugin 1

a guest
Oct 13th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.75 KB | None | 0 0
  1. package me.snics.sql;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.entity.PlayerDeathEvent;
  15. import org.bukkit.event.player.PlayerLoginEvent;
  16. import org.bukkit.plugin.java.JavaPlugin;
  17.  
  18. import com.mysql.jdbc.PreparedStatement;
  19.  
  20. public class SQL extends JavaPlugin implements Listener
  21. {
  22.     private static Connection connection;
  23.     String label = "§f[§c§lLABEL§f] ";
  24.    
  25.     public void onEnable()
  26.     {
  27.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  28.     }
  29.    
  30.     public void onDisable()
  31.     {
  32.         try
  33.         {
  34.            
  35.             if(connection!= null && !connection.isClosed())
  36.                 connection.close();
  37.         }
  38.         catch (SQLException e)
  39.         {
  40.             e.printStackTrace();
  41.         }
  42.     }
  43.    
  44.     public synchronized static void openConnection()
  45.     {
  46.         try
  47.         {
  48.             connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/thebcbroz", "root", "Pidiboe002");
  49.         }
  50.         catch (Exception e)
  51.         {
  52.             e.printStackTrace();
  53.         }
  54.     }
  55.    
  56.     public synchronized static void closeConnection()
  57.     {
  58.         try
  59.         {
  60.             connection.close();
  61.         }
  62.         catch (Exception e)
  63.         {
  64.             e.printStackTrace();
  65.         }
  66.     }
  67.    
  68.     public synchronized static boolean playerDataContainsPlayer (Player player)
  69.     {
  70.         try
  71.         {
  72.             PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT * FROM `player_data` WHERE player=?;");
  73.             sql.setString(1, player.getName());
  74.             ResultSet resultSet = sql.executeQuery();
  75.             boolean containsPlayer = resultSet.next();
  76.            
  77.             sql.close();
  78.             resultSet.close();
  79.            
  80.             return containsPlayer;
  81.         }
  82.         catch (Exception e)
  83.         {
  84.             e.printStackTrace();
  85.             return false;
  86.         }
  87.     }
  88.    
  89.     @EventHandler
  90.     public void onPlayerLogin (PlayerLoginEvent e)
  91.     {
  92.         openConnection();
  93.         try
  94.         {
  95.             int previousLogins = 0;
  96.            
  97.             if(playerDataContainsPlayer(e.getPlayer()))
  98.             {
  99.                 PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT logins FROM `player_data` WHERE player =?;");
  100.                 sql.setString(1, e.getPlayer().getName());
  101.                
  102.                 ResultSet result = sql.executeQuery();
  103.                 result.next();
  104.                
  105.                 previousLogins = result.getInt("logins");
  106.                
  107.                 PreparedStatement loginsUpdate = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET logins=? WHERE player=?;");
  108.                 loginsUpdate.setInt(1, previousLogins+1);
  109.                 loginsUpdate.setString(2, e.getPlayer().getName());
  110.                
  111.                 loginsUpdate.executeUpdate();
  112.                 loginsUpdate.close();
  113.                 sql.close();
  114.                 result.close();
  115.             }
  116.             else
  117.             {
  118.                 PreparedStatement newPlayer = (PreparedStatement) connection.prepareStatement("INSERT INTO `player_data` VALUES(?, 0, 0, 1);");
  119.                 newPlayer.setString(1, e.getPlayer().getName());
  120.                 newPlayer.execute();
  121.                 newPlayer.close();
  122.             }
  123.         }
  124.         catch (Exception ex)
  125.         {
  126.             ex.printStackTrace();
  127.         }
  128.         finally
  129.         {
  130.             closeConnection();
  131.         }
  132.     }
  133.    
  134.     @EventHandler
  135.     public void onPlayerDeath (PlayerDeathEvent e)
  136.     {
  137.         openConnection();
  138.         try
  139.         {
  140.             int previousDeaths = 0;
  141.             if(playerDataContainsPlayer(e.getEntity()))
  142.             {
  143.                 PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT deaths FROM `player_data` WHERE player=?;");
  144.                 sql.setString(1, e.getEntity().getName());
  145.                
  146.                 ResultSet result = sql.executeQuery();
  147.                 result.next();
  148.                
  149.                 previousDeaths = result.getInt("deaths");
  150.                
  151.                 PreparedStatement deathsUpdate = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET deaths=? WHERE player=?;");
  152.                 deathsUpdate.setInt(1, previousDeaths+1);
  153.                 deathsUpdate.setString(2, e.getEntity().getName());
  154.        
  155.                
  156.                 deathsUpdate.executeUpdate();
  157.                 deathsUpdate.close();
  158.                 sql.close();
  159.                 result.close();
  160.             }
  161.             else
  162.             {
  163.                 PreparedStatement newPlayer = (PreparedStatement) connection.prepareStatement("INSERT INTO `player_data` VALUES(?,0,0,0);");
  164.                 newPlayer.setString(1, e.getEntity().getName());
  165.                 newPlayer.execute();
  166.                 newPlayer.close();
  167.             }
  168.         }
  169.         catch (Exception ex)
  170.         {
  171.             ex.printStackTrace();
  172.         }
  173.         finally
  174.         {
  175.             closeConnection();
  176.         }
  177.     }
  178.    
  179.     public boolean onCommand (CommandSender sender, Command cmd, String commandLabel, String[] args)
  180.  
  181.     {
  182.         if(cmd.getName().equalsIgnoreCase("database"))
  183.         {
  184.             if(sender.isOp() == false)
  185.             {
  186.                 sender.sendMessage(label + "Jij kan deze command niet gebruiken!");
  187.                 return true;
  188.             }
  189.             if(args.length == 0)
  190.             {
  191.                 sender.sendMessage(label + "Gebruik: /database reset (kills/deaths/logins)");
  192.                 return true;
  193.             }
  194.             if(args.length == 2)
  195.             {
  196.                 if(args[0].equalsIgnoreCase("reset"))
  197.                 {
  198.                     if(args[1].equalsIgnoreCase("deaths"))
  199.                     {
  200.                         openConnection();
  201.                         try
  202.                         {
  203.                             PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET deaths = 0");
  204.                             sender.sendMessage(label + "Reset van §cdeaths §fis succesvol verlopen!");
  205.                             resetDatabase.executeUpdate();
  206.                             resetDatabase.close();
  207.                         }
  208.                         catch (Exception e)
  209.                         {
  210.                             e.printStackTrace();
  211.                             sender.sendMessage(label + "Er is iets fout gegaan in de configuratie van de database!");
  212.                         }
  213.                         finally
  214.                         {
  215.                             closeConnection();
  216.                         }
  217.                     }
  218.                    
  219.                     if(args[1].equalsIgnoreCase("logins"))
  220.                     {
  221.                         openConnection();
  222.                         try
  223.                         {
  224.                             PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET logins = 0;");
  225.                             sender.sendMessage(label + "Reset van §clogins §fis succesvol verlopen!");
  226.                             resetDatabase.executeUpdate();
  227.                             resetDatabase.close();
  228.  
  229.                         }
  230.                         catch (Exception e)
  231.                         {
  232.                             e.printStackTrace();
  233.                             sender.sendMessage(label + "Er is iets fout gegaan in de configuratie van de database!");
  234.                         }
  235.                         finally
  236.                         {
  237.                             closeConnection();
  238.  
  239.                         }
  240.                     }
  241.                    
  242.                     if(args[1].equalsIgnoreCase("kills"))
  243.                     {
  244.                         openConnection();
  245.                         try
  246.                         {
  247.                             PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET kills=0;");
  248.                             sender.sendMessage(label + "Reset van §ckills §fis succesvol verlopen!");
  249.                             resetDatabase.executeUpdate();
  250.                             resetDatabase.close();
  251.                         }
  252.                         catch (Exception e)
  253.                         {
  254.                             e.printStackTrace();
  255.                             sender.sendMessage(label + "Er is iets fout gegaan n de configuratie van de database!");
  256.                         }
  257.                         finally
  258.                         {
  259.                             closeConnection();
  260.                         }
  261.                     }
  262.                     return true;
  263.                 }
  264.             }
  265.             sender.sendMessage(label + "§cFout gebruik!");
  266.         }
  267.         return true;
  268.     }
  269. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement