[commands] Allow @ prefixed usernames in DM contexts for UserConverter

Previously the argument '@user#0000' return None.
To fix this, as this is a common user error, an extra check was added
 to remove the first character from the argument if this is an '@'.
 Discord names may not contain an '@' anyways.
This commit is contained in:
Hugo Woesthuis 2020-01-05 20:44:23 +01:00 committed by Rapptz
parent 4cf02c9461
commit ee6f4e85d6

View File

@ -157,7 +157,13 @@ class UserConverter(IDConverter):
result = ctx.bot.get_user(user_id) or _utils_get(ctx.message.mentions, id=user_id)
else:
arg = argument
# check for discriminator if it exists
# Remove the '@' character if this is the first character from the argument
if arg[0] == '@':
# Remove first character
arg = arg[1:]
# check for discriminator if it exists,
if len(arg) > 5 and arg[-5] == '#':
discrim = arg[-4:]
name = arg[:-5]
@ -173,7 +179,6 @@ class UserConverter(IDConverter):
raise BadArgument('User "{}" not found'.format(argument))
return result
class MessageConverter(Converter):
"""Converts to a :class:`discord.Message`.