package me.arcodeskel.uwpmcutils.commands; import me.arcodeskel.uwpmcutils.Main; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import java.net.http.WebSocket; import java.sql.*; public class Rank implements WebSocket.Listener, CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String s, String[] args) { if (sender instanceof Player) { Player p = (Player) sender; String updRank = "UPDATE rank SET rank = ? WHERE username = ?"; String insertNotExist = "INSERT OR IGNORE INTO rank (username) VALUES (?)"; try (Connection connection = DatabaseConnection.getConnection()) { try (PreparedStatement preparedStatement = connection.prepareStatement(insertNotExist)) { preparedStatement.setString(1, p.getName()); preparedStatement.executeUpdate(); preparedStatement.close(); } PreparedStatement psUpdate = connection.prepareStatement(updRank); if (args[1].equals("guest") || args[1].equals("member") ||args[1].equals("builder") || args[1].equals("mod") || args[1].equals("dev") || args[1].equals("owner")) { psUpdate.setString(1, args[1]); psUpdate.setString(2, args[0]); psUpdate.executeUpdate(); psUpdate.close(); } else { p.sendMessage(ChatColor.RED + "Incorrect input for rank. Options are: guest, member, builder, mod, dev, owner (case sensitive)"); psUpdate.close(); } } catch (ArrayIndexOutOfBoundsException | SQLException e) { p.sendMessage(ChatColor.RED + "Usages: /rank {username} {rank} (or something went wrong)"); try { throw e; } catch (SQLException ex) { throw new RuntimeException(ex); } } } return true; } public static void addGuest(String player) { try (Connection connection = DatabaseConnection.getConnection()) { // Insert username if it doesn't exist String insertNotExist = "INSERT OR IGNORE INTO rank (username) VALUES (?)"; try (PreparedStatement psInsert = connection.prepareStatement(insertNotExist)) { psInsert.setString(1, player); psInsert.executeUpdate(); psInsert.close(); } // Update rank String updRank = "UPDATE rank SET rank = ? WHERE username = ?"; try (PreparedStatement psUpdate = connection.prepareStatement(updRank)) { psUpdate.setString(1, "guest"); psUpdate.setString(2, player); psUpdate.executeUpdate(); psUpdate.close(); } } catch (SQLException e) { e.printStackTrace(); // Handle exception } } }