@@ -402,7 +402,11 @@ def _dispatch_event(self, event: str, data: dict) -> None:
402402
403403 if "_create" in name or "_add" in name :
404404 _cache .merge (obj , id )
405- if guild_id := data .get ("guild_id" ) and not isinstance (obj , Guild ):
405+ if (
406+ guild_id := data .get ("guild_id" )
407+ and not isinstance (obj , Guild )
408+ and "message" not in name
409+ ):
406410 guild = self ._http .cache [Guild ].get (Snowflake (guild_id ))
407411 model_name = model .__name__ .lower ()
408412 _obj = getattr (guild , f"{ model_name } s" , None )
@@ -420,6 +424,10 @@ def _dispatch_event(self, event: str, data: dict) -> None:
420424 old_obj = self ._http .cache [model ].get (id )
421425
422426 if old_obj :
427+ for key , value in old_obj ._json .items ():
428+ if hasattr (value , "_json" ):
429+ old_obj ._json [key ] = value ._json
430+
423431 before = model (** old_obj ._json )
424432 old_obj .update (** obj ._json )
425433 else :
@@ -428,7 +436,11 @@ def _dispatch_event(self, event: str, data: dict) -> None:
428436
429437 _cache .add (old_obj , id )
430438
431- if guild_id := data .get ("guild_id" ) and not isinstance (obj , Guild ):
439+ if (
440+ guild_id := data .get ("guild_id" )
441+ and not isinstance (obj , Guild )
442+ and "message" not in name
443+ ):
432444 guild = self ._http .cache [Guild ].get (Snowflake (guild_id ))
433445 model_name = model .__name__ .lower ()
434446 _obj = getattr (guild , f"{ model_name } s" , None )
@@ -453,7 +465,11 @@ def _dispatch_event(self, event: str, data: dict) -> None:
453465 elif "_remove" in name or "_delete" in name :
454466 self ._dispatch .dispatch (f"on_raw_{ name } " , obj )
455467
456- if guild_id := data .get ("guild_id" ) and not isinstance (obj , Guild ):
468+ if (
469+ guild_id := data .get ("guild_id" )
470+ and not isinstance (obj , Guild )
471+ and "message" not in name
472+ ):
457473 guild = self ._http .cache [Guild ].get (Snowflake (guild_id ))
458474 model_name = model .__name__ .lower ()
459475 _obj = getattr (guild , f"{ model_name } s" , None )
0 commit comments