@@ -781,21 +781,19 @@ def parse_message_delete_bulk(self, data) -> None:
781
781
self ._messages .remove (msg ) # type: ignore
782
782
783
783
def parse_message_update (self , data ) -> None :
784
- raw = RawMessageUpdateEvent (data )
785
- message = self ._get_message (raw .message_id )
786
- if message is not None :
787
- older_message = copy .copy (message )
788
- raw .cached_message = older_message
789
- self .dispatch ("raw_message_edit" , raw )
790
- message ._update (data )
791
- # Coerce the `after` parameter to take the new updated Member
792
- # ref: #5999
793
- older_message .author = message .author
794
- self .dispatch ("message_edit" , older_message , message )
784
+ old_message = self ._get_message (raw .message_id )
785
+ if old_message is not None :
786
+ self ._messages .remove (old_message )
787
+ channel , _ = self ._get_guild_channel (data )
788
+ message = Message (channel = channel , data = data , state = self )
789
+ self ._messages .append (message )
790
+ raw = RawMessageUpdateEvent (data , message )
791
+ self .dispatch ("raw_message_edit" , raw )
792
+ if old_message is not None :
793
+ self .dispatch ("message_edit" , old_message , message )
795
794
else :
796
795
if poll_data := data .get ("poll" ):
797
796
self .store_raw_poll (poll_data , raw )
798
- self .dispatch ("raw_message_edit" , raw )
799
797
800
798
if "components" in data and self ._view_store .is_message_tracked (raw .message_id ):
801
799
self ._view_store .update_from_message (raw .message_id , data ["components" ])
0 commit comments