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