@@ -781,21 +781,19 @@ def parse_message_delete_bulk(self, data) -> None:
781781 self ._messages .remove (msg ) # type: ignore
782782
783783 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 )
795794 else :
796795 if poll_data := data .get ("poll" ):
797796 self .store_raw_poll (poll_data , raw )
798- self .dispatch ("raw_message_edit" , raw )
799797
800798 if "components" in data and self ._view_store .is_message_tracked (raw .message_id ):
801799 self ._view_store .update_from_message (raw .message_id , data ["components" ])
0 commit comments