Browse Source

Member.roles array now has the default role as the first element.

pull/42/merge
Rapptz 10 years ago
parent
commit
df3cb831a9
  1. 4
      discord/channel.py
  2. 3
      discord/member.py
  3. 3
      discord/server.py

4
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

3
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

3
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:

Loading…
Cancel
Save