@ -40,6 +40,7 @@ __all__ = (
' PartialMessageConverter ' ,
' PartialMessageConverter ' ,
' TextChannelConverter ' ,
' TextChannelConverter ' ,
' InviteConverter ' ,
' InviteConverter ' ,
' GuildConverter ' ,
' RoleConverter ' ,
' RoleConverter ' ,
' GameConverter ' ,
' GameConverter ' ,
' ColourConverter ' ,
' ColourConverter ' ,
@ -282,7 +283,7 @@ class PartialMessageConverter(Converter):
if not channel :
if not channel :
raise ChannelNotFound ( channel_id )
raise ChannelNotFound ( channel_id )
return discord . PartialMessage ( channel = channel , id = message_id )
return discord . PartialMessage ( channel = channel , id = message_id )
class MessageConverter ( PartialMessageConverter ) :
class MessageConverter ( PartialMessageConverter ) :
""" Converts to a :class:`discord.Message`.
""" Converts to a :class:`discord.Message`.
@ -524,6 +525,32 @@ class InviteConverter(Converter):
except Exception as exc :
except Exception as exc :
raise BadInviteArgument ( ) from exc
raise BadInviteArgument ( ) from exc
class GuildConverter ( IDConverter ) :
""" Converts to a :class:`~discord.Guild`.
The lookup strategy is as follows ( in order ) :
1. Lookup by ID .
2. Lookup by name . ( There is no disambiguation for Guilds with multiple matching names ) .
. . versionadded : : 1.7
"""
async def convert ( self , ctx , argument ) :
match = self . _get_id_match ( argument )
result = None
if match is not None :
guild_id = int ( match . group ( 1 ) )
result = ctx . bot . get_guild ( guild_id )
if result is None :
result = discord . utils . get ( ctx . bot . guilds , name = argument )
if result is None :
raise GuildNotFound ( argument )
return result
class EmojiConverter ( IDConverter ) :
class EmojiConverter ( IDConverter ) :
""" Converts to a :class:`~discord.Emoji`.
""" Converts to a :class:`~discord.Emoji`.