BungeeMain / src / main / java / com / lifeknight / relaymcbungeemain / commands / staff / ServersCommand.java
ServersCommand.java
Raw
package com.lifeknight.relaymcbungeemain.commands.staff;

import com.lifeknight.relaymcbungeemain.commands.CommandUtilities;
import com.lifeknight.relaymcbungeemain.player.SmartPlayer;
import com.lifeknight.relaymcbungeemain.utilities.Server;
import com.lifeknight.relayutils.basic.Miscellaneous;
import com.lifeknight.relayutils.game.MainGame;
import com.lifeknight.relayutils.utilities.ComponentBuilder;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.plugin.Command;

public class ServersCommand extends Command {
    public ServersCommand() {
        super("servers");
    }

    @Override
    public void execute(CommandSender commandSender, String[] arguments) {
        if (!CommandUtilities.isStaff(commandSender)) {
            CommandUtilities.sendInsufficientPermissionsMessage(commandSender);
            return;
        }

        ComponentBuilder componentBuilder = new ComponentBuilder();

        componentBuilder.color(ComponentBuilder.GREEN).line().newLine();
        componentBuilder.color(ComponentBuilder.YELLOW).append("Hubs:");
        commandSender.sendMessage(componentBuilder.getResult());
        for (MainGame mainGame : Miscellaneous.with(Miscellaneous.getList(MainGame.values()), (MainGame) null)) {
            componentBuilder = new ComponentBuilder();
            componentBuilder.color(ComponentBuilder.AQUA).append(" - %s:", mainGame == null ? "Main" : mainGame.getName());
            commandSender.sendMessage(componentBuilder.getResult());
            for (Server server : Server.getServersOfType(mainGame, false)) {
                componentBuilder = new ComponentBuilder();
                componentBuilder.appendComponent(server.getComponent());
                commandSender.sendMessage(componentBuilder.getResult());
            }
        }

        componentBuilder.newLine().color(ComponentBuilder.YELLOW).append("Limbos:");
        commandSender.sendMessage(componentBuilder.getResult());
        for (Server server : Server.getLimboServers()) {
            componentBuilder = new ComponentBuilder();
            componentBuilder.appendComponent(server.getComponent());
            commandSender.sendMessage(componentBuilder.getResult());
        }

        componentBuilder.color(ComponentBuilder.YELLOW).append("Servers:").newLine();
        for (MainGame value : MainGame.values()) {
            componentBuilder = new ComponentBuilder();
            componentBuilder.color(ComponentBuilder.AQUA).append(" - %s:", value.getName());
            commandSender.sendMessage(componentBuilder.getResult());
            for (Server server : Server.getServersOfType(value, true)) {
                componentBuilder = new ComponentBuilder();
                componentBuilder.appendComponent(server.getComponent());
                commandSender.sendMessage(componentBuilder.getResult());
            }
        }
        componentBuilder = new ComponentBuilder();
        componentBuilder.newLine().color(ComponentBuilder.RED_ORANGE).append("Total Online Players: ").color(ComponentBuilder.YELLOW).append(SmartPlayer.getOnlineSmartPlayers().size()).newLine();
        componentBuilder.color(ComponentBuilder.GREEN).line();
        commandSender.sendMessage(componentBuilder.getResult());
    }
}