Skip to content

Commit d8a948b

Browse files
authored
feat: implement Guild.fetch_role (#2528)
* feat: implement `Guild.fetch_role` * style(pre-commit): auto fixes from pre-commit.com hooks * docs: add changelog entry --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> !crowdin update
1 parent dfbe23d commit d8a948b

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ These changes are available on the `master` branch, but have not yet been releas
2020
- ⚠️ **This Version Removes Support For Python 3.8** ⚠️
2121
([#2521](https://github.com/Pycord-Development/pycord/pull/2521))
2222

23+
### Added
24+
25+
- Added `Guild.fetch_role` method.
26+
([#2528](https://github.com/Pycord-Development/pycord/pull/2528))
27+
2328
## [2.6.0] - 2024-07-09
2429

2530
### Added

discord/guild.py

+24
Original file line numberDiff line numberDiff line change
@@ -2815,6 +2815,30 @@ async def fetch_roles(self) -> list[Role]:
28152815
data = await self._state.http.get_roles(self.id)
28162816
return [Role(guild=self, state=self._state, data=d) for d in data]
28172817

2818+
async def fetch_role(self, role_id: int) -> Role:
2819+
"""|coro|
2820+
2821+
Retrieves a :class:`Role` that the guild has.
2822+
2823+
.. note::
2824+
2825+
This method is an API call. For general usage, consider using :attr:`get_role` instead.
2826+
2827+
.. versionadded:: 2.7
2828+
2829+
Returns
2830+
-------
2831+
:class:`Role`
2832+
The role in the guild with the specified ID.
2833+
2834+
Raises
2835+
------
2836+
HTTPException
2837+
Retrieving the role failed.
2838+
"""
2839+
data = await self._state.http.get_role(self.id, role_id)
2840+
return Role(guild=self, state=self._state, data=data)
2841+
28182842
async def _fetch_role(self, role_id: int) -> Role:
28192843
"""|coro|
28202844

discord/http.py

+10
Original file line numberDiff line numberDiff line change
@@ -2048,6 +2048,16 @@ def delete_invite(
20482048
def get_roles(self, guild_id: Snowflake) -> Response[list[role.Role]]:
20492049
return self.request(Route("GET", "/guilds/{guild_id}/roles", guild_id=guild_id))
20502050

2051+
def get_role(self, guild_id: Snowflake, role_id: Snowflake) -> Response[role.Role]:
2052+
return self.request(
2053+
Route(
2054+
"GET",
2055+
"/guilds/{guild_id}/roles/{role_id}",
2056+
guild_id=guild_id,
2057+
role_id=role_id,
2058+
)
2059+
)
2060+
20512061
def edit_role(
20522062
self,
20532063
guild_id: Snowflake,

0 commit comments

Comments
 (0)