#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
Я написал следующую команду для создания ссылки приглашения гильдии.
@commands.command()
async def create_invite(self,ctx,channel: discord.TextChannel):
invite = await self.bot.channel.create_invite()
await ctx.send(invite)
Я сталкиваюсь со следующей ошибкой:
Ignoring exception in command create_invite:
Traceback (most recent call last):
File "C:UsersRohitAppDataRoamingPythonPython37site-packagesdiscordextcommandsbot.py", line 892, in invoke
await ctx.command.invoke(ctx)
File "C:UsersRohitAppDataRoamingPythonPython37site-packagesdiscordextcommandscore.py", line 790, in invoke
await self.prepare(ctx)
File "C:UsersRohitAppDataRoamingPythonPython37site-packagesdiscordextcommandscore.py", line 751, in prepare
await self._parse_arguments(ctx)
File "C:UsersRohitAppDataRoamingPythonPython37site-packagesdiscordextcommandscore.py", line 670, in _parse_arguments
transformed = await self.transform(ctx, param)
File "C:UsersRohitAppDataRoamingPythonPython37site-packagesdiscordextcommandscore.py", line 516, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: channel is a required argument that is missing.
Я знаю, что эта команда будет работать нормально, если я не буду использовать ее внутри cogs.Я хочу знать, как правильно использовать его в cogs.
Ответ №1:
Проблема может возникнуть отсюда:
invite = await self.bot.channel.create_invite()
Метод, который вы пытаетесь использовать, TextChannel.create_invite()
. self.bot
, который является commands.Bot
объектом, не имеет channel
атрибута, поэтому у вас возникает эта ошибка.
Вот как вы это сделаете:
@commands.command()
async def create_invite(self, ctx, channel: discord.TextChannel):
invite = await channel.create_invite()
await ctx.send(invite)