Skip to content

Commit 557f8df

Browse files
Damegopre-commit-ci[bot]mAxYoLo01
authored
feat: Add presence property to User (#1005)
* feat: Add ``presence`` property to ``User`` * ci: correct from checks. * make optional * ref: remove `"` in docstring Co-authored-by: Max <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Max <[email protected]>
1 parent fdcb6e0 commit 557f8df

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

interactions/api/gateway/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,8 @@ def _dispatch_event(self, event: str, data: dict) -> None:
407407
if id is None:
408408
if model.__name__ == "GuildScheduledEventUser":
409409
id = model.guild_scheduled_event_id
410+
elif model.__name__ == "Presence":
411+
id = obj.user.id
410412
elif model.__name__ in [
411413
"Invite",
412414
"GuildBan",

interactions/api/models/user.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
from typing import Optional, Union
1+
from typing import TYPE_CHECKING, Optional, Union
22

33
from .attrs_utils import ClientSerializerMixin, define, field
44
from .flags import UserFlags
55
from .misc import IDMixin, Snowflake
66

7+
if TYPE_CHECKING:
8+
from .gw import Presence
9+
710
__all__ = ("User",)
811

912

@@ -96,3 +99,15 @@ def banner_url(self) -> Optional[str]:
9699
url = f"https://cdn.discordapp.com/banners/{int(self.id)}/{self.banner}"
97100
url += ".gif" if self.banner.startswith("a_") else ".png"
98101
return url
102+
103+
@property
104+
def presence(self) -> Optional["Presence"]:
105+
"""
106+
Returns the presence of the user.
107+
108+
:return: Presence of the user (None will be returned if not cached)
109+
:rtype: Optional[Presence]
110+
"""
111+
from .gw import Presence
112+
113+
return self._client.cache[Presence].get(self.id)

0 commit comments

Comments
 (0)