aboutsummaryrefslogtreecommitdiff
path: root/discord/server.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-12-05 16:57:29 -0500
committerRapptz <[email protected]>2015-12-06 03:09:55 -0500
commit80b32e769e9ced10c0be3813208203098b6e491c (patch)
tree164b1ae4754d48ad72a35f58e29a3f567f59bfef /discord/server.py
parentDocumentation fixes in Client.connect. (diff)
downloaddiscord.py-80b32e769e9ced10c0be3813208203098b6e491c.tar.xz
discord.py-80b32e769e9ced10c0be3813208203098b6e491c.zip
Handle GUILD_UPDATE
Diffstat (limited to 'discord/server.py')
-rw-r--r--discord/server.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/discord/server.py b/discord/server.py
index 8309f052..9e0a796f 100644
--- a/discord/server.py
+++ b/discord/server.py
@@ -65,6 +65,9 @@ class Server:
"""
def __init__(self, **kwargs):
+ self.channels = []
+ self.owner = None
+ self.members = []
self._from_data(kwargs)
def _update_voice_state(self, data):
@@ -91,10 +94,9 @@ class Server:
self.roles = [Role(everyone=(self.id == r['id']), **r) for r in guild['roles']]
default_role = self.get_default_role()
- self.members = []
- self.owner = guild['owner_id']
+ owner_id = guild['owner_id']
- for data in guild['members']:
+ for data in guild.get('members', []):
roles = [default_role]
for role_id in data['roles']:
role = utils.find(lambda r: r.id == role_id, self.roles)
@@ -105,7 +107,7 @@ class Server:
member = Member(**data)
member.server = self
- if member.id == self.owner:
+ if member.id == owner_id:
self.owner = member
self.members.append(member)
@@ -121,7 +123,10 @@ class Server:
pass
member.game_id = presence['game_id']
- self.channels = [Channel(server=self, **c) for c in guild['channels']]
+ if 'channels' in guild:
+ channels = guild['channels']
+ self.channels = [Channel(server=self, **c) for c in channels]
+
afk_id = guild.get('afk_channel_id')
self.afk_channel = utils.find(lambda c: c.id == afk_id, self.channels)