RAGEMP JS [JS + Python] [Server-side] Выводим онлайн сервера в Discord

Способ актуален для серверов, работающих 24/7 (держащихся на VDS, например).

Всем привет! В данном мануале Вы узнаете, как можно вывести онлайн своего сервера в название канала в Discord.

1707999008996-png.12653


Для корректной работы бота у Вас должен быть установить Python.

Ссылка для скачивания: https://www.python.org/downloads/

Для начала необходимо создать Discord бота на портале разработчиков Discord: https://discord.com/developers.
Переходим по ссылке, авторизовываемся в свой аккаунт Discord, если ранее Вы этого не делали, и идём дальше.

Итак, перед нами главная страница портала.
1707997311786-png.12646

Нажимаем кнопку "New Application", вводим имя приложения, соглашаемся с Developer Terms of Service и Developer Policy, и нажимаем "Create".


1707997505673-png.12647

Бот успешно создан.

1707997614109-png.12648

Переходим во вкладку Bot и нажимаем кнопку "Reset Token", копируем токен (ТОКЕН ЯВЛЯЕТСЯ СЕКРЕТНЫМ. НЕ РЕКОМЕНДУЕТСЯ ОТПРАВЛЯТЬ ЕГО КОМУ-ЛИБО.), листаем ниже, и в главе Privileged Gateway Intents переключаем все тумблеры.

1707997845935-png.12649

Далее открываем папку Вашего сервера в Visual Studio Code, переходим в packages, создаём файл discordOnline.js, и вписываем в него следующий код:

Код JavaScript:
const http = require('http');

const server = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write(`${mp.players.length}/${mp.players.size}`);
  response.end();
});

server.listen(8080);
console.log('\nМониторинг запущен. Онлайн передан в Discord.');

Переходим в index.js и пишем в него:
Код JavaScript:
require('./discordOnline.js')

Перезапускаем сервер и переходим по ссылке http://localhost:8080.
Проверяем, запустился ли у нас http-сервер. На странице должен быть написан онлайн Вашего сервера. (0/1000, например)

Если сервер запущен, идём дальше.

На рабочем столе (местоположение как пример) создаём папку onlineBot и открываем её в Visual Studio Code.
После открытия папки в VSC нажимаем Ctrl + Ё (терминал) и вводим туда следующие строки:
Код Python:
pip install disnake
pip install requests
Проверяем, чтобы не было никаких ошибок, и идём дальше.

Создаём в только что открытой папке файл main.py и вставляет в него следующий код:

Код Python:
import disnake
import requests
from disnake.ext import tasks

intents = disnake.Intents.all()
bot = commands.Bot(command_prefix='.', intents=intents)

@tasks.loop(seconds=120)
async def update_channel_name():
    
    guild_id = ID_ВАШЕГО_DISCORD_СЕРВЕРА
    channel_id = ID_КАНАЛА_ДЛЯ_ОТОБРАЖЕНИЯ_ОНЛАЙНА
    
    # id вводить без каких-либо кавычек, просто цифры.

    guild = bot.get_guild(guild_id)
    channel = guild.get_channel(channel_id)
    url = "http://localhost:8080/"
    response = requests.get(url)
    if response.status_code == 200:
        source_code = response.text

    if guild and channel:
        await channel.edit(name=f'Онлайн сервера: {source_code}')
        
@bot.event
async def on_connect():
    update_channel_name.start()
    

bot.run('ТОКЕН_ВАШЕГО_БОТА')

Обязательно поменяйте в коде ID Вашего Discord сервера и ID канала который будет использоваться как "мониторинг" онлайна на Ваши значения.

После того, как мы всё сделали - запускаем наш файл командой
Код Python:
python main.py
и проверяем канал.

Как видим, всё работает.

1707998690620-png.12650

1707998777154-png.12651
 
Войдите или зарегистрируйтесь для ответа.

Просматревшие тему

Сверху