mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
"use strict";
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
var Permissions = require("../Constants.js").Permissions;
|
|
|
|
var ChannelPermissions = (function () {
|
|
function ChannelPermissions(permissions) {
|
|
_classCallCheck(this, ChannelPermissions);
|
|
|
|
this.permissions = permissions;
|
|
}
|
|
|
|
ChannelPermissions.prototype.serialise = function serialise(explicit) {
|
|
var _this = this;
|
|
|
|
var hp = function hp(perm) {
|
|
return _this.hasPermission(perm, explicit);
|
|
};
|
|
|
|
return {
|
|
// general
|
|
createInstantInvite: hp(Permissions.createInstantInvite),
|
|
kickMembers: hp(Permissions.kickMembers),
|
|
banMembers: hp(Permissions.banMembers),
|
|
managePermissions: hp(Permissions.managePermissions),
|
|
manageChannel: hp(Permissions.manageChannel),
|
|
manageServer: hp(Permissions.manageServer),
|
|
// text
|
|
readMessages: hp(Permissions.readMessages),
|
|
sendMessages: hp(Permissions.sendMessages),
|
|
sendTTSMessages: hp(Permissions.sendTTSMessages),
|
|
manageMessages: hp(Permissions.manageMessages),
|
|
embedLinks: hp(Permissions.embedLinks),
|
|
attachFiles: hp(Permissions.attachFiles),
|
|
readMessageHistory: hp(Permissions.readMessageHistory),
|
|
mentionEveryone: hp(Permissions.mentionEveryone),
|
|
// voice
|
|
voiceConnect: hp(Permissions.voiceConnect),
|
|
voiceSpeak: hp(Permissions.voiceSpeak),
|
|
voiceMuteMembers: hp(Permissions.voiceMuteMembers),
|
|
voiceDeafenMembers: hp(Permissions.voiceDeafenMembers),
|
|
voiceMoveMembers: hp(Permissions.voiceMoveMembers),
|
|
voiceUseVAD: hp(Permissions.voiceUseVAD)
|
|
};
|
|
};
|
|
|
|
ChannelPermissions.prototype.serialize = function serialize() {
|
|
// ;n;
|
|
return this.serialise();
|
|
};
|
|
|
|
ChannelPermissions.prototype.hasPermission = function hasPermission(perm) {
|
|
var explicit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
|
|
|
|
if (perm instanceof String || typeof perm === "string") {
|
|
perm = Permissions[perm];
|
|
}
|
|
if (!perm) {
|
|
return false;
|
|
}
|
|
if (!explicit) {
|
|
// implicit permissions allowed
|
|
if (!!(this.permissions & Permissions.manageRoles)) {
|
|
// manageRoles allowed, they have all permissions
|
|
return true;
|
|
}
|
|
}
|
|
return !!(this.permissions & perm);
|
|
};
|
|
|
|
return ChannelPermissions;
|
|
})();
|
|
|
|
module.exports = ChannelPermissions; |