mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 20:28:38 +00:00
Fix Message.channel being None for interactions
This commit is contained in:
parent
0efc05ccce
commit
2fdbe59376
@ -193,38 +193,10 @@ class Interaction(Generic[ClientT]):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
self.guild_locale = None
|
self.guild_locale = None
|
||||||
|
|
||||||
self.message: Optional[Message]
|
|
||||||
try:
|
|
||||||
# The channel and message payloads are mismatched yet handled properly at runtime
|
|
||||||
self.message = Message(state=self._state, channel=self.channel, data=data['message']) # type: ignore
|
|
||||||
except KeyError:
|
|
||||||
self.message = None
|
|
||||||
|
|
||||||
self.user: Union[User, Member] = MISSING
|
|
||||||
self._permissions: int = 0
|
|
||||||
self._app_permissions: int = int(data.get('app_permissions', 0))
|
|
||||||
|
|
||||||
guild = None
|
guild = None
|
||||||
if self.guild_id:
|
if self.guild_id:
|
||||||
guild = self._state._get_or_create_unavailable_guild(self.guild_id)
|
guild = self._state._get_or_create_unavailable_guild(self.guild_id)
|
||||||
|
|
||||||
# Upgrade Message.guild in case it's missing with partial guild data
|
|
||||||
if self.message is not None and self.message.guild is None:
|
|
||||||
self.message.guild = guild
|
|
||||||
|
|
||||||
try:
|
|
||||||
member = data['member'] # type: ignore # The key is optional and handled
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
self.user = Member(state=self._state, guild=guild, data=member)
|
|
||||||
self._permissions = self.user._permissions or 0
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
self.user = User(state=self._state, data=data['user']) # type: ignore # The key is optional and handled
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
raw_channel = data.get('channel', {})
|
raw_channel = data.get('channel', {})
|
||||||
channel_id = utils._get_as_snowflake(raw_channel, 'id')
|
channel_id = utils._get_as_snowflake(raw_channel, 'id')
|
||||||
if channel_id is not None and guild is not None:
|
if channel_id is not None and guild is not None:
|
||||||
@ -241,6 +213,35 @@ class Interaction(Generic[ClientT]):
|
|||||||
elif guild is not None:
|
elif guild is not None:
|
||||||
self.channel = factory(guild=guild, state=self._state, data=raw_channel) # type: ignore
|
self.channel = factory(guild=guild, state=self._state, data=raw_channel) # type: ignore
|
||||||
|
|
||||||
|
self.message: Optional[Message]
|
||||||
|
try:
|
||||||
|
# The channel and message payloads are mismatched yet handled properly at runtime
|
||||||
|
self.message = Message(state=self._state, channel=self.channel, data=data['message']) # type: ignore
|
||||||
|
except KeyError:
|
||||||
|
self.message = None
|
||||||
|
|
||||||
|
self.user: Union[User, Member] = MISSING
|
||||||
|
self._permissions: int = 0
|
||||||
|
self._app_permissions: int = int(data.get('app_permissions', 0))
|
||||||
|
|
||||||
|
if guild is not None:
|
||||||
|
# Upgrade Message.guild in case it's missing with partial guild data
|
||||||
|
if self.message is not None and self.message.guild is None:
|
||||||
|
self.message.guild = guild
|
||||||
|
|
||||||
|
try:
|
||||||
|
member = data['member'] # type: ignore # The key is optional and handled
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
self.user = Member(state=self._state, guild=guild, data=member)
|
||||||
|
self._permissions = self.user._permissions or 0
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
self.user = User(state=self._state, data=data['user']) # type: ignore # The key is optional and handled
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def client(self) -> ClientT:
|
def client(self) -> ClientT:
|
||||||
""":class:`Client`: The client that is handling this interaction.
|
""":class:`Client`: The client that is handling this interaction.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user