diff --git a/interactions/api/events/discord.py b/interactions/api/events/discord.py index 688c00f48..bc0a7ac06 100644 --- a/interactions/api/events/discord.py +++ b/interactions/api/events/discord.py @@ -249,7 +249,7 @@ class ThreadMemberUpdate(ThreadCreate): @attrs.define(eq=False, order=False, hash=False, kw_only=False) -class ThreadMembersUpdate(BaseEvent): +class ThreadMembersUpdate(GuildEvent): """Dispatched when anyone is added or removed from a thread.""" id: "Snowflake_Type" = attrs.field( @@ -263,6 +263,11 @@ class ThreadMembersUpdate(BaseEvent): removed_member_ids: List["Snowflake_Type"] = attrs.field(repr=False, factory=list) """Users removed from the thread""" + @property + def channel(self) -> Optional["TYPE_THREAD_CHANNEL"]: + """The thread channel this event is dispatched from""" + return self.client.get_channel(self.id) + @attrs.define(eq=False, order=False, hash=False, kw_only=False) class GuildJoin(GuildEvent): diff --git a/interactions/api/events/processors/thread_events.py b/interactions/api/events/processors/thread_events.py index 2cf39a4e0..af794f0cb 100644 --- a/interactions/api/events/processors/thread_events.py +++ b/interactions/api/events/processors/thread_events.py @@ -43,6 +43,7 @@ async def _on_raw_thread_members_update(self, event: "RawGatewayEvent") -> None: g_id = event.data.get("guild_id") self.dispatch( events.ThreadMembersUpdate( + g_id, event.data.get("id"), event.data.get("member_count"), [await self.cache.fetch_member(g_id, m["user_id"]) for m in event.data.get("added_members", [])],