Как получить объект сервера из команды без аргументов discord.py - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь создать бота, который будет показывать в консоли информацию о сервере, когда я делаю !info, не передавая ему никаких аргументов, используя discord.py на Python.Все, что я нашел, включает в себя передачу аргументов.

Это то, что я пробовал до сих пор:

@bot.command()
@asyncio.coroutine
def info(ctx):
    server = ctx.message.author.server
    server_name = server.name
    server_id = server.id
    server_owner = server.owner.name

    print("server name: {}"
          "server id: {}"
          "server owner: {}"
          .format(server_name, server_id, server_owner))

И когда он запускается, он показывает это в консоли:

Ignoring exception in command move
Traceback (most recent call last):
  File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\bot.py", line 846, in process_commands
    yield from command.invoke(ctx)
  File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 367, in invoke
    yield from self.prepare(ctx)
  File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 345, in prepare
    yield from self._parse_arguments(ctx)
  File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 304, in _parse_arguments
    transformed = yield from self.transform(ctx, param)
  File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 212, in transform
    raise MissingRequiredArgument('{0.name} is a required argument that is missing.'.format(param))
discord.ext.commands.errors.MissingRequiredArgument: ctx is a required argument that is missing.

1 Ответ

0 голосов
/ 31 мая 2018

Вам нужно передать pass_context=True на @bot.command

@bot.command(pass_context=True)
@asyncio.coroutine
def info(ctx):
    server = ctx.message.author.server
    server_name = server.name
    server_id = server.id
    server_owner = server.owner.name

    print("server name: {}"
          "server id: {}"
          "server owner: {}"
          .format(server_name, server_id, server_owner))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...