diff options
| author | Rapptz <[email protected]> | 2015-09-25 15:53:45 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2015-09-25 15:53:45 -0400 |
| commit | a9a030cdb23326e13a8e17a1eff25fcfe37efeee (patch) | |
| tree | 74767512b6e8ffd73977b089591e552d8cf5bce8 /discord/client.py | |
| parent | PRESENCE_UPDATE now updates the user as well. (diff) | |
| download | discord.py-a9a030cdb23326e13a8e17a1eff25fcfe37efeee.tar.xz discord.py-a9a030cdb23326e13a8e17a1eff25fcfe37efeee.zip | |
Move permission overwrite construction to the Channel constructor.
Diffstat (limited to 'discord/client.py')
| -rw-r--r-- | discord/client.py | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/discord/client.py b/discord/client.py index b914af8f..2df742f5 100644 --- a/discord/client.py +++ b/discord/client.py @@ -163,33 +163,6 @@ class Client(object): for member in server.members: member.server = server - for channel in guild['channels']: - changed_roles = [] - permission_overwrites = channel['permission_overwrites'] - - for overridden in permission_overwrites: - # this is pretty inefficient due to the deep nested loops unfortunately - role = utils.find(lambda r: r.id == overridden['id'], guild['roles']) - if role is None: - continue - denied = overridden.get('deny', 0) - allowed = overridden.get('allow', 0) - override = copy.deepcopy(role) - - # Basically this is what's happening here. - # We have an original bit array, e.g. 1010 - # Then we have another bit array that is 'denied', e.g. 1111 - # And then we have the last one which is 'allowed', e.g. 0101 - # We want original OP denied to end up resulting in whatever is in denied to be set to 0. - # So 1010 OP 1111 -> 0000 - # Then we take this value and look at the allowed values. And whatever is allowed is set to 1. - # So 0000 OP2 0101 -> 0101 - # The OP is (base ^ denied) & ~denied. - # The OP2 is base | allowed. - override.permissions.value = ((override.permissions.value ^ denied) & ~denied) | allowed - changed_roles.append(override) - - channel['permission_overwrites'] = changed_roles channels = [Channel(server=server, **channel) for channel in guild['channels']] server.channels = channels self.servers.append(server) |