aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/server.py5
-rw-r--r--discord/state.py4
2 files changed, 7 insertions, 2 deletions
diff --git a/discord/server.py b/discord/server.py
index f95da70b..07ccbbdb 100644
--- a/discord/server.py
+++ b/discord/server.py
@@ -87,7 +87,7 @@ class Server(Hashable):
__slots__ = ['afk_timeout', 'afk_channel', '_members', '_channels', 'icon',
'name', 'id', 'owner', 'unavailable', 'name', 'me', 'region',
'_default_role', '_default_channel', 'roles', '_member_count',
- 'large' ]
+ 'large', 'owner_id' ]
def __init__(self, **kwargs):
self._channels = {}
@@ -166,7 +166,8 @@ class Server(Hashable):
self._add_member(member)
if 'owner_id' in guild:
- self.owner = self.get_member(guild['owner_id'])
+ self.owner_id = guild['owner_id']
+ self.owner = self.get_member(self.owner_id)
for presence in guild.get('presences', []):
user_id = presence['user']['id']
diff --git a/discord/state.py b/discord/state.py
index 6c41f9a7..bcb90e72 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -384,6 +384,10 @@ class ConnectionState:
for member in members:
self._add_member(server, member)
+ # if the owner is offline, server.owner is potentially None
+ # therefore we should check if this chunk makes it point to a valid
+ # member.
+ server.owner = server.get_member(server.owner_id)
log.info('processed a chunk for {} members.'.format(len(members)))
self.process_listeners(ListenerType.chunk, server, len(members))