Add support for server specific nicknames.
This commit is contained in:
parent
cc78cfedb6
commit
133e8d3a44
@ -64,11 +64,13 @@ class Member(User):
|
|||||||
The game that the user is currently playing. Could be None if no game is being played.
|
The game that the user is currently playing. Could be None if no game is being played.
|
||||||
server : :class:`Server`
|
server : :class:`Server`
|
||||||
The server that the member belongs to.
|
The server that the member belongs to.
|
||||||
|
nick : Optional[str]
|
||||||
|
The server specific nickname of the user.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = [ 'deaf', 'mute', 'self_mute', 'self_deaf', 'is_afk',
|
__slots__ = [ 'deaf', 'mute', 'self_mute', 'self_deaf', 'is_afk',
|
||||||
'voice_channel', 'roles', 'joined_at', 'status', 'game',
|
'voice_channel', 'roles', 'joined_at', 'status', 'game',
|
||||||
'server' ]
|
'server', 'nick' ]
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs.get('user'))
|
super().__init__(**kwargs.get('user'))
|
||||||
@ -80,6 +82,7 @@ class Member(User):
|
|||||||
game = kwargs.get('game', {})
|
game = kwargs.get('game', {})
|
||||||
self.game = Game(**game) if game else None
|
self.game = Game(**game) if game else None
|
||||||
self.server = kwargs.get('server', None)
|
self.server = kwargs.get('server', None)
|
||||||
|
self.nick = kwargs.get('nick', None)
|
||||||
self._update_voice_state(mute=self.mute, deaf=self.deaf)
|
self._update_voice_state(mute=self.mute, deaf=self.deaf)
|
||||||
|
|
||||||
def _update_voice_state(self, **kwargs):
|
def _update_voice_state(self, **kwargs):
|
||||||
|
@ -317,9 +317,14 @@ class ConnectionState:
|
|||||||
member.discriminator = user['discriminator']
|
member.discriminator = user['discriminator']
|
||||||
member.avatar = user['avatar']
|
member.avatar = user['avatar']
|
||||||
member.bot = user.get('bot', False)
|
member.bot = user.get('bot', False)
|
||||||
member.roles = [server.default_role]
|
|
||||||
|
# the nickname change is optional,
|
||||||
|
# if it isn't in the payload then it didn't change
|
||||||
|
if 'nick' in data:
|
||||||
|
member.nick = data['nick']
|
||||||
|
|
||||||
# update the roles
|
# update the roles
|
||||||
|
member.roles = [server.default_role]
|
||||||
for role in server.roles:
|
for role in server.roles:
|
||||||
if role.id in data['roles']:
|
if role.id in data['roles']:
|
||||||
member.roles.append(role)
|
member.roles.append(role)
|
||||||
|
@ -125,3 +125,14 @@ class User:
|
|||||||
This is when the user's discord account was created."""
|
This is when the user's discord account was created."""
|
||||||
return snowflake_time(self.id)
|
return snowflake_time(self.id)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def display_name(self):
|
||||||
|
"""Returns the user's display name.
|
||||||
|
|
||||||
|
For regular users this is just their username, but
|
||||||
|
if they have a server specific nickname then that
|
||||||
|
is returned instead.
|
||||||
|
"""
|
||||||
|
nickname = getattr(self, 'nick', None)
|
||||||
|
return nickname if nickname is not None else self.name
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user