package eu.univento.core.commands; import eu.univento.core.Core; import eu.univento.core.api.AutoCommand; import eu.univento.core.api.languages.Messages; import eu.univento.core.api.player.CustomPlayer; import eu.univento.core.api.player.Perms.Ranks; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.List; import java.util.stream.Collectors; /** * sets ranks for players * @author joethei * @version 1.0 */ public class SetRank extends AutoCommand{ /** * @param plugin main class * @param command command to execute * @param description describes the command * @param aliases aliases of command */ public SetRank(Core plugin, String command, String description, String[] aliases) { super(plugin, command, description, aliases); } @Override public boolean execute(CommandSender sender, String label, String[] args) { if(sender instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); Messages msgs = new Messages(p); if(p.isAllowed(Ranks.HeadBuilder)) { if(args.length == 2) { Ranks rank = Ranks.valueOf(args[1]); if(rank != null) { if(Bukkit.getPlayer(args[0]) != null) { CustomPlayer player = CustomPlayer.getPlayer(Bukkit.getPlayer(args[0]).getName()); if(p.isAllowed(Ranks.HeadBuilder) && rank == Ranks.Builder) { player.setRank(rank); p.sendMessage(msgs.PREFIX() + msgs.Core_SETRANK_SET(player, player.getRank())); player.kickPlayer(msgs.Core_SETRANK_KICK()); }if(p.isAllowed(Ranks.SrModerator) && rank == Ranks.Moderator) { player.setRank(rank); p.sendMessage(msgs.PREFIX() + msgs.Core_SETRANK_SET(player, player.getRank())); player.kickPlayer(msgs.Core_SETRANK_KICK()); }if(p.isAllowed(Ranks.SrModerator) && rank == Ranks.Supporter) { player.setRank(rank); p.sendMessage(msgs.PREFIX() + msgs.Core_SETRANK_SET(player, player.getRank())); player.kickPlayer(msgs.Core_SETRANK_KICK()); }if(p.isAllowed(Ranks.SrDeveloper) && rank == Ranks.Developer) { player.setRank(rank); p.sendMessage(msgs.PREFIX() + msgs.Core_SETRANK_SET(player, player.getRank())); player.kickPlayer(msgs.Core_SETRANK_KICK()); } if(p.isAllowed(Ranks.Admin)) { player.setRank(rank); p.sendMessage(msgs.PREFIX() + msgs.Core_SETRANK_SET(player, player.getRank())); player.kickPlayer(msgs.Core_SETRANK_KICK()); } }else { p.sendMessage(msgs.NOT_ONLINE(args[0])); } }else { p.sendMessage(msgs.Core_SETRANK_NO_RANK()); } }else { p.sendMessage(msgs.Core_SETRANK_NO_RANK()); } }else { p.sendMessage(msgs.NO_PERMS()); } }else { sender.sendMessage(Messages.Console.NOT_A_PLAYER); } return true; } @Override public List tabComplete(CommandSender sender, String label, String[] args) { List list = Bukkit.getOnlinePlayers().stream().map(Player::getDisplayName).collect(Collectors.toList()); list.add("Admin"); list.add("Developer"); list.add("SrModerator"); list.add("Moderator"); list.add("HeadBuilder"); list.add("Builder"); list.add("Supporter"); list.add("Youtuber"); list.add("Premium"); list.add("Player"); return list; } }