Bom dia
(é sempre bom dia, não interessa o horário)
Hoje vim ensinar a vocês, jovens gafanhotos
(ou velhos sapos)
a enviarem mensagens com JSON!
sim, é super simples, mas como tem gente que não sabe, por que não?
Para começar você vai criar um IChatBaseComponent
IChatBaseComponent comp = new IChatBaseComponent().ChatSerializer().a("");
Isso vai permitir que criemos mensagem em json por uma string, incrível, não?
Vamos enviar uma mensagem simples, sem nada de click ou hover, simplesmente um "Bom dia!".
IChatBaseComponent comp = new IChatBaseComponent().ChatSerializer().a("{\"text\":\"Bom dia!\"}");
agora, se você não sabe nada sobre isso deve estar tipo: "Esse cara é um maluco se acha que eu, mero gafanhoto, entenderei isso direto!"
Calma, calma, explicação rápida...
O \ é usado para dizer ao IDE que o " não é para a formação de uma string, mas para outra coisa, no caso, para ser enviado com o json, o \ vai vir sempre antes de um ", não vai ficar aleatoriamente.
Certo, depois disso temos que entender os tipos de mensagem
vou listar os principais
ClickEvent: RUN_COMMAND; SUGGEST_COMMAND; OPEN_URL.
HoverEvent: SHOW_TEXT.
Ok, agora temos que usá-los em alguma coisa... Vamos criar um /tpaccept em JSON
IChatBaseComponent comp = new IChatBaseComponent().ChatSerializer().a("{\"text\":\"§aClique para aceitar o teleporte\",\"clickEvent\":{\"action\":\"run_command\", \"value\":\"/tpaccept\"}}");
simples, não?
não...?
Você não entendeu mesmo?
ok, vamos lá...
o action que usei foi para definir o tipo da mensagem, citado acima, value é o que acontece quando a ação for executada, no caso, clickEvent.
Para mandar a mensagem você tem que criar um packets,
PacketPlayOutChat packet = new PacketPlayOutChat(comp);
((CraftPlayer)player).getHandle().playerConnection.sendPacket(packet);
acho que é isso, esse é o básico das mensagens com json, talvez, se vocês gostarem, eu traga um tutorial 2, para não confundir muito.
Obs: se gostarem, deixe uma reação, eu adoro kk