RankCommand.java (2772B)
1 package me.night.nullvalkyrie.commands; 2 3 import me.night.nullvalkyrie.database.RankDataManager; 4 import me.night.nullvalkyrie.util.Rank; 5 import org.bukkit.Bukkit; 6 import org.bukkit.ChatColor; 7 import org.bukkit.OfflinePlayer; 8 import org.bukkit.command.CommandSender; 9 import org.bukkit.entity.Player; 10 import org.bukkit.util.StringUtil; 11 12 import java.util.ArrayList; 13 import java.util.List; 14 15 public class RankCommand extends Command { 16 17 public RankCommand() { 18 super("rank", new String[]{}, "Set rank of players", "nv.rank.add"); 19 } 20 21 22 @Override 23 public void onCommand(CommandSender sender, String[] args) { 24 if (sender instanceof Player player) { 25 if (!player.isOp()) { 26 player.sendMessage(ChatColor.RED + "You must be server operator to use this command"); 27 return; 28 } 29 if (args.length == 2) { 30 if (Bukkit.getOfflinePlayer(args[0]).hasPlayedBefore()) { 31 OfflinePlayer target = Bukkit.getOfflinePlayer(args[0]); 32 for (Rank rank : Rank.values()) { 33 if (rank.name().equalsIgnoreCase(args[1])) { 34 RankDataManager.setRank(target.getUniqueId(), rank); 35 player.sendMessage(ChatColor.GREEN + "You changed " + target.getName() + "'s rank to " + rank.getDisplay()); 36 if (target.isOnline()) 37 target.getPlayer().sendMessage(ChatColor.GREEN + player.getName() + " set your rank to " + rank.getDisplay()); 38 return; 39 } 40 } 41 player.sendMessage(ChatColor.RED + "Invalid Rank, please specify a valid rank, ROOKIE, SPECIAL, ADMIN, OWNER"); 42 } else player.sendMessage("This player has never played in this server before!"); 43 } else player.sendMessage(ChatColor.RED + "Invalid parameter, use /rank <Player> <Rank>"); 44 } 45 } 46 47 @Override 48 public List<String> onTabComplete(CommandSender sender, String[] args) { 49 if (args.length == 1) { 50 List<String> names = new ArrayList<>(); 51 for (Player player : Bukkit.getOnlinePlayers()) { 52 names.add(player.getName()); 53 } 54 return StringUtil.copyPartialMatches(args[0], names, new ArrayList<>()); 55 } else if (args.length == 2) { 56 List<String> roles = new ArrayList<>(); 57 for (Rank rank : Rank.values()) { 58 roles.add(rank.name()); 59 } 60 return StringUtil.copyPartialMatches(args[1], roles, new ArrayList<>()); 61 } 62 return new ArrayList<>(); 63 } 64 }