Saltar 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.

O EliteMobs é compilado com o DiscordSRV 1.28.0. Use o comando de teste abaixo para verificar a entrega com a versão instalada no seu servidor.

Configurar a integraçã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. [Menos fiável] O nome do canal tal como aparece no Discord. A pesquisa final ignora maiúsculas e minúsculas e escolhe o primeiro canal de texto correspondente; nomes repetidos podem selecionar o destino errado. O DiscordSRV e o bot continuam a precisar de configuração e acesso ao canal, mas esta pesquisa por nome não exige um mapeamento de canal do jogo.

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 (apenas quando announcementRoomName é composto só por dígitos), depois pelo mapeamento de canais do DiscordSRV e, por fim, por pesquisa do nome do canal
  • Os anúncios automáticos de conteúdo exigem prioridade 3 ou superior: mensagens de aparecimento, morte e fuga de bosses personalizados e startMessage/endMessage de eventos personalizados. O comando de teste manual abaixo envia diretamente, sem verificar uma prioridade de conteúdo.
  • As mesmas mensagens mostradas no jogo são enviadas para o Discord
  • O canal é procurado de novo em cada anúncio, por isso um announcementRoomName corrigido entra em vigor após /em reload. Uma pesquisa que não encontra nada regista Channel room <name> is not valid!; uma mensagem rejeitada pelo Discord regista DiscordSRV announcement failed for <name>.

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!

Verifique se a mensagem aparece no canal Discord pretendido. A confirmação do comando indica apenas uma tentativa de envio; pode aparecer mesmo sem DiscordSRV, com o valor de exemplo ainda configurado ou após uma pesquisa de canal falhada. Sem mensagem no Discord, a entrega não está verificada.

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