Implement Guild.fetch_roles

This commit is contained in:
NCPlayz 2019-06-08 22:38:27 +01:00 committed by Rapptz
parent 851f83c821
commit 5698cf6df9
2 changed files with 27 additions and 0 deletions

View File

@ -1521,6 +1521,30 @@ class Guild(Hashable):
data = await self._state.http.create_custom_emoji(self.id, name, img, roles=roles, reason=reason)
return self._state.store_emoji(self, data)
async def fetch_roles(self):
"""|coro|
Retrieves all :class:`Role` that the guild has.
.. note::
This method is an API call. For general usage, consider :attr:`roles` instead.
.. versionadded:: 1.3.0
Raises
-------
HTTPException
Retrieving the roles failed.
Returns
-------
List[:class:`Role`]
All roles in the guild.
"""
data = await self._state.http.get_roles(self.id)
return [Role(guild=self, state=self._state, data=d) for d in data]
async def create_role(self, *, reason=None, **fields):
"""|coro|

View File

@ -722,6 +722,9 @@ class HTTPClient:
# Role management
def get_roles(self, guild_id):
return self.request(Route('GET', '/guilds/{guild_id}/roles', guild_id=guild_id))
def edit_role(self, guild_id, role_id, *, reason=None, **fields):
r = Route('PATCH', '/guilds/{guild_id}/roles/{role_id}', guild_id=guild_id, role_id=role_id)
valid_keys = ('name', 'permissions', 'color', 'hoist', 'mentionable')