Я делаю конвертер канала разногласий
class Channel(commands.Converter):
async def convert(self, ctx, argument):
# Do converter stuff to get a channel
# This may fail meaning that the result is not a TextChannel
if not isinstance(result, discord.TextChannel):
return ctx.channel
else:
return result
Как вы можете видеть, я возвращаю ctx.channel
(канал, к которому был вызван), если я не смог получить канал. Проблема в том, что если я делаю что-то вроде этого ...
@commands.command(name='invite', aliases=['inv'])
@commands.guild_only()
@commands.cooldown(1, 30, commands.BucketType.user)
async def invite(self, ctx, channel: converters.Channel, member: discord.User):
# Command stuff here
Если участник запускает команду с g/invite #channel @member
, она работает нормально, но если они запускают команду с g/invite @member
, то текущий канал используется как канал, но член полностью игнорируется. Есть ли способ предотвратить это? (Так что канал будет текущим каналом, но элемент будет тем участником, которого они упомянули)