Add support for server specific nicknames.
This commit is contained in:
		| @@ -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): | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user