82 lines
3.2 KiB
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
|
|
}
|
|
}
|
|
}
|