mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-21 00:07:51 +00:00
[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',
|
||||
'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))
|
||||
|
@ -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…
x
Reference in New Issue
Block a user