Skip to content

Commit 048ec66

Browse files
authored
Implement author/message OBJs from respective menus
1 parent b099bcd commit 048ec66

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

discord_slash/context.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from __future__ import annotations
21

32
import datetime
43
import typing
@@ -49,7 +48,10 @@ def __init__(
4948
logger,
5049
):
5150
self._token = _json["token"]
52-
self.message = None # Should be set later.
51+
self._type = _json["type"] # Factor to check if its a slash command vs menus
52+
self.message = None
53+
self._message_menu_id = None if self._type != 2 else _json["data"]["resolved"]["messages"] # Should be set later.
54+
self._author_menus_id = None if self._type != 1 else _json["data"]["resolved"]["members"]
5355
self.interaction_id = _json["id"]
5456
self._http = _http
5557
self.bot = _discord
@@ -60,10 +62,18 @@ def __init__(
6062
self.values = _json["data"]["values"] if "values" in _json["data"] else None
6163
self._deferred_hidden = False # To check if the patch to the deferred response matches
6264
self.guild_id = int(_json["guild_id"]) if "guild_id" in _json.keys() else None
65+
if self.guild and self._author_menus_id:
66+
self.author_menus = discord.Member(data=_json["data"]["resolved"]["members"], state=self.bot._connection, guild=self.guild)
67+
elif self.guild_id:
68+
self.author_menus = discord.User(data=_json["data"]["resolved"]["user"], state=self.bot._connection)
69+
else:
70+
self.author_menus = None
6371
self.author_id = int(
6472
_json["member"]["user"]["id"] if "member" in _json.keys() else _json["user"]["id"]
6573
)
6674
self.channel_id = int(_json["channel_id"])
75+
self.message_menus = _discord.get_channel(self.channel_id).fetch_message(self._message_menu_id)
76+
self.message_menus = model.SlashMessage(state=self.bot._connection, channel=_discord.get_channel(self.channel_id), data=_json["data"]["resolved"]["messages"][self._message_menu_id], _http=_http, interaction_token=self._token)
6777
if self.guild:
6878
self.author = discord.Member(
6979
data=_json["member"], state=self.bot._connection, guild=self.guild
@@ -74,6 +84,8 @@ def __init__(
7484
self.author = discord.User(data=_json["user"], state=self.bot._connection)
7585
self.created_at: datetime.datetime = snowflake_time(int(self.interaction_id))
7686

87+
88+
7789
@property
7890
def _deffered_hidden(self):
7991
warn(
@@ -369,7 +381,7 @@ def __init__(
369381
super().__init__(_http=_http, _json=_json, _discord=_discord, logger=logger)
370382

371383
@property
372-
def slash(self) -> client.SlashCommand:
384+
def slash(self) -> "client.SlashCommand":
373385
"""
374386
Returns the associated SlashCommand object created during Runtime.
375387

0 commit comments

Comments
 (0)