[commands] First pass in making commands ext work again.
This commit is contained in:
		@@ -32,8 +32,8 @@ import inspect
 | 
			
		||||
from .errors import BadArgument, NoPrivateMessage
 | 
			
		||||
 | 
			
		||||
__all__ = [ 'Converter', 'MemberConverter', 'UserConverter',
 | 
			
		||||
            'ChannelConverter', 'InviteConverter', 'RoleConverter',
 | 
			
		||||
            'GameConverter', 'ColourConverter' ]
 | 
			
		||||
            'TextChannelConverter', 'InviteConverter', 'RoleConverter',
 | 
			
		||||
            'GameConverter', 'ColourConverter', 'VoiceChannelConverter' ]
 | 
			
		||||
 | 
			
		||||
def _get_from_guilds(bot, getter, argument):
 | 
			
		||||
    result = None
 | 
			
		||||
@@ -103,20 +103,50 @@ class MemberConverter(IDConverter):
 | 
			
		||||
 | 
			
		||||
UserConverter = MemberConverter
 | 
			
		||||
 | 
			
		||||
class ChannelConverter(IDConverter):
 | 
			
		||||
class TextChannelConverter(IDConverter):
 | 
			
		||||
    def convert(self):
 | 
			
		||||
        message = self.ctx.message
 | 
			
		||||
        bot = self.ctx.bot
 | 
			
		||||
 | 
			
		||||
        match = self._get_id_match() or re.match(r'<#([0-9]+)>$', self.argument)
 | 
			
		||||
        result = None
 | 
			
		||||
        guild = message.guild
 | 
			
		||||
        guild = self.ctx.guild
 | 
			
		||||
 | 
			
		||||
        if match is None:
 | 
			
		||||
            # not a mention
 | 
			
		||||
            if guild:
 | 
			
		||||
                result = discord.utils.get(guild.channels, name=self.argument)
 | 
			
		||||
                result = discord.utils.get(guild.text_channels, name=self.argument)
 | 
			
		||||
            else:
 | 
			
		||||
                result = discord.utils.get(bot.get_all_channels(), name=self.argument)
 | 
			
		||||
                def check(c):
 | 
			
		||||
                    return isinstance(c, discord.TextChannel) and c.name == self.argument
 | 
			
		||||
                result = discord.utils.find(check, bot.get_all_channels())
 | 
			
		||||
        else:
 | 
			
		||||
            channel_id = int(match.group(1))
 | 
			
		||||
            if guild:
 | 
			
		||||
                result = guild.get_channel(channel_id)
 | 
			
		||||
            else:
 | 
			
		||||
                result = _get_from_guilds(bot, 'get_channel', channel_id)
 | 
			
		||||
 | 
			
		||||
        if result is None:
 | 
			
		||||
            raise BadArgument('Channel "{}" not found.'.format(self.argument))
 | 
			
		||||
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
class VoiceChannelConverter(IDConverter):
 | 
			
		||||
    def convert(self):
 | 
			
		||||
        bot = self.ctx.bot
 | 
			
		||||
 | 
			
		||||
        match = self._get_id_match() or re.match(r'<#([0-9]+)>$', self.argument)
 | 
			
		||||
        result = None
 | 
			
		||||
        guild = self.ctx.guild
 | 
			
		||||
 | 
			
		||||
        if match is None:
 | 
			
		||||
            # not a mention
 | 
			
		||||
            if guild:
 | 
			
		||||
                result = discord.utils.get(guild.voice_channels, name=self.argument)
 | 
			
		||||
            else:
 | 
			
		||||
                def check(c):
 | 
			
		||||
                    return isinstance(c, discord.VoiceChannel) and c.name == self.argument
 | 
			
		||||
                result = discord.utils.find(check, bot.get_all_channels())
 | 
			
		||||
        else:
 | 
			
		||||
            channel_id = int(match.group(1))
 | 
			
		||||
            if guild:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user