aboutsummaryrefslogtreecommitdiff
path: root/discord/role.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2021-08-23 23:46:50 -0400
committerRapptz <[email protected]>2021-08-23 23:46:50 -0400
commit490bbffc935856f885edd9a2d1505ac228c38f72 (patch)
tree46a2aa80b6ebbe1faddd3ddd8c338cce1e8eb613 /discord/role.py
parentFix typing of move role position payload parameter (diff)
downloaddiscord.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.py14
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|