[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.
This commit is contained in:
parent
4d71b3fe7d
commit
1500001b04
@ -34,6 +34,14 @@ __all__ = [ 'Converter', 'MemberConverter', 'UserConverter',
|
|||||||
'ChannelConverter', 'InviteConverter', 'RoleConverter',
|
'ChannelConverter', 'InviteConverter', 'RoleConverter',
|
||||||
'GameConverter', 'ColourConverter' ]
|
'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:
|
class Converter:
|
||||||
"""The base class of custom converters that require the :class:`Context`
|
"""The base class of custom converters that require the :class:`Context`
|
||||||
to be passed to be useful.
|
to be passed to be useful.
|
||||||
@ -72,13 +80,13 @@ class MemberConverter(Converter):
|
|||||||
if server:
|
if server:
|
||||||
result = server.get_member_named(self.argument)
|
result = server.get_member_named(self.argument)
|
||||||
else:
|
else:
|
||||||
result = self._get_from_servers(bot, 'get_member_named', self.argument)
|
result = _get_from_servers(bot, 'get_member_named', self.argument)
|
||||||
else:
|
else:
|
||||||
user_id = match.group(1)
|
user_id = match.group(1)
|
||||||
if server:
|
if server:
|
||||||
result = server.get_member(user_id)
|
result = server.get_member(user_id)
|
||||||
else:
|
else:
|
||||||
result = self._get_from_servers(bot, 'get_member', user_id)
|
result = _get_from_servers(bot, 'get_member', user_id)
|
||||||
|
|
||||||
if result is None:
|
if result is None:
|
||||||
raise BadArgument('Member "{}" not found'.format(self.argument))
|
raise BadArgument('Member "{}" not found'.format(self.argument))
|
||||||
@ -106,7 +114,7 @@ class ChannelConverter(Converter):
|
|||||||
if server:
|
if server:
|
||||||
result = server.get_channel(channel_id)
|
result = server.get_channel(channel_id)
|
||||||
else:
|
else:
|
||||||
result = self._get_from_servers(bot, 'get_channel', channel_id)
|
result = _get_from_servers(bot, 'get_channel', channel_id)
|
||||||
|
|
||||||
if result is None:
|
if result is None:
|
||||||
raise BadArgument('Channel "{}" not found.'.format(self.argument))
|
raise BadArgument('Channel "{}" not found.'.format(self.argument))
|
||||||
|
@ -158,14 +158,6 @@ class Command:
|
|||||||
finally:
|
finally:
|
||||||
ctx.bot.dispatch('command_error', error, ctx)
|
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
|
@asyncio.coroutine
|
||||||
def do_conversion(self, ctx, converter, argument):
|
def do_conversion(self, ctx, converter, argument):
|
||||||
if converter is bool:
|
if converter is bool:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user