diff --git a/discord/interactions.py b/discord/interactions.py index 7a45f08f8e..41a65a7a4f 100644 --- a/discord/interactions.py +++ b/discord/interactions.py @@ -178,15 +178,18 @@ def _from_data(self, data: InteractionPayload): # TODO: there's a potential data loss here if self.guild_id: - guild = self.guild or Object(id=self.guild_id) + guild = self.guild or self._state._get_guild(self.guild_id) or Object(id=self.guild_id) try: member = data["member"] # type: ignore except KeyError: pass else: - cache_flag = self._state.member_cache_flags.interaction - self.user = guild._get_and_update_member(member, int(member["user"]["id"]), cache_flag) self._permissions = int(member.get("permissions", 0)) + if not isinstance(guild, Object): + cache_flag = self._state.member_cache_flags.interaction + self.user = guild._get_and_update_member(member, int(member["user"]["id"]), cache_flag) + else: + self.user = Member(state=self._state, data=member, guild=guild) else: try: self.user = User(state=self._state, data=data["user"])