mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-10-20 23:42:58 +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:
@@ -74,6 +74,7 @@ if TYPE_CHECKING:
|
||||
GuildVoiceState as GuildVoiceStatePayload,
|
||||
VoiceState as VoiceStatePayload,
|
||||
)
|
||||
from .primary_guild import PrimaryGuild
|
||||
|
||||
VocalGuildChannel = Union[VoiceChannel, StageChannel]
|
||||
|
||||
@@ -309,6 +310,7 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
accent_colour: Optional[Colour]
|
||||
avatar_decoration: Optional[Asset]
|
||||
avatar_decoration_sku_id: Optional[int]
|
||||
primary_guild: PrimaryGuild
|
||||
|
||||
def __init__(self, *, data: MemberWithUserPayload, guild: Guild, state: ConnectionState):
|
||||
self._state: ConnectionState = state
|
||||
@@ -452,9 +454,11 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
u.global_name,
|
||||
u._public_flags,
|
||||
u._avatar_decoration_data['sku_id'] if u._avatar_decoration_data is not None else None,
|
||||
u._primary_guild,
|
||||
)
|
||||
|
||||
decoration_payload = user.get('avatar_decoration_data')
|
||||
primary_guild_payload = user.get('primary_guild', None)
|
||||
# These keys seem to always be available
|
||||
modified = (
|
||||
user['username'],
|
||||
@@ -463,16 +467,26 @@ class Member(discord.abc.Messageable, _UserTag):
|
||||
user.get('global_name'),
|
||||
user.get('public_flags', 0),
|
||||
decoration_payload['sku_id'] if decoration_payload is not None else None,
|
||||
primary_guild_payload,
|
||||
)
|
||||
if original != modified:
|
||||
to_return = User._copy(self._user)
|
||||
u.name, u.discriminator, u._avatar, u.global_name, u._public_flags, u._avatar_decoration_data = (
|
||||
(
|
||||
u.name,
|
||||
u.discriminator,
|
||||
u._avatar,
|
||||
u.global_name,
|
||||
u._public_flags,
|
||||
u._avatar_decoration_data,
|
||||
u._primary_guild,
|
||||
) = (
|
||||
user['username'],
|
||||
user['discriminator'],
|
||||
user['avatar'],
|
||||
user.get('global_name'),
|
||||
user.get('public_flags', 0),
|
||||
decoration_payload,
|
||||
primary_guild_payload,
|
||||
)
|
||||
# Signal to dispatch on_user_update
|
||||
return to_return, u
|
||||
|
Reference in New Issue
Block a user