Correctly mapping overwrites when creating a channel and renamed all relevant property names as of #1562 (#1570)

* using correct properties to apply permissionOverwrites

and fixed `GuildChannel#clone`

* also arrays should be mapped and correct properties taking priority

* changed .deny and .allow to .denied and .allowed respectively

* whoops
This commit is contained in:
SpaceEEC
2017-06-16 12:49:13 +02:00
committed by Crawl
parent 35e8601b3a
commit 00eebd34cb
2 changed files with 18 additions and 11 deletions

View File

@@ -76,20 +76,20 @@ class GuildChannel extends Channel {
const overwrites = this.overwritesFor(member, true, roles);
if (overwrites.everyone) {
permissions &= ~overwrites.everyone.deny;
permissions |= overwrites.everyone.allow;
permissions &= ~overwrites.everyone._denied;
permissions |= overwrites.everyone._allowed;
}
let allow = 0;
for (const overwrite of overwrites.roles) {
permissions &= ~overwrite.deny;
allow |= overwrite.allow;
permissions &= ~overwrite._denied;
allow |= overwrite._allowed;
}
permissions |= allow;
if (overwrites.member) {
permissions &= ~overwrites.member.deny;
permissions |= overwrites.member.allow;
permissions &= ~overwrites.member._denied;
permissions |= overwrites.member._allowed;
}
const admin = Boolean(permissions & Permissions.FLAGS.ADMINISTRATOR);
@@ -171,8 +171,8 @@ class GuildChannel extends Channel {
const prevOverwrite = this.permissionOverwrites.get(userOrRole.id);
if (prevOverwrite) {
payload.allow = prevOverwrite.allow;
payload.deny = prevOverwrite.deny;
payload.allow = prevOverwrite._allowed;
payload.deny = prevOverwrite._denied;
}
for (const perm in options) {
@@ -290,7 +290,7 @@ class GuildChannel extends Channel {
return this.client.api.channels(this.id).invites.post({ data: {
temporary, max_age: maxAge, max_uses: maxUses,
}, reason })
.then(invite => new Invite(this.client, invite));
.then(invite => new Invite(this.client, invite));
}
/**
@@ -301,7 +301,7 @@ class GuildChannel extends Channel {
* @returns {Promise<GuildChannel>}
*/
clone(name = this.name, withPermissions = true, withTopic = true) {
return this.guild.createChannel(name, this.type, withPermissions ? this.permissionOverwrites : [])
return this.guild.createChannel(name, this.type, { overwrites: withPermissions ? this.permissionOverwrites : [] })
.then(channel => withTopic ? channel.setTopic(this.topic) : channel);
}