diff options
| author | Rapptz <[email protected]> | 2016-04-29 06:39:21 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2016-04-29 06:39:21 -0400 |
| commit | 133e8d3a447d7bb012cb8a97b0aeef12d4ac9025 (patch) | |
| tree | 1e83026a6485b9cd941f84e163b40871f328f2e1 | |
| parent | Add permissions for changing or managing nicknames. (diff) | |
| download | discord.py-133e8d3a447d7bb012cb8a97b0aeef12d4ac9025.tar.xz discord.py-133e8d3a447d7bb012cb8a97b0aeef12d4ac9025.zip | |
Add support for server specific nicknames.
| -rw-r--r-- | discord/member.py | 5 | ||||
| -rw-r--r-- | discord/state.py | 7 | ||||
| -rw-r--r-- | discord/user.py | 11 |
3 files changed, 21 insertions, 2 deletions
diff --git a/discord/member.py b/discord/member.py index 86d818f3..ccfdc1a9 100644 --- a/discord/member.py +++ b/discord/member.py @@ -64,11 +64,13 @@ class Member(User): The game that the user is currently playing. Could be None if no game is being played. server : :class:`Server` 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', 'voice_channel', 'roles', 'joined_at', 'status', 'game', - 'server' ] + 'server', 'nick' ] def __init__(self, **kwargs): super().__init__(**kwargs.get('user')) @@ -80,6 +82,7 @@ class Member(User): game = kwargs.get('game', {}) self.game = Game(**game) if game else None self.server = kwargs.get('server', None) + self.nick = kwargs.get('nick', None) self._update_voice_state(mute=self.mute, deaf=self.deaf) def _update_voice_state(self, **kwargs): diff --git a/discord/state.py b/discord/state.py index fdffd444..850a74f9 100644 --- a/discord/state.py +++ b/discord/state.py @@ -317,9 +317,14 @@ class ConnectionState: member.discriminator = user['discriminator'] member.avatar = user['avatar'] 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 + member.roles = [server.default_role] for role in server.roles: if role.id in data['roles']: member.roles.append(role) diff --git a/discord/user.py b/discord/user.py index 822f7be1..b1cc0b4c 100644 --- a/discord/user.py +++ b/discord/user.py @@ -125,3 +125,14 @@ class User: This is when the user's discord account was created.""" 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 + |