Для создания бота, который будет показывать онлайн игроков на сервере Rust на Discord, вам понадобится следующее:
1. Создайте новое приложение на платформе Discord Developer Portal и получите токен бота. Убедитесь, что ваш бот имеет разрешение на присоединение к серверам и чтение состояния чата.
2. Установите необходимые библиотеки для работы с Discord API и RCON (Remote Console) сервера Rust. Например, discord.py для работы с Discord API и rcon для работы с RCON сервера Rust. Вы можете установить их с помощью pip:
Код:
pip install discord.py
pip install rcon
3. Создайте новый файл Python, например,
rust_bot.py
, и импортируйте необходимые модули:
Код:
python
import discord
import rcon
import asyncio
4. Создайте экземпляр клиента Discord и подключитесь к серверу:
Код:
python
client = discord.Client()
@client.event
async def on_ready():
print('Bot is ready.')
await client.change_presence(activity=discord.Game(name='Rust'))
5. Создайте функцию, которая будет подключаться к RCON серверу Rust и получать информацию о сервере:
Код:
python
async def get_online_players():
rcon_client = rcon.Client('RCON_SERVER_IP', RCON_SERVER_PORT, 'RCON_PASSWORD')
try:
await rcon_client.login()
response = await rcon_client.command('status')
players = response.split('\n')[2:-2]
return players
except rcon.AuthenticationError:
print('RCON authentication failed.')
except rcon.ConnectionError:
print('Failed to connect to RCON server.')
finally:
await rcon_client.close()
6. Создайте команду для бота, которая будет вызывать функцию
get_online_players
и отображать онлайн игроков на Discord:
Код:
python
@client.event
async def on_message(message):
if message.content.startswith('!online'):
players = await get_online_players()
if players:
await message.channel.send(f'Online players: {", ".join(players)}')
else:
await message.channel.send('No players online.')
7. Запустите бота:
Код:
python
client.run('YOUR_BOT_TOKEN')
8. Теперь вы можете пригласить своего бота на свой Discord сервер и использовать команду
!online
для проверки онлайн игроков на сервере Rust.
Обратите внимание, что вам нужно будет заменить
'RCON_SERVER_IP'
,
RCON_SERVER_PORT
и
'RCON_PASSWORD'
на соответствующие значения вашего RCON сервера Rust. Также убедитесь, что у бота есть достаточные разрешения для отправки сообщений в текстовые каналы.