package com.lifeknight.relaymcbungeemain.commands.game; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; 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.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; public class SpectateCommand extends Command { public SpectateCommand() { super("spectate", null); } @Override public void execute(CommandSender sender, String[] arguments) { if (sender instanceof ProxiedPlayer) { SmartPlayer smartPlayer = SmartPlayer.getSmartPlayer((ProxiedPlayer) sender); if (arguments.length == 0) { smartPlayer.sendErrorMessage("/spectate [player]"); } else { if (!smartPlayer.isInGroupOrHigher(Group.TIERII)) { smartPlayer.sendChampionPurchaseMessage(); return; } SmartPlayer spectator = SmartPlayer.getSmartPlayerOrNick(arguments[0]); if (spectator == null) { smartPlayer.noPlayerFound(arguments[0]); } else if (!spectator.isOnline()) { smartPlayer.sendErrorMessage("%s%s%s is not online!", ChatColor.YELLOW, spectator.getFormattedName(), ChatColor.RED); } else { if (arguments.length > 1) { if (smartPlayer.isStaff()) { SmartPlayer toSpectate = SmartPlayer.getSmartPlayerOrNick(arguments[1]); if (toSpectate == null) { smartPlayer.noPlayerFound(arguments[1]); } else if (!toSpectate.isOnline()) { smartPlayer.sendErrorMessage("%s%s%s is not online!", ChatColor.YELLOW, toSpectate.getFormattedName(), ChatColor.RED); } else { spectateForPlayer(spectator, toSpectate); smartPlayer.sendSuccessMessage("Made %s%s spectate %s%s.", spectator.getFormattedName(), ChatColor.GREEN, toSpectate.getFormattedName(), ChatColor.GREEN); } } else { smartPlayer.sendInsufficientPermissionsMessage(); } } else { spectateForPlayer(smartPlayer, spectator); } } } } } public static void spectateForPlayer(SmartPlayer spectator, SmartPlayer toSpectate) { spectator.spectatePlayer(toSpectate); } }