Added permissions evaluation!

This commit is contained in:
hydrabolt
2015-10-03 22:50:46 +01:00
parent 8f4e6e34d5
commit c60fe26657
9 changed files with 313 additions and 32 deletions

View File

@@ -1,18 +1,49 @@
class ChannelPermissions{
constructor(data){
constructor(data, channel){
var self = this;
function getBit(x) {
return ((this.packed >>> x) & 1) === 1;
return ((self.packed >>> x) & 1) === 1;
}
this.type = data.type; //either member or role
this.id = data.id;
this.deny = data.deny;
if(this.type === "member"){
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
}else{
this.packed = channel.server.getRole(data.id).packed;
}
this.packed = this.packed & ~data.deny;
this.packed = this.packed | data.allow;
this.deny = data.deny;
this.allow = data.allow;
this.createInstantInvite = getBit(0);
//this.banMembers = getBit(1);
//this.kickMembers = getBit(2);
this.managePermissions = getBit(3);
this.manageChannels = getBit(4);
//this.manageServer = getBit(5);
this.readMessages = getBit(10);
this.sendMessages = getBit(11);
this.sendTTSMessages = getBit(12);
this.manageMessages = getBit(13);
this.embedLinks = getBit(14);
this.attachFiles = getBit(15);
this.readMessageHistory = getBit(16);
this.mentionEveryone = getBit(17);
this.voiceConnect = getBit(20);
this.voiceSpeak = getBit(21);
this.voiceMuteMembers = getBit(22);
this.voiceDeafenMembers = getBit(23);
this.voiceMoveMembers = getBit(24);
this.voiceUseVoiceActivation = getBit(25);
}
getBit(x) {