Browse Source

Add default state for a PrimaryGuild

pull/10211/head
blord0 1 month ago
parent
commit
23e054f892
  1. 11
      discord/primary_guild.py
  2. 8
      discord/user.py

11
discord/primary_guild.py

@ -33,6 +33,7 @@ from .utils import snowflake_time, _get_as_snowflake
if TYPE_CHECKING:
from .state import ConnectionState
from .types.primary_guild import PrimaryGuild as PrimaryGuildPayload
from typing_extensions import Self
class PrimaryGuild:
@ -43,7 +44,9 @@ class PrimaryGuild:
id: Optional[:class:`int`]
The ID of the user's primary guild, if any.
tag: Optional[:class:`str`]
The guild's tag.
The primary guild's tag.
badge: Optional[:class:`Asset`]
The primary guild's asset
identity_enabled: Optional[:class:`bool`]
Whether the user has their primary guild publicly displayed. If ``None``, the user has a public guild but has not reaffirmed the guild identity after a change
@ -85,5 +88,11 @@ class PrimaryGuild:
return snowflake_time(self.id)
return None
@classmethod
def _default(cls, state: ConnectionState) -> Self:
"""Creates a blank :class:`PrimaryGuild`"""
payload: PrimaryGuildPayload = {"identity_guild_id": None, "identity_enabled": False, "tag": None, "badge": None}
return cls(state=state, data=payload)
def __repr__(self) -> str:
return f'<PrimaryGuild id={self.id} identity_enabled={self.identity_enabled} tag={self.tag}' f' badge={self.badge}>'

8
discord/user.py

@ -312,11 +312,11 @@ class BaseUser(_UserTag):
return self.name
@property
def primary_guild(self) -> Optional[PrimaryGuild]:
""":class:`PrimaryGuild`: Returns the user's primary guild, if applicable."""
if self._primary_guild and self._primary_guild.get("identity_enabled"):
def primary_guild(self) -> PrimaryGuild:
""":class:`PrimaryGuild`: Returns the user's primary guild."""
if self._primary_guild:
return PrimaryGuild(state=self._state, data=self._primary_guild)
return None
return PrimaryGuild._default(self._state)
def mentioned_in(self, message: Message) -> bool:
"""Checks if the user is mentioned in the specified message.

Loading…
Cancel
Save