MinecraftMin

Mods y programas externos => Plugins => Ayuda y soporte => Mensaje iniciado por: BILLIlike en Febrero 13, 2015, 05:20:23 pm

Título: Chat Color en un comando
Publicado por: BILLIlike en Febrero 13, 2015, 05:20:23 pm
Buenas, pues he pensado en hacer un comando para cambiar el color del chat.

Quiero que al usar:
/i + mensaje, se escriba: Mensaje.

He preguntado en el foro de Bukkit pero ninguna respuesta que me pueda ayudar. Espero su respuesta. Muchas Gracias.

Un saludo.
BILLIlike.
Título: Re:Chat Color en un comando
Publicado por: khmdev en Febrero 15, 2015, 11:18:42 pm
Supondré que sabes programar en Java y el funcionamiento básico de Bukkit. Podrías hacerlo así:
Código: [Seleccionar]
public boolean onCommand(CommandSender sender, Command cmd, String label,
String[] args) {

if(cmd.getName().equalsIgnoreCase("i")){

String cadena="";

for(String s: args){ //Une todos los parámetros como si fuera una única cadena
cadena+=s+" ";
}

for(Player pl: Bukkit.getOnlinePlayers()){// Recorre todos los usuarios conectados
//Enviara un mensaje tipo:
//usuario> Mensaje

pl.sendMessage(ChatColor.GOLD //código de color
+sender.getName()+"> "+cadena);
}
}
}

También si quieres generalizar un poco y que el usuario pueda usar todos los códigos de color (http://www.minecraftforum.net/forums/support/server-support/tutorials-and-faqs/1940467-bukkit-colour-codes) puedes hacerlo así:
 
for(Player pl: Bukkit.getOnlinePlayers()){// Recorre todos los usuarios conectados


pl.sendMessage(ChatColor.GOLD //código de color
+sender.getName()+"> "+
ChatColor.translateAlternateColorCodes('&',cadena)
//convierte los códigos de color en el suyo propio
);
}

De este modo usando el comando:
/i &1ho&2la

Todos los usuarios recibirán:
khmdev> hola

(El código esta escrito a ojo, puede contener algún error)
Un saludo!
Título: Re:Chat Color en un comando
Publicado por: BILLIlike en Febrero 16, 2015, 03:42:57 pm
A ver, realmente no sé si es lo que me has explicado, pero igual, te comento. Quiero hacer que al usar /i + mensaje. Todo después del /i salga en amarillo...
Título: Re:Chat Color en un comando
Publicado por: Sargock en Febrero 16, 2015, 07:57:00 pm
Perdona, diría que no te había entendido.
Si ahora te he entendido, lo que planteas es:
/i <Mensaje>
y que el mensaje salga de color amarillo para todos los usuarios.
Código: [Seleccionar]
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(cmd.getName().equalsIgnoreCase("i"))
{
if(args.lenght == 0)
{
Player AllPlayers = Bukkit.getOnlinePlayers();
AllPlayers.sendMessage("<" + sender.getName() + "> " + ChatColor.GOLD + args[0])
}
else
{
sender.sendMessage(ChatColor.GREY + "/i <Mensaje>")
}
}
return false;
}
Si entiendes lo que te he escrito, tal vez te interesaría más esta otra opción.
Código: [Seleccionar]
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(cmd.getName().equalsIgnoreCase("i"))
{
if(args.lenght == 1)
{
if(args[0].equalsIgnoreCase("amarillo"))
{
Player AllPlayers = Bukkit.getOnlinePlayers();
AllPlayers.sendMessage("<" + sender.getName() + "> " + ChatColor.GOLD + args[1])
}
else if(args[0].equalsIgnoreCase("azul"))
{
Player AllPlayers = Bukkit.getOnlinePlayers();
AllPlayers.sendMessage("<" + sender.getName() + "> " + ChatColor.BLUE + args[1])
}
if(args[0].equalsIgnoreCase("rojo"))
{
Player AllPlayers = Bukkit.getOnlinePlayers();
AllPlayers.sendMessage("<" + sender.getName() + "> " + ChatColor.RED + args[1])
}
}
else
{
sender.sendMessage(ChatColor.GREY + "/i <Mensaje>")
}
}
return false;
}

De este modo, le estarías dando un mayor uso al comando, y a la vez este te permitiría distintos usos de colores.
Si no era esto, lo que planteabas, comentalo.

PD: El código, lo he escrito aquí mismo, por lo tanto puede contener algún que otro error de sintaxis.
Título: Re:Chat Color en un comando
Publicado por: gaelito en Febrero 16, 2015, 10:57:13 pm
Se lo que quieres decir, pero parece que nadie lo entiende... A ver si yo acierto xD
Lo que quieres es que si alguien pone "/i Hola esto es un mensaje de prueba" En el chat aparezca:
Hola esto es un mensaje de prueba (No lo pongo en amarillo porque si no no se ve.. Es amarillo, ¿ok?)
También puede que sea así
<NickDelJugador> Hola esto es un mensaje de prueba


Si en vez de poner "Hola esto es un mensaje de prueba" pones "Hola" que te salga:
Hola
Es eso lo que quieres no?

Hay un problema... estoy un poco verde en plugins y me costaría hacerte el comando :/
Título: Re:Chat Color en un comando
Publicado por: BILLIlike en Febrero 17, 2015, 03:22:02 pm
Exactamente, pero que se te ponga sólo atí, es decir, al acabar el mensaje que no se te quede el color amarillo. Sólo al usar /i + mensaje.
Título: Re:Chat Color en un comando
Publicado por: Sargock en Febrero 17, 2015, 07:18:27 pm
Échale una ojeada a mi anterior post, por lo que se ve te había entendido bien.