Remove in-place edits and return fresh instances instead

Fixes #4098
This commit is contained in:
Rapptz
2021-08-23 23:46:50 -04:00
parent 9d4fa0341e
commit 490bbffc93
15 changed files with 251 additions and 82 deletions

View File

@ -1157,7 +1157,7 @@ class Message(Hashable):
delete_after: Optional[float] = ...,
allowed_mentions: Optional[AllowedMentions] = ...,
view: Optional[View] = ...,
) -> None:
) -> Message:
...
@overload
@ -1171,7 +1171,7 @@ class Message(Hashable):
delete_after: Optional[float] = ...,
allowed_mentions: Optional[AllowedMentions] = ...,
view: Optional[View] = ...,
) -> None:
) -> Message:
...
async def edit(
@ -1184,7 +1184,7 @@ class Message(Hashable):
delete_after: Optional[float] = None,
allowed_mentions: Optional[AllowedMentions] = MISSING,
view: Optional[View] = MISSING,
) -> None:
) -> Message:
"""|coro|
Edits the message.
@ -1286,9 +1286,8 @@ class Message(Hashable):
else:
payload['components'] = []
if payload:
data = await self._state.http.edit_message(self.channel.id, self.id, **payload)
self._update(data)
data = await self._state.http.edit_message(self.channel.id, self.id, **payload)
message = Message(state=self._state, channel=self.channel, data=data)
if view and not view.is_finished():
self._state.store_view(view, self.id)
@ -1296,6 +1295,8 @@ class Message(Hashable):
if delete_after is not None:
await self.delete(delay=delete_after)
return message
async def publish(self) -> None:
"""|coro|