Browse Source

[commands] Fix error in converters in a private message context.

I was referencing a member function that did not actually exist. So I
ported it over to a free function that could be used.
pull/260/head
Rapptz 9 years ago
parent
commit
1500001b04
  1. 14
      discord/ext/commands/converter.py
  2. 8
      discord/ext/commands/core.py

14
discord/ext/commands/converter.py

@ -34,6 +34,14 @@ __all__ = [ 'Converter', 'MemberConverter', 'UserConverter',
'ChannelConverter', 'InviteConverter', 'RoleConverter',
'GameConverter', 'ColourConverter' ]
def _get_from_servers(bot, getter, argument):
result = None
for server in bot.servers:
result = getattr(server, getter)(argument)
if result:
return result
return result
class Converter:
"""The base class of custom converters that require the :class:`Context`
to be passed to be useful.
@ -72,13 +80,13 @@ class MemberConverter(Converter):
if server:
result = server.get_member_named(self.argument)
else:
result = self._get_from_servers(bot, 'get_member_named', self.argument)
result = _get_from_servers(bot, 'get_member_named', self.argument)
else:
user_id = match.group(1)
if server:
result = server.get_member(user_id)
else:
result = self._get_from_servers(bot, 'get_member', user_id)
result = _get_from_servers(bot, 'get_member', user_id)
if result is None:
raise BadArgument('Member "{}" not found'.format(self.argument))
@ -106,7 +114,7 @@ class ChannelConverter(Converter):
if server:
result = server.get_channel(channel_id)
else:
result = self._get_from_servers(bot, 'get_channel', channel_id)
result = _get_from_servers(bot, 'get_channel', channel_id)
if result is None:
raise BadArgument('Channel "{}" not found.'.format(self.argument))

8
discord/ext/commands/core.py

@ -158,14 +158,6 @@ class Command:
finally:
ctx.bot.dispatch('command_error', error, ctx)
def _get_from_servers(self, bot, getter, argument):
result = None
for server in bot.servers:
result = getattr(server, getter)(argument)
if result:
return result
return result
@asyncio.coroutine
def do_conversion(self, ctx, converter, argument):
if converter is bool:

Loading…
Cancel
Save