Saltar al contenido principal

Integración con DiscordSRV

EliteMobs usa DiscordSRV para permitir la difusión de mensajes con prioridad de anuncio de nivel 3 o superior. Puedes leer sobre el Sistema de Prioridad de Anuncios aquí.

En esencia, esto significa que algunos Custom Bosses muy especiales pueden enviar mensajes en Discord con un aspecto como este:

ejemplo de mensaje en discord

La idea es crear una sala de anuncios dedicada a EliteMobs que los jugadores puedan consultar para ver si hay algún World Boss interesante vivo en ese momento al que puedan ir a matar y luego presumir de ello en la tabla de clasificación de muertes.

Cómo configurarlo todo

Configurar DiscordSRV​

DiscordSRV es otro plugin que no he desarrollado yo. Puedes encontrar su extensa guía de instalación aquí. Si te cuesta configurarlo, su sala de soporte está aquí. No puedo dar soporte para ese plugin, así que dirígete a ellos para esta parte de la instalación.

EliteMobs se compila contra DiscordSRV 1.28.0. Usa el comando de prueba siguiente para verificar la entrega con la versión instalada en tu servidor.

Configurar el archivo DiscordSRV de EliteMobs​

Una vez hayas configurado correctamente DiscordSRV (y tienes que comprobar que realmente funciona antes de pasar a este paso), la configuración de EliteMobs solo tiene 1 paso.

Ve al archivo de configuración DiscordSRV.yml dentro de la carpeta de configuración de EliteMobs (normalmente plugins/EliteMobs/DiscordSRV.yml) y encontrarás una opción de configuración llamada announcementRoomName.

Hay tres valores que puedes usar para este mensaje. Yo recomiendo el nº1.

  1. [Recomendado] El nombre de la sala tal y como la configuraste en el archivo de configuración de DiscordSRV. No importa cómo la hayas llamado, solo que uses el nombre correcto. Aquí tienes un ejemplo de la sala que configuré para dedicarla a los eventos de EliteMobs: ejemplo usando el nombre En mi caso, la opción debería quedar como announcementRoomName: EMEvents.

  2. El ID de la sala tal y como la configuraste en el archivo de configuración de DiscordSRV. Aquí tienes un ejemplo de la sala. Ten en cuenta que cada sala es única. Solo muestro imágenes a modo de ejemplo, no intentes copiar los números del ID. No funcionará. Tu instalación debe tener un conjunto de números único basado en el ID de tu sala de discord. ejemplo usando el id

  3. [Menos fiable] El nombre del canal tal como aparece en Discord. La búsqueda final ignora mayúsculas y minúsculas y elige el primer canal de texto coincidente, por lo que nombres duplicados pueden seleccionar un destino incorrecto. DiscordSRV y su bot deben estar configurados y tener acceso al canal; esta búsqueda por nombre no requiere por sí misma un mapeo de canal del juego.

Notas técnicas​

  • A los mensajes enviados a Discord se les eliminan automáticamente los códigos de color de Minecraft para que se muestren correctamente
  • Los mensajes de Discord se envían de forma asíncrona para evitar lag en el servidor
  • EliteMobs usa una búsqueda en tres niveles para encontrar tu canal de Discord: primero por ID de canal (solo cuando announcementRoomName está formado únicamente por dígitos), después por el mapeo de canales de DiscordSRV y, por último, buscando por nombre de canal
  • Los anuncios automáticos de contenido requieren prioridad 3 o superior: mensajes de aparición, muerte y huida de los jefes personalizados y startMessage/endMessage de eventos personalizados. El comando de prueba manual siguiente envía directamente sin comprobar la prioridad del contenido.
  • A Discord se envían los mismos mensajes que se muestran dentro del juego
  • El canal se vuelve a buscar en cada anuncio, así que un announcementRoomName corregido surte efecto tras /em reload. Una búsqueda que no encuentra nada registra Channel room <name> is not valid!; un mensaje que Discord rechaza registra DiscordSRV announcement failed for <name>.

Pruebas​

Puedes usar el comando /em discord <message> para comprobar si tu configuración funciona. Sustituye <message> por el texto que quieras enviar a Discord.

Ejemplo: /em discord Test message from EliteMobs!

Comprueba que el mensaje aparece en el canal de Discord previsto. La confirmación del comando solo indica un intento de envío; también puede aparecer si falta DiscordSRV, sigue configurado el valor de ejemplo o falla la búsqueda del canal. Si no hay mensaje en Discord, la entrega no está verificada.

Nota: Este comando requiere el permiso elitemobs.discord.message

Además, puedes usar /em discord (sin ningún mensaje) para mostrar el enlace de invitación al servidor de Discord de EliteMobs, para soporte y descargas. Este comando requiere el permiso elitemobs.discord.link.

Resolución de problemas​

Los mensajes no aparecen en Discord:

  • Comprueba que DiscordSRV está instalado y funcionando (pruébalo primero con los propios comandos de DiscordSRV)
  • Comprueba que announcementRoomName NO tiene el valor de marcador de posición por defecto
  • Asegúrate de que el nombre o ID de la sala coincide exactamente con el de tu configuración de DiscordSRV
  • Revisa la consola en busca de advertencias de EliteMobs sobre la integración con Discord
  • Comprueba que tienes el permiso elitemobs.discord.message para hacer pruebas

Errores de canal no encontrado:

  • Revisa dos veces cómo está escrito el nombre de tu canal tanto en DiscordSRV.yml como en el DiscordSRV.yml de EliteMobs
  • Prueba a usar el ID numérico del canal en lugar del nombre
  • Asegúrate de que el canal está correctamente configurado en el config.yml de DiscordSRV

El comando de prueba no funciona:

  • Comprueba que tienes el permiso elitemobs.discord.message
  • Usa la sintaxis correcta: /em discord <message> (con un mensaje)
  • Revisa la consola del servidor en busca de mensajes de error