mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 16:43:31 +01:00
Overhaul Permissions utilities (EvaluatedPermissions no more)
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
const Channel = require('./Channel');
|
||||
const Role = require('./Role');
|
||||
const PermissionOverwrites = require('./PermissionOverwrites');
|
||||
const EvaluatedPermissions = require('./EvaluatedPermissions');
|
||||
const Constants = require('../util/Constants');
|
||||
const Permissions = require('../util/Permissions');
|
||||
const Collection = require('../util/Collection');
|
||||
|
||||
/**
|
||||
@@ -51,12 +50,12 @@ class GuildChannel extends Channel {
|
||||
* Gets the overall set of permissions for a user in this channel, taking into account roles and permission
|
||||
* overwrites.
|
||||
* @param {GuildMemberResolvable} member The user that you want to obtain the overall permissions for
|
||||
* @returns {?EvaluatedPermissions}
|
||||
* @returns {?Permissions}
|
||||
*/
|
||||
permissionsFor(member) {
|
||||
member = this.client.resolver.resolveGuildMember(this.guild, member);
|
||||
if (!member) return null;
|
||||
if (member.id === this.guild.ownerID) return new EvaluatedPermissions(member, Constants.ALL_PERMISSIONS);
|
||||
if (member.id === this.guild.ownerID) return new Permissions(member, Permissions.ALL);
|
||||
|
||||
let permissions = 0;
|
||||
|
||||
@@ -71,10 +70,10 @@ class GuildChannel extends Channel {
|
||||
}
|
||||
permissions |= allow;
|
||||
|
||||
const admin = Boolean(permissions & Constants.PermissionFlags.ADMINISTRATOR);
|
||||
if (admin) permissions = Constants.ALL_PERMISSIONS;
|
||||
const admin = Boolean(permissions & Permissions.FLAGS.ADMINISTRATOR);
|
||||
if (admin) permissions = Permissions.ALL;
|
||||
|
||||
return new EvaluatedPermissions(member, permissions);
|
||||
return new Permissions(member, permissions);
|
||||
}
|
||||
|
||||
overwritesFor(member, verified = false, roles = null) {
|
||||
@@ -151,14 +150,14 @@ class GuildChannel extends Channel {
|
||||
|
||||
for (const perm in options) {
|
||||
if (options[perm] === true) {
|
||||
payload.allow |= Constants.PermissionFlags[perm] || 0;
|
||||
payload.deny &= ~(Constants.PermissionFlags[perm] || 0);
|
||||
payload.allow |= Permissions.FLAGS[perm] || 0;
|
||||
payload.deny &= ~(Permissions.FLAGS[perm] || 0);
|
||||
} else if (options[perm] === false) {
|
||||
payload.allow &= ~(Constants.PermissionFlags[perm] || 0);
|
||||
payload.deny |= Constants.PermissionFlags[perm] || 0;
|
||||
payload.allow &= ~(Permissions.FLAGS[perm] || 0);
|
||||
payload.deny |= Permissions.FLAGS[perm] || 0;
|
||||
} else if (options[perm] === null) {
|
||||
payload.allow &= ~(Constants.PermissionFlags[perm] || 0);
|
||||
payload.deny &= ~(Constants.PermissionFlags[perm] || 0);
|
||||
payload.allow &= ~(Permissions.FLAGS[perm] || 0);
|
||||
payload.deny &= ~(Permissions.FLAGS[perm] || 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,7 +293,7 @@ class GuildChannel extends Channel {
|
||||
*/
|
||||
get deletable() {
|
||||
return this.id !== this.guild.id &&
|
||||
this.permissionsFor(this.client.user).hasPermission(Constants.PermissionFlags.MANAGE_CHANNELS);
|
||||
this.permissionsFor(this.client.user).hasPermission(Permissions.FLAGS.MANAGE_CHANNELS);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user