Mensagens JSON
Configure mensagens interativas avançadas com hover e cliques no yFactions
O arquivo json-messages.json permite criar mensagens interativas com efeitos de hover (ao passar o mouse) e ações ao clicar. Essas mensagens oferecem uma experiência mais rica e informativa para os jogadores, permitindo criar interfaces intuitivas diretamente no chat.
Estrutura Básica
As mensagens JSON seguem o formato do Minecraft, permitindo múltiplos componentes com diferentes estilos, cores e ações:
[
{
"text": "Texto visível no chat",
"color": "green",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "Texto exibido ao passar o mouse"
},
"clickEvent": {
"action": "run_command",
"value": "/f comando"
}
}
]Todas as mensagens JSON são arrays ([]) contendo um ou mais objetos de texto.
Mensagens Disponíveis
faction-info
Informações exibidas ao visualizar detalhes de uma faction:
"faction-info": [
{
"text": "\n&7▪ &fLíder: &e{faction_leader}",
"hoverEvent": {
"action": "show_text",
"value": "&7Clique para ver perfil\n&7do líder"
},
"clickEvent": {
"action": "run_command",
"value": "/f player {faction_leader}"
}
}
]Placeholders disponíveis:
{faction_name}- Nome da faction{faction_tag}- Tag da faction{faction_leader}- Nome do líder{faction_power}- Poder total{faction_members}- Número de membros{faction_kills}- Total de kills{faction_deaths}- Total de mortes
player-info
Informações sobre um membro específico da faction:
"player-info": [
{
"text": "\n&7▪ &fPoder: &a{player_power}&7/&a{player_power_max}",
"hoverEvent": {
"action": "show_text",
"value": "&7Poder contribuído\n&7para a faction"
}
},
{
"text": "\n&7▪ &fKills: &c{player_kills} &7| Mortes: &7{player_deaths}",
"hoverEvent": {
"action": "show_text",
"value": "&7KDR: &f{player_kdr}"
}
}
]Placeholders disponíveis:
{player_name}- Nome do jogador{player_role}- Cargo na faction{player_power}- Poder atual{player_power_max}- Poder máximo{player_kills}- Total de kills{player_deaths}- Total de mortes{player_kdr}- KDR do jogador
faction-invite
Mensagem de convite para entrar em uma faction:
"faction-invite": [
{
"text": "\n&7Você foi convidado para a faction ",
"color": "gray"
},
{
"text": "&b{faction_name}",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "&7Facção: &b{faction_name}\n&7Tag: &f{faction_tag}\n&7Membros: &f{faction_members}\n&7Poder: &a{faction_power}\n\n&eClique para mais informações"
},
"clickEvent": {
"action": "run_command",
"value": "/f info {faction_name}"
}
},
{
"text": "\n\n&8[&a✓ Aceitar&8]",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para aceitar o convite"
},
"clickEvent": {
"action": "run_command",
"value": "/f join {faction_name}"
}
},
{
"text": " &8[&c✗ Recusar&8]",
"hoverEvent": {
"action": "show_text",
"value": "&cClique para recusar o convite"
},
"clickEvent": {
"action": "run_command",
"value": "/f deny {faction_name}"
}
}
]top-faction
Formato de exibição no ranking de factions:
"top-faction": [
{
"text": "&7#{position} &b{faction_tag} ",
"hoverEvent": {
"action": "show_text",
"value": "&7Facção: &b{faction_name}\n&7Poder: &a{faction_power}\n&7Membros: &f{faction_members}\n&7Kills: &c{faction_kills}\n\n&eClique para ver detalhes"
},
"clickEvent": {
"action": "run_command",
"value": "/f info {faction_name}"
}
},
{
"text": "&7- &a{faction_power} ⚡",
"hoverEvent": {
"action": "show_text",
"value": "&aPoder total da faction"
}
}
]Placeholders disponíveis:
{position}- Posição no ranking{faction_name}- Nome da faction{faction_tag}- Tag da faction{faction_power}- Poder total{faction_members}- Número de membros{faction_kills}- Total de kills
member-list
Lista de membros com informações detalhadas:
"member-list": [
{
"text": "&7▪ {role_symbol} &f{player_name}",
"hoverEvent": {
"action": "show_text",
"value": "&7Cargo: &f{player_role}\n&7Poder: &a{player_power}&7/&a{player_power_max}\n&7Kills: &c{player_kills}\n&7Mortes: &7{player_deaths}\n&7KDR: &f{player_kdr}\n\n&eClique para ver perfil completo"
},
"clickEvent": {
"action": "run_command",
"value": "/f player {player_name}"
}
}
]territory-claim
Mensagem ao reivindicar território:
"territory-claim": [
{
"text": "&a✓ Território reivindicado!",
"bold": true
},
{
"text": "\n&7Localização: &f{x}, {y}, {z}",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para copiar coordenadas"
},
"clickEvent": {
"action": "copy_to_clipboard",
"value": "{x} {y} {z}"
}
}
]Eventos de Hover
show_text
Mostra texto formatado ao passar o mouse sobre o componente:
{
"hoverEvent": {
"action": "show_text",
"value": "&aTexto em verde\n&7Segunda linha em cinza\n\n&eClique para ação"
}
}Use \n para quebrar linhas dentro do texto de hover. Isso permite criar tooltips informativos com múltiplas linhas.
show_item
Exibe informações de um item no formato NBT:
{
"hoverEvent": {
"action": "show_item",
"value": "{id:\"minecraft:diamond_sword\",Count:1,tag:{display:{Name:\"Espada Lendária\"}}}"
}
}show_entity
Mostra informações sobre uma entidade:
{
"hoverEvent": {
"action": "show_entity",
"value": "{name:\"Boss da Raid\",type:\"minecraft:zombie\",id:\"uuid-da-entidade\"}"
}
}Eventos de Clique
run_command
Executa um comando automaticamente quando clicado:
{
"clickEvent": {
"action": "run_command",
"value": "/f home"
}
}Use run_command com cuidado. Para ações importantes ou irreversíveis, prefira suggest_command para que o jogador confirme a ação.
suggest_command
Sugere um comando no chat (jogador pode editar antes de executar):
{
"clickEvent": {
"action": "suggest_command",
"value": "/f invite "
}
}suggest_command é ideal para comandos que precisam de parâmetros adicionais, permitindo que o jogador complete o comando antes de executar.
open_url
Abre uma URL no navegador do jogador:
{
"clickEvent": {
"action": "open_url",
"value": "https://discord.gg/seu-servidor"
}
}copy_to_clipboard
Copia texto para a área de transferência (requer Minecraft 1.15+):
{
"clickEvent": {
"action": "copy_to_clipboard",
"value": "IP: play.seuservidor.com"
}
}Formatação de Texto
Cores
Use cores nomeadas do Minecraft ou códigos hexadecimais:
{
"text": "Texto com cor",
"color": "aqua"
}{
"text": "Texto com hex",
"color": "#00FF00"
}Cores disponíveis:
black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white
Estilos
Aplique múltiplos estilos de formatação:
{
"text": "Texto estilizado",
"bold": true,
"italic": false,
"underlined": true,
"strikethrough": false,
"obfuscated": false
}Exemplos Práticos
Menu Interativo de Faction
Crie um menu completo com opções clicáveis:
"faction-menu": [
{
"text": "\n&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n",
"color": "dark_gray"
},
{
"text": "&b&lMENU DA FACTION\n\n",
"bold": true,
"color": "aqua"
},
{
"text": "&a⚔ ",
"hoverEvent": {
"action": "show_text",
"value": "&aGerenciar Membros\n&7Convide, promova ou remova\n&7membros da faction\n\n&eClique para abrir"
},
"clickEvent": {
"action": "run_command",
"value": "/f members"
}
},
{
"text": "&b🛡 ",
"hoverEvent": {
"action": "show_text",
"value": "&bGerenciar Territórios\n&7Reivindique, remova ou\n&7configure seus territórios\n\n&eClique para abrir"
},
"clickEvent": {
"action": "run_command",
"value": "/f claim menu"
}
},
{
"text": "&e⚙ ",
"hoverEvent": {
"action": "show_text",
"value": "&eConfigurações\n&7Ajuste configurações\n&7da sua faction\n\n&eClique para abrir"
},
"clickEvent": {
"action": "run_command",
"value": "/f config"
}
},
{
"text": "\n&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
"color": "dark_gray"
}
]Ranking com Detalhes
Exiba rankings com informações detalhadas ao passar o mouse:
"ranking-entry": [
{
"text": "&7#{position} ",
"color": "gray"
},
{
"text": "&b{faction_tag}",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "&7━━━━━━━━━━━━━━━━━━━\n&bInformações da Faction\n&7━━━━━━━━━━━━━━━━━━━\n\n&7Nome: &f{faction_name}\n&7Tag: &b{faction_tag}\n&7Líder: &e{faction_leader}\n\n&7Poder: &a{faction_power}&7/&a{faction_max_power}\n&7Membros: &f{faction_members_online}&7/&f{faction_members_total}\n&7Territórios: &f{faction_claims}\n\n&7Kills: &c{faction_kills}\n&7Mortes: &7{faction_deaths}\n&7KDR: &f{faction_kdr}\n\n&7Aliados: &a{faction_allies}\n&7Rivais: &c{faction_rivals}\n\n&eClique para mais informações"
},
"clickEvent": {
"action": "run_command",
"value": "/f info {faction_name}"
}
},
{
"text": " &7- &a{faction_power}⚡",
"hoverEvent": {
"action": "show_text",
"value": "&aPoder Total: &f{faction_power}\n&aPoder Máximo: &f{faction_max_power}\n&aPorcentagem: &f{faction_power_percentage}%"
}
}
]Notificação de Guerra
Alerta interativo sobre declarações de guerra:
"war-declaration": [
{
"text": "\n&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n",
"color": "dark_gray"
},
{
"text": "&c&l⚔ DECLARAÇÃO DE GUERRA ⚔\n\n",
"bold": true,
"color": "red"
},
{
"text": "&7A faction ",
"color": "gray"
},
{
"text": "&c{enemy_faction}",
"bold": true,
"color": "red",
"hoverEvent": {
"action": "show_text",
"value": "&cFaction Inimiga\n\n&7Nome: &f{enemy_faction}\n&7Poder: &c{enemy_power}\n&7Membros: &f{enemy_members}\n\n&eClique para ver informações"
},
"clickEvent": {
"action": "run_command",
"value": "/f info {enemy_faction}"
}
},
{
"text": " &7declarou\n&7guerra contra sua faction!\n\n"
},
{
"text": "&8[&c⚔ Ver Detalhes&8]",
"hoverEvent": {
"action": "show_text",
"value": "&cClique para ver detalhes da guerra"
},
"clickEvent": {
"action": "run_command",
"value": "/f war info {enemy_faction}"
}
},
{
"text": " &8[&a🛡 Defender&8]",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para ir ao território da faction"
},
"clickEvent": {
"action": "run_command",
"value": "/f home"
}
},
{
"text": "\n&8&m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
"color": "dark_gray"
}
]Link com Discord
Adicione links externos com avisos claros:
"discord-invite": [
{
"text": "&9&l[DISCORD]",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "&9Discord da Faction\n\n&7Entre no nosso servidor\n&7do Discord para se comunicar\n&7com os membros!\n\n&7Link: &fdiscord.gg/exemplo\n\n&eClique para abrir no navegador"
},
"clickEvent": {
"action": "open_url",
"value": "https://discord.gg/exemplo"
}
}
]Copiar Informações
Permita que jogadores copiem informações facilmente:
"copy-info": [
{
"text": "&7IP do Servidor: &f{server_ip}",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para copiar o IP"
},
"clickEvent": {
"action": "copy_to_clipboard",
"value": "{server_ip}"
}
},
{
"text": "\n&7Coordenadas Home: &f{x}, {y}, {z}",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para copiar coordenadas"
},
"clickEvent": {
"action": "copy_to_clipboard",
"value": "/tp {x} {y} {z}"
}
}
]Múltiplos Componentes
Combine vários componentes para criar mensagens complexas e interativas:
"complex-notification": [
{
"text": "&8[&b!&8] ",
"hoverEvent": {
"action": "show_text",
"value": "&bNotificação Importante"
}
},
{
"text": "&f{player_name} ",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "&7Jogador: &f{player_name}\n&7Cargo: &e{player_role}\n&7Poder: &a{player_power}\n\n&eClique para ver perfil"
},
"clickEvent": {
"action": "run_command",
"value": "/f player {player_name}"
}
},
{
"text": "&7entrou para a faction ",
"color": "gray"
},
{
"text": "&b{faction_name}",
"bold": true,
"hoverEvent": {
"action": "show_text",
"value": "&7Faction: &b{faction_name}\n&7Membros: &f{faction_members}\n&7Poder: &a{faction_power}"
},
"clickEvent": {
"action": "run_command",
"value": "/f info {faction_name}"
}
},
{
"text": "!\n\n&8[&aVer Membros&8]",
"hoverEvent": {
"action": "show_text",
"value": "&aClique para ver todos os membros"
},
"clickEvent": {
"action": "run_command",
"value": "/f members"
}
}
]Placeholders Dinâmicos
Todos os placeholders do PlaceholderAPI podem ser usados nas mensagens JSON:
{
"text": "Poder: {player_power}",
"color": "{power_color}"
}Placeholders de Cor
Use placeholders para cores dinâmicas baseadas em status:
{power_color}- Cor baseada no nível de poder{relation_color}- Cor baseada na relação com outra faction{role_color}- Cor baseada no cargo do jogador
{
"text": "{player_name}",
"color": "{relation_color}",
"hoverEvent": {
"action": "show_text",
"value": "&7Relação: {relation_type}"
}
}Dicas de Uso
Boas práticas para mensagens JSON:
- Hover informativos: Use hover events para informações adicionais, não essenciais
- Comandos seguros: Prefira
suggest_commandpara comandos que alteram dados importantes - Instruções claras: Sempre indique no hover o que acontecerá ao clicar
- Feedback visual: Use cores e símbolos para indicar o tipo de ação
- Teste em diferentes versões: Recursos podem variar entre versões do Minecraft
- Evite textos muito longos: Mensagens grandes podem ser cortadas no chat
Limitações e Compatibilidade
Importante saber:
- Requer Minecraft 1.7+ para funcionalidade básica
copy_to_clipboardrequer Minecraft 1.15+- Cores hexadecimais requerem Minecraft 1.16+
- Mensagens muito longas podem ser truncadas no chat
- Clientes modificados podem ter comportamento diferente
- Alguns recursos podem não funcionar em versões antigas
Testando Mensagens
Para testar suas mensagens JSON no servidor:
- Edite o arquivo
json-messages.jsonna pasta do plugin - Recarregue as configurações:
/f reload - Teste a mensagem no jogo executando o comando relacionado
- Verifique se hover e cliques funcionam corretamente
- Ajuste conforme necessário
Use /f debug json no console para visualizar mensagens JSON com formatação legível e identificar erros de sintaxe.
Recursos Avançados
Animações de Texto
Crie efeitos visuais com cores alternadas:
"animated-text": [
{"text": "&c▂", "bold": true},
{"text": "&6▃", "bold": true},
{"text": "&e▄", "bold": true},
{"text": "&a▅", "bold": true},
{"text": "&b▆", "bold": true},
{"text": "&9▇", "bold": true},
{"text": "&5█", "bold": true}
]Mensagens Condicionais
Configure mensagens diferentes baseadas em condições específicas (configure em config.yml):
"power-warning": [
{
"text": "&cAVISO: ",
"bold": true,
"color": "red"
},
{
"text": "Seu poder está baixo!",
"color": "{power_color}",
"hoverEvent": {
"action": "show_text",
"value": "&7Poder atual: &c{player_power}&7/&a{player_power_max}\n\n&7Evite morrer para não\n&7perder mais poder!"
}
}
]Progressão Visual
Crie barras de progresso visuais:
"power-bar": [
{
"text": "&7Poder: &a",
"color": "gray"
},
{
"text": "████████",
"color": "green",
"hoverEvent": {
"action": "show_text",
"value": "&a{player_power}&7/&a{player_power_max}"
}
},
{
"text": "██",
"color": "dark_gray",
"hoverEvent": {
"action": "show_text",
"value": "&7{faction_power_percentage}% do poder máximo"
}
}
]Suporte e Documentação
Para mais informações sobre o formato JSON do Minecraft:
- Minecraft Wiki - Raw JSON text format
- JSON Text Generator - Ferramenta online para criar mensagens JSON
- Documentação yFactions - Lista completa de placeholders disponíveis