LogoyStore

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

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"
  }
]

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_command para 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_clipboard requer 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:

  1. Edite o arquivo json-messages.json na pasta do plugin
  2. Recarregue as configurações: /f reload
  3. Teste a mensagem no jogo executando o comando relacionado
  4. Verifique se hover e cliques funcionam corretamente
  5. 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:

Nesta página