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

import com.lifeknight.relaymcbungeemain.player.SmartPlayer;
import com.lifeknight.relayutils.basic.Text;
import com.lifeknight.relayutils.player.Group;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;

import java.util.List;

public class CommandUtilities {
    public static void sendMessage(CommandSender commandSender, String message, Object... data) {
        commandSender.sendMessage(new TextComponent(String.format(message, data)));
    }

    public static void sendInfoMessage(CommandSender commandSender, String message, Object... data) {
        commandSender.sendMessage(new TextComponent(ChatColor.YELLOW + String.format(message, data)));
    }

    public static void sendSuccessMessage(CommandSender commandSender, String message, Object... data) {
        commandSender.sendMessage(new TextComponent(ChatColor.GREEN + String.format(message, data)));
    }

    public static void sendErrorMessage(CommandSender commandSender, String message, Object... data) {
        commandSender.sendMessage(new TextComponent(ChatColor.RED + String.format(message, data)));
    }

    public static void sendUsageMessage(CommandSender commandSender, String message, Object... data) {
        commandSender.sendMessage(new TextComponent(ChatColor.DARK_GREEN + String.format(message, data)));
    }

    public static void sendCommandsMessage(CommandSender commandSender, List<String> commands) {
        sendInfoMessage(commandSender, "Commands: %s%s", ChatColor.GREEN, Text.separateWithCommas(commands));
    }

    public static boolean isInGroupOrHigher(CommandSender commandSender, Group group) {
        if (commandSender instanceof ProxiedPlayer) {
            SmartPlayer smartPlayer = SmartPlayer.getSmartPlayer((ProxiedPlayer) commandSender);

            return smartPlayer.isInGroupOrHigher(group);
        }

        return true;
    }

    public static boolean isAdministrator(CommandSender commandSender) {
        return isInGroupOrHigher(commandSender, Group.ADMIN);
    }

    public static void sendInsufficientPermissionsMessage(CommandSender commandSender) {
        sendErrorMessage(commandSender, "You do not have permission to execute this command!");
    }

    public static boolean isModerator(CommandSender commandSender) {
        return isInGroupOrHigher(commandSender, Group.MOD);
    }

    public static boolean isStaff(CommandSender sender) {
        return isInGroupOrHigher(sender, Group.DEVELOPER);
    }

    public static void noPlayerFound(CommandSender commandSender, String name) {
        sendErrorMessage(commandSender, "No player found with the name of %s%s%s.", ChatColor.YELLOW, name, ChatColor.RED);
    }
}