Ctx является обязательным аргументом - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь сделать простого музыкального бота.Когда я выполняю команду, я получаю сообщение об ошибке: отсутствует обязательный аргумент Ctx

import discord
from discord.ext import commands
import asyncio

bot = commands.Bot(command_prefix= "-")



class VoiceConnectionError(commands.CommandError):
    """Custom Exception class for connection errors."""
class InvalidVoiceChannel(VoiceConnectionError):
    """Exception for cases of invalid Voice Channels."""

@bot.event
async def on_ready():
    print('Bot ready')

@bot.command(name='connect', aliases=['join'], pass_context=True)
async def connect(self, ctx, *, channel: discord.VoiceChannel=None):


    await ctx.send(f'Connected to: **{channel}**', delete_after=10)


bot.run('TOKEN')

Команда должна переместить бота в голосовой канал с разногласиями.

Полный возврат: игнорированиеисключение в команде connect: трассировка (последний вызов был последним): файл "/anaconda3/lib/python3.6/site-packages/discord/ext/commands/bot.py", строка 859, в invoke await ctx.command.invoke(ctx) Файл "/anaconda3/lib/python3.6/site-packages/discord/ext/commands/core.py", строка 718, в файле invoke await self.prepare (ctx) "/ ​​anaconda3 / lib / python3.6 / site-packages / discord / ext / commands / core.py ", строка 682, в файле подготовки к ожиданию self._parse_arguments (ctx)" /anaconda3/lib/python3.6/site-packages/discord/ext/commands/core.py ", строка 596, в _parse_arguments transform = await файл self.transform (ctx, param)" /anaconda3/lib/python3.6/site-packages/discord/ext/commands/core.py ", строка 442,в преобразовании поднять MissingRequiredArgument (param) discord.ext.commands.errors.MissingRequiredArgument: ctx являетсяобязательный аргумент отсутствует.

1 Ответ

0 голосов
/ 29 мая 2019

Ваши команды должны принимать параметр self, только если они являются частью Cog .Удалить параметр:

@bot.command(name='connect', aliases=['join'], pass_context=True)
async def connect(ctx, *, channel: discord.VoiceChannel=None):
    ...
...