Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.snics.sql;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import com.mysql.jdbc.PreparedStatement;
- public class SQL extends JavaPlugin implements Listener
- {
- private static Connection connection;
- String label = "§f[§c§lLABEL§f] ";
- public void onEnable()
- {
- Bukkit.getServer().getPluginManager().registerEvents(this, this);
- }
- public void onDisable()
- {
- try
- {
- if(connection!= null && !connection.isClosed())
- connection.close();
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
- public synchronized static void openConnection()
- {
- try
- {
- connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/thebcbroz", "root", "Pidiboe002");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public synchronized static void closeConnection()
- {
- try
- {
- connection.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- public synchronized static boolean playerDataContainsPlayer (Player player)
- {
- try
- {
- PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT * FROM `player_data` WHERE player=?;");
- sql.setString(1, player.getName());
- ResultSet resultSet = sql.executeQuery();
- boolean containsPlayer = resultSet.next();
- sql.close();
- resultSet.close();
- return containsPlayer;
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return false;
- }
- }
- @EventHandler
- public void onPlayerLogin (PlayerLoginEvent e)
- {
- openConnection();
- try
- {
- int previousLogins = 0;
- if(playerDataContainsPlayer(e.getPlayer()))
- {
- PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT logins FROM `player_data` WHERE player =?;");
- sql.setString(1, e.getPlayer().getName());
- ResultSet result = sql.executeQuery();
- result.next();
- previousLogins = result.getInt("logins");
- PreparedStatement loginsUpdate = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET logins=? WHERE player=?;");
- loginsUpdate.setInt(1, previousLogins+1);
- loginsUpdate.setString(2, e.getPlayer().getName());
- loginsUpdate.executeUpdate();
- loginsUpdate.close();
- sql.close();
- result.close();
- }
- else
- {
- PreparedStatement newPlayer = (PreparedStatement) connection.prepareStatement("INSERT INTO `player_data` VALUES(?, 0, 0, 1);");
- newPlayer.setString(1, e.getPlayer().getName());
- newPlayer.execute();
- newPlayer.close();
- }
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- finally
- {
- closeConnection();
- }
- }
- @EventHandler
- public void onPlayerDeath (PlayerDeathEvent e)
- {
- openConnection();
- try
- {
- int previousDeaths = 0;
- if(playerDataContainsPlayer(e.getEntity()))
- {
- PreparedStatement sql = (PreparedStatement) connection.prepareStatement("SELECT deaths FROM `player_data` WHERE player=?;");
- sql.setString(1, e.getEntity().getName());
- ResultSet result = sql.executeQuery();
- result.next();
- previousDeaths = result.getInt("deaths");
- PreparedStatement deathsUpdate = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET deaths=? WHERE player=?;");
- deathsUpdate.setInt(1, previousDeaths+1);
- deathsUpdate.setString(2, e.getEntity().getName());
- deathsUpdate.executeUpdate();
- deathsUpdate.close();
- sql.close();
- result.close();
- }
- else
- {
- PreparedStatement newPlayer = (PreparedStatement) connection.prepareStatement("INSERT INTO `player_data` VALUES(?,0,0,0);");
- newPlayer.setString(1, e.getEntity().getName());
- newPlayer.execute();
- newPlayer.close();
- }
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- finally
- {
- closeConnection();
- }
- }
- public boolean onCommand (CommandSender sender, Command cmd, String commandLabel, String[] args)
- {
- if(cmd.getName().equalsIgnoreCase("database"))
- {
- if(sender.isOp() == false)
- {
- sender.sendMessage(label + "Jij kan deze command niet gebruiken!");
- return true;
- }
- if(args.length == 0)
- {
- sender.sendMessage(label + "Gebruik: /database reset (kills/deaths/logins)");
- return true;
- }
- if(args.length == 2)
- {
- if(args[0].equalsIgnoreCase("reset"))
- {
- if(args[1].equalsIgnoreCase("deaths"))
- {
- openConnection();
- try
- {
- PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET deaths = 0");
- sender.sendMessage(label + "Reset van §cdeaths §fis succesvol verlopen!");
- resetDatabase.executeUpdate();
- resetDatabase.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- sender.sendMessage(label + "Er is iets fout gegaan in de configuratie van de database!");
- }
- finally
- {
- closeConnection();
- }
- }
- if(args[1].equalsIgnoreCase("logins"))
- {
- openConnection();
- try
- {
- PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET logins = 0;");
- sender.sendMessage(label + "Reset van §clogins §fis succesvol verlopen!");
- resetDatabase.executeUpdate();
- resetDatabase.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- sender.sendMessage(label + "Er is iets fout gegaan in de configuratie van de database!");
- }
- finally
- {
- closeConnection();
- }
- }
- if(args[1].equalsIgnoreCase("kills"))
- {
- openConnection();
- try
- {
- PreparedStatement resetDatabase = (PreparedStatement) connection.prepareStatement("UPDATE `player_data` SET kills=0;");
- sender.sendMessage(label + "Reset van §ckills §fis succesvol verlopen!");
- resetDatabase.executeUpdate();
- resetDatabase.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- sender.sendMessage(label + "Er is iets fout gegaan n de configuratie van de database!");
- }
- finally
- {
- closeConnection();
- }
- }
- return true;
- }
- }
- sender.sendMessage(label + "§cFout gebruik!");
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement