diff options
| author | Rapptz <[email protected]> | 2021-08-23 23:46:50 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2021-08-23 23:46:50 -0400 |
| commit | 490bbffc935856f885edd9a2d1505ac228c38f72 (patch) | |
| tree | 46a2aa80b6ebbe1faddd3ddd8c338cce1e8eb613 /discord/role.py | |
| parent | Fix typing of move role position payload parameter (diff) | |
| download | discord.py-490bbffc935856f885edd9a2d1505ac228c38f72.tar.xz discord.py-490bbffc935856f885edd9a2d1505ac228c38f72.zip | |
Remove in-place edits and return fresh instances instead
Fixes #4098
Diffstat (limited to 'discord/role.py')
| -rw-r--r-- | discord/role.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/discord/role.py b/discord/role.py index 86df9255..0427ddc3 100644 --- a/discord/role.py +++ b/discord/role.py @@ -351,7 +351,7 @@ class Role(Hashable): mentionable: bool = MISSING, position: int = MISSING, reason: Optional[str] = MISSING, - ) -> None: + ) -> Optional[Role]: """|coro| Edits the role. @@ -364,6 +364,9 @@ class Role(Hashable): .. versionchanged:: 1.4 Can now pass ``int`` to ``colour`` keyword-only parameter. + .. versionchanged:: 2.0 + Edits are no longer in-place, the newly edited role is returned instead. + Parameters ----------- name: :class:`str` @@ -391,11 +394,14 @@ class Role(Hashable): InvalidArgument An invalid position was given or the default role was asked to be moved. - """ + Returns + -------- + :class:`Role` + The newly edited role. + """ if position is not MISSING: await self._move(position, reason=reason) - self.position = position payload: Dict[str, Any] = {} if color is not MISSING: @@ -420,7 +426,7 @@ class Role(Hashable): payload['mentionable'] = mentionable data = await self._state.http.edit_role(self.guild.id, self.id, reason=reason, **payload) - self._update(data) + return Role(guild=self.guild, data=data, state=self._state) async def delete(self, *, reason: Optional[str] = None) -> None: """|coro| |