mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-10 15:59:50 +00:00
Add Server.member_count property for actual member count.
This will always work regardless of chunking or not.
This commit is contained in:
parent
baf1312d0e
commit
7b135725bc
@ -86,7 +86,7 @@ class Server(Hashable):
|
||||
|
||||
__slots__ = [ 'afk_timeout', 'afk_channel', '_members', '_channels', 'icon',
|
||||
'name', 'id', 'owner', 'unavailable', 'name', 'me', 'region',
|
||||
'_default_role', '_default_channel', 'roles' ]
|
||||
'_default_role', '_default_channel', 'roles', '_member_count']
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self._channels = {}
|
||||
@ -136,6 +136,8 @@ class Server(Hashable):
|
||||
return before, member
|
||||
|
||||
def _from_data(self, guild):
|
||||
# according to Stan, this is always available even if the guild is unavailable
|
||||
self._member_count = guild['member_count']
|
||||
self.name = guild.get('name')
|
||||
self.region = guild.get('region')
|
||||
try:
|
||||
@ -204,3 +206,8 @@ class Server(Hashable):
|
||||
if self.icon is None:
|
||||
return ''
|
||||
return 'https://cdn.discordapp.com/icons/{0.id}/{0.icon}.jpg'.format(self)
|
||||
|
||||
@property
|
||||
def member_count(self):
|
||||
"""Returns the true member count regardless of it being loaded fully or not."""
|
||||
return self._member_count
|
||||
|
@ -204,6 +204,7 @@ class ConnectionState:
|
||||
data['roles'] = roles
|
||||
member = Member(server=server, **data)
|
||||
server._add_member(member)
|
||||
server._member_count += 1
|
||||
self.dispatch('member_join', member)
|
||||
|
||||
def parse_guild_member_remove(self, data):
|
||||
@ -213,6 +214,7 @@ class ConnectionState:
|
||||
member = server.get_member(user_id)
|
||||
if member is not None:
|
||||
server._remove_member(member)
|
||||
server._member_count -= 1
|
||||
self.dispatch('member_remove', member)
|
||||
|
||||
def parse_guild_member_update(self, data):
|
||||
|
Loading…
x
Reference in New Issue
Block a user