package net.md_5.bungee.command;

import com.google.common.base.Joiner;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.chat.ComponentSerializer;

import java.util.Arrays;

public class CommandAlertRaw extends Command
{

    public CommandAlertRaw()
    {
        super( "alertraw", "bungeecord.command.alert" );
    }

    @Override
    public void execute(CommandSender sender, String[] args)
    {
        if ( args.length == 0 )
        {
            sender.sendMessage( ChatColor.RED + "You must supply a message." );
        } else
        {
            String message = Joiner.on(' ').join( args );

            try
            {
                ProxyServer.getInstance().broadcast( ComponentSerializer.parse( message ) );
            } catch ( Exception e )
            {
            	if ( sender instanceof ProxiedPlayer )
            	{
	                sender.sendMessage(
	                        new ComponentBuilder( "An error occurred while parsing your message. (Hover for details)" ).
	                                color( ChatColor.RED ).underlined( true ).
	                                event( new HoverEvent( HoverEvent.Action.SHOW_TEXT,
	                                        new ComponentBuilder( e.getMessage() ).color( ChatColor.RED ).create() ) ).
	                                create() );
            	} else
            	{
            		sender.sendMessage(new ComponentBuilder( "An error occurred while parsing your message: " ).color( ChatColor.RED ).append( e.getMessage() ).create() );
            	}
            }
        }
    }
}

@@ -31,46 +31,8 @@
 d;%0A%0A
-import com.google.common.base.Joiner;%0A
 impo
@@ -65,16 +65,16 @@
 tColor;%0A
+
 import n
@@ -245,55 +245,8 @@
 nt;%0A
-import net.md_5.bungee.api.chat.TextComponent;%0A
 impo
@@ -398,24 +398,37 @@
 ort 
-java.util.Arrays
+com.google.common.base.Joiner
 ;%0A%0Ap
@@ -1025,32 +1025,187 @@
 )%0A            %7B%0A
+            %09Throwable error = e;%0A            %09while ( error.getCause() != null )%0A            %09%7B%0A            %09    error = error.getCause();%0A            %09%7D%0A
             %09if 
@@ -1571,16 +1571,16 @@
 W_TEXT,%0A
-
 %09       
@@ -1635,16 +1635,20 @@
 ilder( e
+rror
 .getMess

Fix hover messages for players