Проблемы с Rcon и Discord на Python
Хотел сделать Discord бота, который при коммандах отправлял на мой Майнкрафт сервер комманду с помощью такой фичи как MCRcon, попросил нейросеть написать код, и при тесте кода появилась ошибка unpack requires a buffer of 8 bytes
полная ошибка:
Traceback (most recent call last):
File "C:\Users\pahan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\bot.py", line 1350, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\pahan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 1021, in invoke
await self.prepare(ctx)
File "C:\Users\pahan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 938, in prepare
await self._parse_arguments(ctx)
File "C:\Users\pahan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 845, in _parse_arguments
transformed = await self.transform(ctx, param, attachments)
File "C:\Users\pahan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\ext\commands\core.py", line 697, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: option is a required argument that is missing.
unpack requires a buffer of 8 bytes
код:
from discord.ext import commands
from mcrcon import MCRcon
# Замените 'your_token_here' на токен вашего бота
TOKEN = 'СКРЫТО'
# Замените на данные для подключения к вашему серверу Minecraft
RCON_HOST = '65.108.99.34'
RCON_PORT = 12768 # Стандартный порт RCON
RCON_PASSWORD = 'СКРЫТО'
intents = discord.Intents.default()
intents.presences = True
intents.members = True
intents.message_content = True
# Создаем экземпляр бота
bot = commands.Bot(command_prefix=['/'], intents = intents)
def send_rcon_command(command):
try:
with MCRcon(RCON_HOST, RCON_PASSWORD, RCON_PORT) as mcr:
resp = mcr.command(command)
return resp
except Exception as e:
print(e)
return "Ошибка. Возможно возникли проблемы с присоединением к серверу, или сервер просто выключен."
@bot.command(name='command', help='Выполняет команды /seed или /whitelist list на Minecraft сервере.')
async def _command(ctx, option: str):
if option == 'сид':
response = send_rcon_command('/seed')
elif option == 'лист_игроков':
response = send_rcon_command('/whitelist list')
else:
response = 'Неверная опция. Используйте "сид" или "лист_игроков".'
await ctx.send(response)
@bot.event
async def on_ready():
print(f'{bot.user.name} has connected to Discord!')
bot.run(TOKEN)