Browse Source

[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.
pull/2516/head
Hugo Woesthuis 5 years ago
committed by Rapptz
parent
commit
ee6f4e85d6
  1. 9
      discord/ext/commands/converter.py

9
discord/ext/commands/converter.py

@ -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`.

Loading…
Cancel
Save