mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-11 08:19:54 +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',
|
__slots__ = [ 'afk_timeout', 'afk_channel', '_members', '_channels', 'icon',
|
||||||
'name', 'id', 'owner', 'unavailable', 'name', 'me', 'region',
|
'name', 'id', 'owner', 'unavailable', 'name', 'me', 'region',
|
||||||
'_default_role', '_default_channel', 'roles' ]
|
'_default_role', '_default_channel', 'roles', '_member_count']
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self._channels = {}
|
self._channels = {}
|
||||||
@ -136,6 +136,8 @@ class Server(Hashable):
|
|||||||
return before, member
|
return before, member
|
||||||
|
|
||||||
def _from_data(self, guild):
|
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.name = guild.get('name')
|
||||||
self.region = guild.get('region')
|
self.region = guild.get('region')
|
||||||
try:
|
try:
|
||||||
@ -204,3 +206,8 @@ class Server(Hashable):
|
|||||||
if self.icon is None:
|
if self.icon is None:
|
||||||
return ''
|
return ''
|
||||||
return 'https://cdn.discordapp.com/icons/{0.id}/{0.icon}.jpg'.format(self)
|
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
|
data['roles'] = roles
|
||||||
member = Member(server=server, **data)
|
member = Member(server=server, **data)
|
||||||
server._add_member(member)
|
server._add_member(member)
|
||||||
|
server._member_count += 1
|
||||||
self.dispatch('member_join', member)
|
self.dispatch('member_join', member)
|
||||||
|
|
||||||
def parse_guild_member_remove(self, data):
|
def parse_guild_member_remove(self, data):
|
||||||
@ -213,6 +214,7 @@ class ConnectionState:
|
|||||||
member = server.get_member(user_id)
|
member = server.get_member(user_id)
|
||||||
if member is not None:
|
if member is not None:
|
||||||
server._remove_member(member)
|
server._remove_member(member)
|
||||||
|
server._member_count -= 1
|
||||||
self.dispatch('member_remove', member)
|
self.dispatch('member_remove', member)
|
||||||
|
|
||||||
def parse_guild_member_update(self, data):
|
def parse_guild_member_update(self, data):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user