Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.hobblyhobo;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.plugin.ServicesManager;
- import org.bukkit.plugin.java.JavaPlugin;
- import me.lucko.luckperms.api.LuckPermsApi;
- import me.lucko.luckperms.api.User;
- import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
- import me.lucko.luckperms.exceptions.ObjectLacksException;
- public class Main extends JavaPlugin implements Listener {
- FileConfiguration config = this.getConfig();
- private static Connection connection;
- private static String databasename;
- private static String username;
- private static String password;
- private static String host;
- private static String port;
- public LuckPermsApi luckPerms;
- public List<String> ranks = getConfig().getStringList("ranks");
- public void onEnable(){
- getServer().getPluginManager().registerEvents(this, this);
- config.options().copyDefaults(true);
- saveConfig();
- ServicesManager manager = Bukkit.getServicesManager();
- databasename = config.getString("databasename");
- username = config.getString("username");
- password = config.getString("password");
- host = config.getString("host");
- port = config.getString("port");
- if (manager.isProvidedFor(LuckPermsApi.class)) {
- final LuckPermsApi api = manager.getRegistration(LuckPermsApi.class).getProvider();
- luckPerms = api;
- }
- }
- 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://"+host+":"+port+"/"+databasename,username,password);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public synchronized static void closeConnection() {
- try {
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public synchronized static boolean playerDataContiansPlayer(Player player){
- try {
- PreparedStatement sql = connection
- .prepareStatement("SELECT * FROM `store_data` WHERE UUID=?;");
- sql.setString(1, player.getUniqueId().toString());
- ResultSet resultSet = sql.executeQuery();
- boolean containsPlayer = resultSet.next();
- sql.close();
- resultSet.close();
- return containsPlayer;
- } catch (SQLException e) {
- e.printStackTrace();
- return false;
- }
- }
- public void refreshName(Player player){
- openConnection();
- try {
- if (playerDataContiansPlayer(player)){
- PreparedStatement sql = connection
- .prepareStatement("SELECT player_name FROM `store_data` WHERE UUID=?;");
- sql.setString(1, player.getUniqueId().toString());
- ResultSet result = sql.executeQuery();
- result.next();
- if (result.getString("player_name") != player.getName()){
- PreparedStatement nameSet = connection
- .prepareStatement("UPDATE `store_data` SET player_name=? WHERE UUID=?");
- nameSet.setString(1, player.getName());
- nameSet.setString(2, player.getUniqueId().toString());
- nameSet.executeUpdate();
- nameSet.close();
- }
- sql.close();
- result.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- }
- public int getDonationRank(Player player){
- openConnection();
- int donationRank = 0;
- try {
- if (playerDataContiansPlayer(player)){
- PreparedStatement sql = connection
- .prepareStatement("SELECT donation_rank FROM `store_data` WHERE UUID=?;");
- sql.setString(1, player.getUniqueId().toString());
- ResultSet result = sql.executeQuery();
- result.next();
- donationRank = result.getInt("donation_rank");
- sql.close();
- result.close();
- } else {
- PreparedStatement newPlayer = connection
- .prepareStatement("INSERT INTO `store_data` values(?,?,0);");
- newPlayer.setString(1, player.getUniqueId().toString());
- newPlayer.setString(2, player.getName());
- newPlayer.execute();
- newPlayer.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- closeConnection();
- }
- return donationRank;
- }
- @EventHandler
- public void onPlayerEnter(PlayerLoginEvent e){
- refreshName(e.getPlayer());
- int donationRank = getDonationRank(e.getPlayer());
- User user = luckPerms.getUser(e.getPlayer().getUniqueId());
- if (donationRank == 0){
- for (int i = 0; i < ranks.size(); i++) {
- try {
- user.removeGroup(luckPerms.getGroup(ranks.get(i)));
- } catch (ObjectLacksException e1) {
- e1.printStackTrace();
- }
- }
- }else{
- for (int i = 0; i < ranks.size(); i++) {
- try {
- user.removeGroup(luckPerms.getGroup(ranks.get(i)));
- } catch (ObjectLacksException e1) {
- e1.printStackTrace();
- }
- }
- try {
- user.addGroup(luckPerms.getGroup(ranks.get(donationRank)));
- } catch (ObjectAlreadyHasException e1) {
- e1.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement