Files
discord.js/lib/Structures/ChannelPermissions.js
2015-11-20 22:12:02 +00:00

8 lines
2.0 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;