DiscordRaidAlarm — это полностью ванильный плагин Rust и интеграция Discord, которая оповещает защитников, когда их база подвергается атаке. Он не полагается на Rust+ или какие-либо внешние «сейсмические датчики».
Обнаруживая повреждения зданий на стандартном сервере Rust (Oxide/uMod или Carbon), система отправляет данные о рейде в PHP-скрипт с базой данных MySQL, а бот Discord доставляет уведомления в реальном времени защитникам с помощью прямых сообщений. Вы можете либо разместить своего собственного однопользовательского бота, либо зарегистрироваться в нашем публичном многопользовательском боте (хостинг не требуется). После того, как сопоставление Steam-Discord будет установлено, ваши игроки будут получать автоматические оповещения о рейдах, даже на полностью ванильных серверах Rust. Если вам нужна помощь в настройке, напишите мне в Discord: CrypticRedhat.
1. Обзор
DiscordRaidAlarm уведомляет игроков Rust в Discord, если их база подвергается атаке. Его основные компоненты:
- Плагин Rust: фиксирует события повреждений и отправляет их в PHP-скрипт.
- PHP-скрипт + MySQL: сохраняет данные raid в таблице raid_events.
- Discord-бот: читает таблицу и пишет защитные сообщения.
Вы можете использовать:
- Наш публичный многопользовательский бот (самый простой; хостинг не требуется) или
- Самостоятельно размещенный однопользовательский .exe-файл (полный доступ, необязательно).
В этом руководстве основное внимание уделяется подходу с использованием общедоступного многопользовательского бота, в частности, тому, как пригласить бота и использовать его.
/registertenant.
2. Предпосылки
- Сервер Rust с поддержкой Oxide/uMod или Carbon.
- Веб-хостинг или среда cPanel для PHP + MySQL.
- База данных MySQL (имя пользователя, пароль, имя БД и т. д.).
- Токен, сгенерированный из it-tools.tech/token-generator (используется в плагине и PHP-скрипте, и вы предоставите его многопользовательскому боту).
- Если вы решите разместить собственного бота: компьютер с ОС Windows и, по желанию, приложение Discord Developer Portal для пользовательского токена бота.
3. Генерация и сопоставление токенов
- Перейдите по ссылке it-tools.tech/token-generator → нажмите «Сгенерировать».
- Используйте эту случайную строку для:
- Конфигурация плагина Rust (API Auth Token),
- PHP-скрипт (API_TOKEN),
- И вы также предоставите его многопользовательскому боту в /registertenant или в конфигурации вашего собственного бота.
Все данные должны полностью совпадать, иначе вы увидите ошибки 401/403.
4. Настройка плагина Rust (Oxide/uMod или Carbon)
- Получите DiscordRaidAlarm.cs.
- Поместите в папку плагинов вашего сервера Rust:
- Оксид: оксид/плагины/
- Углерод: Углерод/Плагины/
3. Загрузите плагин:
- Oxide: oxide.reload DiscordRaidAlarm или перезапустите.
- Carbon: c.reload DiscordRaidAlarm.
4. Конфигурация:
- Проверьте oxide/config/DiscordRaidAlarm.json или аналогичный.
- Установите «API URL» на местоположение вашего DiscordRaidAlarm.php, например https://yourdomain.com/DiscordRaidAlarm.php.
- Установите для параметра «API Auth Token» тот же токен, что и на шаге 3.
Проверьте отсутствие ошибок. Запустите oxide.plugins или carbon.plugins, чтобы убедиться, что он загружен.
5. Настройка PHP API
- Загрузите DiscordRaidAlarm.php на свой веб-хостинг.
- Отредактируйте строки следующим образом:
define ( 'DB_HOST' , 'localhost' ); define ( 'DB_NAME' , 'my_database' ); define ( 'DB_USER' , 'my_db_user' ); define ( 'DB_PASS' , 'my_db_pass' ); define ( 'API_TOKEN' , 'YOUR_RANDOM_TOKEN' );
Убедитесь, что API_TOKEN соответствует вашему плагину.
Убедитесь, что вы можете открыть DiscordRaidAlarm.php в браузере (может появиться ошибка, это нормально при отсутствии параметров).
6. Создание базы данных
- Создайте базу данных MySQL или используйте существующую.
- Импорт create_table.sql:
mysql -u my_db_user -p my_database < create_table . sql
3. Проверьте raid_events:
SHOW TABLES;
Если он там есть, то все готово.
7. Использование публичного многопользовательского бота
Если вы не хотите размещать .exe, наш публичный многопользовательский бот Discord может опросить ваши raid_events для вас. Ниже приведены два основных шага: приглашение бота, затем регистрация вашего арендатора с помощью команды /registertenant.
7.1 Пригласите бота на свой сервер
- Нажмите на эту ссылку-приглашение:
Он предварительно настроен с минимальными, но необходимыми разрешениями, включая отправку сообщений (что имеет решающее значение для личных сообщений или публикации сообщений на канале) и другие соответствующие области действия.
- Выберите свой сервер Discord и авторизуйте его.
- Теперь бот появится в списке участников вашего сервера. Если он не может отправлять сообщения или вы хотите, чтобы работали слэш-команды, убедитесь, что у него есть правильная роль/разрешение на сервере. Обычно достаточно «Отправлять сообщения», «Встраивать ссылки», «Читать историю сообщений» и «Использовать команды приложения».
7.2 Зарегистрируйте своего арендатора с помощью /registertenant
- Откройте текстовый канал (или любой другой канал) на том же сервере, куда вы пригласили бота.
- Введите /registertenant. Вы увидите форму для: api_url
(обязательно) – URL-адрес вашего DiscordRaidAlarm.php.
api_token
(обязательно) – Тот же токен из вашего плагина + DiscordRaidAlarm.php.
Внимательно заполните каждое поле:
- api_url: например, https://yourdomain.com/DiscordRaidAlarm.php
- api_token: ваш случайный токен.
- steamlink_url / steamlink_secret: Если у вас нет системы ссылок Steam, просто введите заполнители.
- (Необязательно) bypass_token или poll_interval при необходимости.
Нажмите Enter. Бот ответит эфемерно либо «Арендатор успешно зарегистрирован/обновлен!», либо сообщением об ошибке, если что-то пошло не так.
В случае успеха бот автоматически регистрирует информацию о вашем сервере (guild_id + config) в своей многопользовательской базе данных.
С этого момента бот опрашивает вашу таблицу raid_events.
Готово! Всякий раз, когда ваш плагин регистрирует рейд, бот видит его и отправляет личное сообщение защитникам (при условии, что у вас настроено отображение Steam-Discord).
Важно: Вы должны запустить /registertenant с сервера, на который приглашен бот. Бот автоматически захватывает ваш guild_id из команды slash, связывая эту гильдию с api_url + api_token, которые вы предоставили.
8. Самостоятельный бот (необязательно)
Если вы предпочитаете размещать собственный однопользовательский .exe-файл, пропустите раздел 7 и сделайте следующее:
- Создайте бота Discord на портале разработчиков.
- Пригласите его, предоставив разрешения, например, «Отправлять сообщения» и т. д.
- Отредактируйте appsettings.json или .config:
-
{ "BotSettings": { "BotToken": "YOUR_BOT_TOKEN", "RaidApiUrl": "https://yourdomain.com/DiscordRaidAlarm.php", "RaidApiToken": "YOUR_RANDOM_TOKEN", "PollIntervalSeconds": "10" } }
- Запустите DiscordRaidAlarmBot.exe.
- Он опрашивает вашу таблицу raid_events, DMs защитников.
9. Тестирование и проверка
- Запустите тест из вашего плагина сервера Rust, если он поддерживает тестовую команду (например, /raidalarm.test). В противном случае повредите строительный блок.
- Проверьте таблицу MySQL raid_events:
-
ВЫБРАТЬ * ИЗ raid_events ;
- Если новая строка добавлена с обработанным значением = 0, бот должен увидеть ее в следующем цикле опроса (каждые 10–30 секунд или с выбранным вами интервалом).
- Бот (публичный многопользовательский или ваш собственный) отправляет личные сообщения всем защитникам с известными идентификаторами Discord.
- Если вы видите сообщение «Арендатор успешно зарегистрирован/обновлен!» из /registertenant, но рейды не обрабатываются, проверьте устранение неполадок.
10. Устранение неполадок
- Нет личных сообщений:
- Возможно, настройки конфиденциальности защитников блокируют личные сообщения от участников этого сервера.
- Пользователь может находиться не на том же сервере Discord.
- Сопоставление Steam ID → Discord ID отсутствует, если вы полагаетесь на внешние системы ссылок.
- «Ошибка регистрации арендатора» или сообщения 403/401:
- Несоответствие api_token между плагином Rust, DiscordRaidAlarm.php или данными, введенными вами в /registertenant.
- Опечатка в api_url или сервер не загрузил плагин.
- Бот не отправляет:
- Для публичного многопользовательского бота убедитесь, что вы ввели /registertenant на правильном сервере, и он ответил успешно.
- Для вашего собственного бота убедитесь, что .exe-файл запущен, токен действителен и он находится на вашем сервере с разрешением на отправку сообщений.
- Плагин не регистрирует данные:
- Проверьте журналы консоли на наличие ошибок загрузки DiscordRaidAlarm.cs.
- Возможно, он находится не в той папке для Oxide/Carbon, или вы не установили «API Auth Token» в конфигурации плагина.
Отзывы
Отзывов пока нет.