package com.lifeknight.relaymcbungeemain.commands.staff; import com.lifeknight.relaymcbungeemain.Main; import com.lifeknight.relaymcbungeemain.commands.CommandUtilities; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; import com.lifeknight.relayutils.basic.Miscellaneous; import com.lifeknight.relayutils.basic.Text; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Command; import java.util.List; public class MaintenanceCommand extends Command { public MaintenanceCommand() { super("maintenance", null); } public static final List<String> COMMANDS = Miscellaneous.getList( "on", "off", "whitelist" ); @Override public void execute(CommandSender sender, String[] arguments) { if (!CommandUtilities.isAdministrator(sender)) { CommandUtilities.sendInsufficientPermissionsMessage(sender); return; } if (arguments.length > 0) { switch (COMMANDS.indexOf(arguments[0].toLowerCase())) { case 0: Main.setMaintenanceMode(true); CommandUtilities.sendInfoMessage(sender, "MAINTENANCE: %s", ChatColor.GREEN + "ON"); break; case 1: Main.setMaintenanceMode(false); CommandUtilities.sendInfoMessage(sender, "MAINTENANCE: %s", ChatColor.RED + "OFF"); break; case 2: if (arguments.length > 1) { String name = arguments[1]; SmartPlayer toWhitelist = SmartPlayer.getOrCreate(name); if (toWhitelist == null) { CommandUtilities.noPlayerFound(sender, name); } else { if (Main.whitelistedPlayers.contains(toWhitelist.getUUID())) { Main.whitelistedPlayers.remove(toWhitelist.getUUID()); CommandUtilities.sendSuccessMessage(sender, "Removed %s%s%s from the whitelist.", ChatColor.YELLOW, toWhitelist.getFormattedName(), ChatColor.GREEN); } else { Main.whitelistedPlayers.add(toWhitelist.getUUID()); CommandUtilities.sendSuccessMessage(sender, "Added %s%s%s to the whitelist.", ChatColor.YELLOW, toWhitelist.getFormattedName(), ChatColor.GREEN); } Main.save(); } } else { CommandUtilities.sendInfoMessage(sender, "Whitelisted players: " + Text.separateWithCommas(Miscellaneous.processList(Main.whitelistedPlayers, uuid -> SmartPlayer.getOrCreate(uuid).getName()))); } break; default: CommandUtilities.sendCommandsMessage(sender, COMMANDS); break; } } else { CommandUtilities.sendUsageMessage(sender, "/maintenance on/off/whitelist"); CommandUtilities.sendInfoMessage(sender, "Maintenance right now: %s", Main.maintenanceMode ? ChatColor.GREEN + "ON" : ChatColor.RED + "OFF"); } } }