UW-PlattevilleMC/uwp-utils/commands/Rank.java

82 lines
3.2 KiB
Java

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
}
}
}