package com.lifeknight.relaymcbungeemain.commands.chat; 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.chat.TextComponent; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; public class MessageCommand extends Command { public MessageCommand() { super("message", null, "msg"); } @Override public void execute(CommandSender sender, String[] arguments) { if (sender instanceof ProxiedPlayer) { SmartPlayer messageSender = SmartPlayer.getSmartPlayer((ProxiedPlayer) sender); if (arguments.length == 0) { messageSender.sendErrorMessage("Please enter a player to send the message to and a message to send."); } else if (arguments.length == 1) { messageSender.sendErrorMessage("Please enter a message to send."); } else { SmartPlayer messageRecipient = SmartPlayer.getSmartPlayerOrNick(arguments[0]); if (messageRecipient == null) { if (SmartPlayer.isNickname(arguments[0])) { messageSender.sendErrorMessage("You cannot message that player!"); } else { messageSender.noPlayerFound(arguments[0]); } return; } if (!messageRecipient.isOnline()) { messageSender.sendErrorMessage("That player is offline!"); return; } String message = Text.concatenateArguments(Miscellaneous.from(arguments, 1)); if (!messageSender.canSendMessage(message)) { return; } messageSender.messagePlayer(messageRecipient, message); } } else { if (arguments.length == 0) { CommandUtilities.sendErrorMessage(sender, "Please enter a player to send the message to and a message to send."); } else if (arguments.length == 1) { CommandUtilities.sendErrorMessage(sender, "Please enter a message to send."); } else { String name = arguments[0]; SmartPlayer messageRecipient = SmartPlayer.getSmartPlayerOrNick(name); if (messageRecipient == null) { CommandUtilities.noPlayerFound(sender, name); return; } if (!messageRecipient.isOnline()) { CommandUtilities.sendErrorMessage(sender, "That player is offline!"); return; } String message = Text.concatenateArguments(Miscellaneous.from(arguments, 1)); CommandUtilities.sendMessage(sender, "%sTo %s%s > %s", ChatColor.BLUE, messageRecipient.getProxiedPlayer().getName(), ChatColor.WHITE, message); messageRecipient.sendMessage("%sFrom %s%s > %s", ChatColor.RED, ChatColor.GOLD + "Server", ChatColor.RED, ChatColor.WHITE + message); } } } private static void sendMessage(CommandSender sender, String message, Object... data) { sender.sendMessage(new TextComponent(String.format(message, data))); } }