aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-11-28 19:26:25 -0500
committerRapptz <[email protected]>2015-11-28 19:26:25 -0500
commitdf3cb831a9499f350abe98c13f4d2680221fa640 (patch)
treebf2ddc9eb9e00da83b2f369b332fe2873180f011
parentMove server parsing code from Client to Server. (diff)
downloaddiscord.py-df3cb831a9499f350abe98c13f4d2680221fa640.tar.xz
discord.py-df3cb831a9499f350abe98c13f4d2680221fa640.zip
Member.roles array now has the default role as the first element.
-rw-r--r--discord/channel.py4
-rw-r--r--discord/member.py3
-rw-r--r--discord/server.py3
3 files changed, 6 insertions, 4 deletions
diff --git a/discord/channel.py b/discord/channel.py
index 52f05bee..fa546890 100644
--- a/discord/channel.py
+++ b/discord/channel.py
@@ -139,7 +139,7 @@ class Channel(object):
if member.id == self.server.owner.id:
return Permissions.all()
- default = self.server.get_default_role()
+ default = member.roles[0]
base = deepcopy(default.permissions)
# Apply server roles that the member has.
@@ -155,7 +155,7 @@ class Channel(object):
# Apply channel specific role permission overwrites
for overwrite in self._permission_overwrites:
if overwrite.type == 'role':
- if overwrite.id in member_role_ids or overwrite.id == self.server.id:
+ if overwrite.id in member_role_ids:
base.handle_overwrite(allow=overwrite.allow, deny=overwrite.deny)
# Apply member specific permission overwrites
diff --git a/discord/member.py b/discord/member.py
index b8597e8e..2fadc664 100644
--- a/discord/member.py
+++ b/discord/member.py
@@ -56,7 +56,8 @@ class Member(User):
is not currently in a voice channel.
.. attribute:: roles
- An array of :class:`Role` that the member belongs to.
+ A list of :class:`Role` that the member belongs to. Note that the first element of this
+ list is always the default '@everyone' role.
.. attribute:: joined_at
A datetime object that specifies the date and time in UTC that the member joined the server for
diff --git a/discord/server.py b/discord/server.py
index 6082fdf0..f9febb2a 100644
--- a/discord/server.py
+++ b/discord/server.py
@@ -94,12 +94,13 @@ class Server(object):
self.unavailable = guild.get('unavailable', False)
self.id = guild['id']
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']
for data in guild['members']:
- roles = []
+ roles = [default_role]
for role_id in data['roles']:
role = utils.find(lambda r: r.id == role_id, self.roles)
if role is not None: