Pular para o conteúdo principal

Integração com o DiscordSRV

O EliteMobs usa o DiscordSRV para permitir a transmissão de mensagens com prioridade de anúncio de nível 3 ou superior. Pode ler mais sobre o Sistema de Prioridade de Anúncios aqui.

Em essência, isto significa que alguns Bosses Personalizados muito especiais são capazes de enviar mensagens no Discord de uma forma parecida com esta:

exemplo de mensagem no discord

A intenção é criar uma sala dedicada aos anúncios do EliteMobs que os jogadores possam consultar para ver se há algum World Boss interessante atualmente vivo que possam ir matar e depois mostrar que o fizeram na tabela de classificação de abates.

Configurar tudo

Configurar o DiscordSRV

O DiscordSRV é um plugin diferente que não foi desenvolvido por mim. Pode encontrar o guia de configuração detalhado deles aqui. Se tiver dificuldades a configurá-lo, a sala de suporte deles está aqui. Não consigo dar suporte a este plugin, por isso recorra a eles para esta parte da instalação.

Nota: o EliteMobs é testado com a versão 1.28.0 do DiscordSRV. Ainda que outras versões possam funcionar, sabe-se que esta versão é compatível.

Configurar a configuração DiscordSRV do EliteMobs

Depois de ter configurado corretamente o DiscordSRV (e tem de testar para ver se está mesmo a funcionar antes de avançar para este passo), a configuração do EliteMobs tem apenas 1 passo.

Vá ao ficheiro de configuração DiscordSRV.yml na pasta de configuração do EliteMobs (normalmente plugins/EliteMobs/DiscordSRV.yml) e vai encontrar uma opção de configuração chamada announcementRoomName.

Há três valores que pode usar para esta mensagem. Recomendo o nº1.

  1. [Recomendado] O nome da sala tal como a configurou no ficheiro de configuração do DiscordSRV. Não importa como lhe chamou, apenas que use o nome correto. Aqui está um exemplo da sala que configurei para ser dedicada aos eventos do EliteMobs: exemplo com nome No meu caso, a opção deve ficar announcementRoomName: EMEvents.

  2. O ID da sala tal como a configurou no ficheiro de configuração do DiscordSRV. Aqui está um exemplo da sala. Note que cada sala é única. Estou apenas a mostrar imagens como exemplo, não tente copiar os números do ID. Não vai funcionar. A sua configuração deverá ter um conjunto único de números baseado no id da sua sala de discord. exemplo com id

  3. [Má opção] O nome da sua sala tal como aparece no discord. Não é garantido que funcione corretamente devido a uma série de fatores. Tenha em mente que a sua sala de discord tem de estar configurada nos ficheiros de configuração do DiscordSRV — só porque pode colocar o nome da sala neste ficheiro de configuração não significa que possa saltar a configuração no DiscordSRV.

Notas técnicas

  • As mensagens enviadas para o Discord têm os códigos de cor do Minecraft automaticamente removidos para garantir uma exibição correta
  • As mensagens de Discord são enviadas de forma assíncrona para evitar lag no servidor
  • O EliteMobs usa uma procura em três níveis para encontrar o seu canal de Discord: primeiro pelo ID do canal, depois pelo mapeamento de canais do DiscordSRV e, por fim, por pesquisa do nome do canal
  • Só conteúdo com prioridade de anúncio 3 ou superior irá acionar notificações no Discord — isto abrange as mensagens de spawn/morte/fuga de Bosses Personalizados e o startMessage/endMessage de Eventos Personalizados
  • As mesmas mensagens mostradas no jogo são enviadas para o Discord
  • O canal é resolvido uma única vez e depois guardado em cache para o resto da sessão do servidor, por isso alterar o announcementRoomName exige um restart, e não apenas um /em reload

Testar

Pode usar o comando /em discord <message> para testar se a sua configuração está a funcionar. Substitua <message> por qualquer texto que queira enviar para o Discord.

Exemplo: /em discord Test message from EliteMobs!

Se a sua mensagem aparecer no canal de Discord configurado, está tudo pronto!

Nota: este comando requer a permissão elitemobs.discord.message

Além disso, pode usar /em discord (sem qualquer mensagem) para mostrar o link de convite do servidor de Discord do EliteMobs, para suporte e transferências. Este comando requer a permissão elitemobs.discord.link.

Resolução de problemas

As mensagens não aparecem no Discord:

  • Verifique se o DiscordSRV está instalado e a funcionar (teste primeiro com os comandos do próprio DiscordSRV)
  • Confirme que o announcementRoomName NÃO está no valor de placeholder padrão
  • Certifique-se de que o nome/ID da sala corresponde exatamente ao que está na sua configuração do DiscordSRV
  • Verifique a consola à procura de avisos do EliteMobs sobre a integração com o Discord
  • Confirme que tem a permissão elitemobs.discord.message para testar

Erros de canal não encontrado:

  • Confirme a ortografia do nome do seu canal tanto no DiscordSRV.yml como no DiscordSRV.yml do EliteMobs
  • Tente usar o ID numérico do canal em vez do nome
  • Certifique-se de que o canal está corretamente configurado no config.yml do DiscordSRV

O comando de teste não funciona:

  • Confirme que tem a permissão elitemobs.discord.message
  • Use a sintaxe correta: /em discord <message> (com uma mensagem)
  • Verifique a consola do servidor à procura de mensagens de erro