@@ -775,21 +775,19 @@ def parse_message_delete_bulk(self, data) -> None:
775775 self ._messages .remove (msg ) # type: ignore
776776
777777 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 )
789788 else :
790789 if poll_data := data .get ("poll" ):
791790 self .store_raw_poll (poll_data , raw )
792- self .dispatch ("raw_message_edit" , raw )
793791
794792 if "components" in data and self ._view_store .is_message_tracked (raw .message_id ):
795793 self ._view_store .update_from_message (raw .message_id , data ["components" ])
0 commit comments