mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-04 08:56:19 +00:00
Add ability to use primary guild (clan) data for users
Co-authored-by: blord0 <admin@blord.xyz> Co-authored-by: DA344 <108473820+DA-344@users.noreply.github.com> Co-authored-by: dolfies <jeyalfie47@gmail.com>
This commit is contained in:
@ -32,6 +32,7 @@ from .colour import Colour
|
||||
from .enums import DefaultAvatar
|
||||
from .flags import PublicUserFlags
|
||||
from .utils import snowflake_time, _bytes_to_base64_data, MISSING, _get_as_snowflake
|
||||
from .primary_guild import PrimaryGuild
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing_extensions import Self
|
||||
@ -43,7 +44,12 @@ if TYPE_CHECKING:
|
||||
from .message import Message
|
||||
from .state import ConnectionState
|
||||
from .types.channel import DMChannel as DMChannelPayload
|
||||
from .types.user import PartialUser as PartialUserPayload, User as UserPayload, AvatarDecorationData
|
||||
from .types.user import (
|
||||
PartialUser as PartialUserPayload,
|
||||
User as UserPayload,
|
||||
AvatarDecorationData,
|
||||
PrimaryGuild as PrimaryGuildPayload,
|
||||
)
|
||||
|
||||
|
||||
__all__ = (
|
||||
@ -71,6 +77,7 @@ class BaseUser(_UserTag):
|
||||
'_public_flags',
|
||||
'_state',
|
||||
'_avatar_decoration_data',
|
||||
'_primary_guild',
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@ -86,6 +93,7 @@ class BaseUser(_UserTag):
|
||||
_accent_colour: Optional[int]
|
||||
_public_flags: int
|
||||
_avatar_decoration_data: Optional[AvatarDecorationData]
|
||||
_primary_guild: Optional[PrimaryGuildPayload]
|
||||
|
||||
def __init__(self, *, state: ConnectionState, data: Union[UserPayload, PartialUserPayload]) -> None:
|
||||
self._state = state
|
||||
@ -123,6 +131,7 @@ class BaseUser(_UserTag):
|
||||
self.bot = data.get('bot', False)
|
||||
self.system = data.get('system', False)
|
||||
self._avatar_decoration_data = data.get('avatar_decoration_data')
|
||||
self._primary_guild = data.get('primary_guild', None)
|
||||
|
||||
@classmethod
|
||||
def _copy(cls, user: Self) -> Self:
|
||||
@ -139,6 +148,7 @@ class BaseUser(_UserTag):
|
||||
self._state = user._state
|
||||
self._public_flags = user._public_flags
|
||||
self._avatar_decoration_data = user._avatar_decoration_data
|
||||
self._primary_guild = user._primary_guild
|
||||
|
||||
return self
|
||||
|
||||
@ -305,6 +315,15 @@ class BaseUser(_UserTag):
|
||||
return self.global_name
|
||||
return self.name
|
||||
|
||||
@property
|
||||
def primary_guild(self) -> PrimaryGuild:
|
||||
""":class:`PrimaryGuild`: Returns the user's primary guild.
|
||||
|
||||
.. versionadded:: 2.6"""
|
||||
if self._primary_guild is not None:
|
||||
return PrimaryGuild(state=self._state, data=self._primary_guild)
|
||||
return PrimaryGuild._default(self._state)
|
||||
|
||||
def mentioned_in(self, message: Message) -> bool:
|
||||
"""Checks if the user is mentioned in the specified message.
|
||||
|
||||
|
Reference in New Issue
Block a user