Skip to content

Изучает Rich Presence участников дискорд сервера и ведёт статистику их нахождения в игре

Notifications You must be signed in to change notification settings

Urantij/DiscordBattleriteQueueEstimator

Repository files navigation

Что

Дискорд бот, позволяющий узнать, сколько людей на сервере сидит в очереди в игре, а также сколько конкретный юзер сервера провёл времени в меню, в очереди или играя.

Как

Дискорд позволяет узнать статус игрока в игре через Rich Presence. Статусом может быть информация о том, что игрок сидит в меню, в очереди или играет. Бот сохраняет эти статусы, и использует их для своих вычислений.

В личных сообщениях бота можно использовать команды

/time

Menu: 13 Minutes
League Queue: 1.7 Hours
Casual Queue: 1.2 Hours
League Arena Playtime: 38 Minutes
Casual Arena Playtime: 55 Minutes

/info

Total: 1
League Queue: 1
Casual Queue: 0

Зачем

Бот сильно ограничен тем фактом, что далеко не все включают в профиле Rich Presence. Тем не менее даже если информация о количестве участников в очереди довольно сомнительна, желающие всё ещё могут узнать свою статистику по времени в игре.

И ещё он ограничен тем, что бота на сервер должен добавить владелец сервера.

Запуск

Для программы нужно создать приложение дискорда, включить там бота, включить у бота PRESENCE INTENT и SERVER MEMBERS INTENT. После чего скопировать токен бота и указать его секретом для приложения.

https://discord.com/developers/applications/

dotnet user-secrets set "Discord:Token" "123" 

Затем в OAuth2 категории выбрать галочку bot, и при помощи сгенерированной в самому низу страницы ссылки пригласить бота на сервер. Боту не нужны никакие доступы ни к чему. Команды пишутся ему в личку.

Fake Rp

На линуксе нет нативной версии батлрайта, и протон сам по себе не отправляет информацию о статусе игры в виде rp в дискорд. Но есть специально созданные мосты, которые этим занимаются. Проблема в том, что для дискорда такой игрок будет играть в 2 игры сразу. В "battlerite" (по запущенному файлу) и в "Battlerite" (по приходящему rp). И дискорд будет присылать боту rp только об одной из этих активностей. И если игра свёрнута, будет присылать пустые rp "battlerite". У пользователя это исправляется отключением обнаружения игры по файлу в настройках, но я добавил логику в обработку времени на тот случай, если кто-то ещё играет на линухе и не знает об этой проблеме.

About

Изучает Rich Presence участников дискорд сервера и ведёт статистику их нахождения в игре

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages