Browse Source

[commands] Change UserConverter to actually work with User, not Member.

pull/468/head
Rapptz 8 years ago
parent
commit
11b54d67c9
  1. 28
      discord/ext/commands/converter.py

28
discord/ext/commands/converter.py

@ -101,7 +101,33 @@ class MemberConverter(IDConverter):
return result
UserConverter = MemberConverter
class UserConverter(IDConverter):
def convert(self):
match = self._get_id_match() or re.match(r'<@!?([0-9]+)>$', self.argument)
result = None
state = self.ctx._state
if match is not None:
user_id = int(match.group(1))
result = self.bot.get_user(user_id)
else:
arg = self.argument
# check for discriminator if it exists
if len(arg) > 5 and arg[-5] == '#':
discrim = arg[-4:]
name = arg[:-5]
predicate = lambda u: u.name == name and u.discriminator == discrim
result = discord.utils.find(predicate, state._users.values())
if result is not None:
return result
predicate = lambda u: u.name == arg
result = discord.utils.find(predicate, state._users.values())
if result is None:
raise BadArgument('User "{}" not found'.format(self.argument))
return result
class TextChannelConverter(IDConverter):
def convert(self):

Loading…
Cancel
Save