Skip to content

Commit

Permalink
Apply changes
Browse files Browse the repository at this point in the history
Co-authored-by: BobDotCom <71356958+BobDotCom@users.noreply.github.com>
  • Loading branch information
Dorukyum and BobDotCom committed Nov 18, 2022
1 parent 587250d commit bbcd7ca
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 23 deletions.
2 changes: 1 addition & 1 deletion discord/commands/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def user(self) -> Union[Member, User]:
"""Union[:class:`.Member`, :class:`.User`]: Returns the user that sent this context's command.
Shorthand for :attr:`.Interaction.user`.
"""
return self.interaction.user
return self.interaction.user # type: ignore # command user will never be None

author = user

Expand Down
43 changes: 21 additions & 22 deletions discord/interactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ class Interaction:
The channel ID the interaction was sent from.
application_id: :class:`int`
The application ID that the interaction was for.
user: Union[:class:`User`, :class:`Member`]
The user or member that sent the interaction. Will not be present in PING interactions.
user: Optional[Union[:class:`User`, :class:`Member`]]
The user or member that sent the interaction. Will be `None` in PING interactions.
message: Optional[:class:`Message`]
The message that sent this interaction.
token: :class:`str`
Expand Down Expand Up @@ -173,29 +173,28 @@ def _from_data(self, data: InteractionPayload):

self._message_data = message_data

self.user: Optional[Union[User, Member]] = None
self._permissions: int = 0

if self.type is not InteractionType.ping:
self.user: Union[User, Member]
# TODO: there's a potential data loss here
if self.guild_id:
guild = self.guild or self._state._get_guild(self.guild_id) or Object(id=self.guild_id)
try:
member = data["member"]
except KeyError:
pass
else:
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)
# TODO: there's a potential data loss here
if 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:
try:
self.user = User(state=self._state, data=data["user"])
except KeyError:
pass
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"])
except KeyError:
pass

@property
def client(self) -> Client:
Expand Down

0 comments on commit bbcd7ca

Please sign in to comment.