Интеграция с DiscordSRV
EliteMobs использует DiscordSRV, чтобы транслировать сообщения с приоритетом объявлений 3 и выше. О системе приоритета объявлений можно почитать здесь.
По сути это означает, что некоторые особые Кастомные боссы могут отправлять сообщения в Discord — выглядит это так:

Задумка в том, чтобы создать отдельную комнату объявлений EliteMobs, куда игроки смогут заглянуть и посмотреть, нет ли сейчас живых интересных Мировых боссов, которых можно пойти убить и похвастаться этим в таблице лидеров по убийствам.
Настройка всего этого
Настройка DiscordSRV
DiscordSRV — это отдельный плагин, разработанный не мной. Их подробное руководство по настройке доступно здесь. Если у вас возникнут трудности с настройкой, их комната поддержки находится здесь. Я не могу оказывать поддержку по этому плагину, поэтому по этой части установки обращайтесь к ним.
Примечание: EliteMobs протестирован с DiscordSRV версии 1.28.0. Другие версии тоже могут работать, но именно эта версия точно совместима.
Настройка конфигурации DiscordSRV в EliteMobs
После того как вы корректно настроили DiscordSRV (и обязательно проверьте, что он действительно работает, прежде чем переходить к этому шагу), в конфигурации EliteMobs остаётся всего 1 шаг.
Откройте конфигурационный файл DiscordSRV.yml в папке конфигурации EliteMobs (обычно plugins/EliteMobs/DiscordSRV.yml) — там вы найдёте настройку announcementRoomName.
Для этого сообщения можно использовать три варианта значения. Я рекомендую №1.
-
[Рекомендуется] Название комнаты в том виде, в каком вы задали его в конфигурационном файле DiscordSRV. Неважно, как вы назвали комнату, важно лишь использовать правильное название. Вот пример комнаты, которую я выделил под события EliteMobs:
В моём случае настройка должна выглядеть так: announcementRoomName: EMEvents. -
Идентификатор комнаты в том виде, в каком вы задали его в конфигурационном файле DiscordSRV. Вот пример комнаты. Обратите внимание, что каждая комната уникальна. Изображения приведены лишь как пример, не пытайтесь копировать эти числовые идентификаторы. Это не сработает. В вашей настройке должен быть уникальный набор цифр, соответствующий идентификатору вашей комнаты в Discord.

-
[Плохой вариант] Название вашей комнаты в том виде, в каком оно отображается в Discord. Корректная работа не гарантируется по ряду причин. Помните, что ваша комната Discord должна быть настроена в конфигурационных файлах DiscordSRV — то, что вы можете указать название комнаты в этом файле конфигурации, не означает, что настройку в DiscordSRV можно пропустить.
Технические замечания
- У сообщений, отправляемых в Discord, автоматически удаляются цветовые коды Minecraft — это нужно для корректного отображения
- Сообщения в Discord отправляются асинхронно, чтобы не вызывать лаги сервера
- EliteMobs использует трёхуровневый поиск вашего канала Discord: сначала по идентификатору канала, затем по сопоставлению каналов DiscordSRV и, наконец, по поиску по названию канала
- Уведомления в Discord запускает только контент с приоритетом объявлений 3 или выше — это охватывает сообщения о спавне/смерти/побеге Кастомных боссов и
startMessage/endMessageКастомных событий - В Discord отправляются те же сообщения, что показываются в игре
- Канал определяется один раз и затем кешируется на весь сеанс работы сервера, поэтому для изменения
announcementRoomNameнужен перезапуск, а не просто/em reload
Тестирование
Чтобы проверить, работает ли ваша конфигурация, используйте команду /em discord <message>. Замените <message> на любой текст, который хотите отправить в Discord.
Пример: /em discord Test message from EliteMobs!
Если ваше сообщение появилось в настроенном канале Discord — всё готово!
Примечание: для этой команды требуется право elitemobs.discord.message
Кроме того, командой /em discord (без сообщения) можно вывести ссылку-приглашение на сервер Discord EliteMobs для поддержки и загрузок. Для этой команды требуется право elitemobs.discord.link.
Устранение неполадок
Сообщения не появляются в Discord:
- Убедитесь, что DiscordSRV установлен и работает (сначала проверьте это собственными командами DiscordSRV)
- Проверьте, что
announcementRoomNameНЕ оставлено со значением-заглушкой по умолчанию - Убедитесь, что название/идентификатор комнаты в точности совпадает с указанным в вашей конфигурации DiscordSRV
- Проверьте консоль на наличие предупреждений EliteMobs об интеграции с Discord
- Убедитесь, что у вас есть право
elitemobs.discord.messageдля тестирования
Ошибки «канал не найден»:
- Ещё раз проверьте написание названия канала как в DiscordSRV.yml, так и в DiscordSRV.yml от EliteMobs
- Попробуйте использовать числовой идентификатор канала вместо названия
- Убедитесь, что канал правильно настроен в config.yml от DiscordSRV
Команда тестирования не работает:
- Убедитесь, что у вас есть право
elitemobs.discord.message - Используйте правильный синтаксис:
/em discord <message>(с сообщением) - Проверьте консоль сервера на наличие сообщений об ошибках