Управление сервером RUST через Discord

За те несколько месяцев, что я держу сервер RUST приходилось решать разные задачи. Одна из них — иметь удобный инструмент общения с игроками с функционалом управления сервером. Я перепробовал много вариантов и остановился на расширении, позволяющем работать с сервером через Discord-бота.

Выбор вариантов

Для реализации задумки нам понадобится две вещи. Для начала нам нужно расширение для Oxide\Umod — Discord. Грубо говоря — это C#-библиотека, являющаяся основой для интеграции сервисов Discord с вашим плагином. Поскольку плагин мы разрабатывать не будем, то нам нужен готовый. И такой находится с говорящим названием Rustcord.

Настройка

Последовательность настройки согласно официальному мануалу такая:

  • Остановить сервер
  • Скопировать библиотеку Oxide.Ext.Discord.dll в папку сервера RustDedicated/Managed
  • Запустить сервер
  • Настроить плагин

Для настройки плагина нужно получить API-ключ. Для этого нужно:

  • Перейти в раздел разработчиков Discord’a
  • Создать приложение
  • Добавить в этом приложении бота
  • Скопировать токен авторизации бота в настройки плагина
  • Добавить бота на свой Discord-сервер перейдя по ссылке oauth2-авторизации примерно такого вида https://discordapp.com/oauth2/authorize?client_id=botUserID&scope=bot&permissions=8. Узнать botUserID можно вот так. permissions=8 — это числовое представление списка привилегий вашего бота, в данном случае «8» означает администраторские привилегии.

Проблемы и решения

Как видим инструкции довольно простые. Но как всегда есть нюансы. Первый нюанс — на гитхабе выложен вариант расширения, с которым плагин не компилируется. Для этого нужно взять либо версию, выложенную на Umod, либо собрать из исходников самому. Второй нюанс — версия, выложенная на Umod не поддерживает многобайтную кодировку символов, поэтому кириллица и другие многобайтные символы будут передаваться боту в виде «?». К счастью есть тикет, благодаря которому эта проблема исправлена. Однако по каким-то причинам этот фикс в основную ветку не попал. К счастью нужные нам изменения всего в одном файле. Поэтому берем этот файл из development-ветки и заменяем в основной. Длаее необходимо собрать библиотеку. Это довольно просто. Нам понадобится MSBuild Tools 2017. Для сборки библиотеки достаточно только компилятора без дополнений. После установки MSBuild Tools выполняем:

MSbuild.exe C:\Downloads\Oxide.Ext.Discord-master\Oxide.Ext.Discord.sln /p:Configuration=Release /p:Platform="Any CPU"

После того, как компиляция завершена, забираем Oxide.Ext.Discord.dll из C:\Downloads\Oxide.Ext.Discord-master\Oxide.Ext.Discord\bin\Release\ и выполняем шаги по настройке из предыдущего раздела.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.