mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 00:23:30 +01:00
Added permission overwrites in channels and potential bug fix
Bug may have potentially been fixed under MESSAGE_UPDATE
This commit is contained in:
@@ -71,6 +71,44 @@ var ChannelPermissions = (function () {
|
||||
};
|
||||
|
||||
_createClass(ChannelPermissions, [{
|
||||
key: "asAllowDisallow",
|
||||
get: function get() {
|
||||
|
||||
var allow = 0,
|
||||
disallow = 0;
|
||||
|
||||
function ad(value, position) {
|
||||
if (value) {
|
||||
allow |= 1 << position;
|
||||
} else {
|
||||
disallow |= 1 << position;
|
||||
}
|
||||
}
|
||||
|
||||
ad(this.canCreateInstantInvite, 0);
|
||||
ad(this.manageRoles, 3);
|
||||
ad(this.manageChannels, 4);
|
||||
ad(this.readMessages, 10);
|
||||
ad(this.sendMessages, 11);
|
||||
ad(this.sendTTSMessages, 12);
|
||||
ad(this.manageMessages, 13);
|
||||
ad(this.embedLinks, 14);
|
||||
ad(this.attachFiles, 15);
|
||||
ad(this.readMessageHistory, 16);
|
||||
ad(this.mentionEveryone, 17);
|
||||
ad(this.voiceConnect, 20);
|
||||
ad(this.voiceSpeak, 21);
|
||||
ad(this.voiceMuteMembers, 22);
|
||||
ad(this.voiceDeafenMembers, 23);
|
||||
ad(this.voiceMoveMembers, 24);
|
||||
ad(this.voiceUseVoiceActivation, 25);
|
||||
|
||||
return {
|
||||
allow: allow,
|
||||
deny: disallow
|
||||
};
|
||||
}
|
||||
}, {
|
||||
key: "createInstantInvite",
|
||||
get: function get() {
|
||||
return this.getBit(0);
|
||||
|
||||
111
lib/Client.js
111
lib/Client.js
@@ -869,6 +869,116 @@ var Client = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.overwritePermissions = function overwritePermissions(channel, role, updatedStuff) {
|
||||
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3];
|
||||
|
||||
var self = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
var data;
|
||||
|
||||
if (role instanceof ServerPermissions || role.type === "role") {
|
||||
for (var key in updatedStuff) {
|
||||
role[key] = updatedStuff[key];
|
||||
}
|
||||
|
||||
data = ad(updatedStuff);
|
||||
data.id = role.id;
|
||||
data.type = "role";
|
||||
} else {
|
||||
|
||||
data = ad(updatedStuff);
|
||||
data.id = role.id;
|
||||
data.type = "member";
|
||||
}
|
||||
request.put(Endpoints.CHANNELS + "/" + channel.id + "/permissions/" + role.id).set("authorization", self.token).send(data).end(function (err) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
callback(err);
|
||||
} else {
|
||||
resolve();
|
||||
callback();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function ad(data) {
|
||||
var allow = 0,
|
||||
disallow = 0;
|
||||
function bitit(value, position) {
|
||||
if (value) {
|
||||
allow |= 1 << position;
|
||||
} else {
|
||||
disallow |= 1 << position;
|
||||
}
|
||||
}
|
||||
|
||||
for (var perm in data) {
|
||||
switch (perm) {
|
||||
case "canCreateInstantInvite":
|
||||
bitit(data[perm], 0);
|
||||
break;
|
||||
case "manageRoles":
|
||||
bitit(data[perm], 3);
|
||||
break;
|
||||
case "manageChannels":
|
||||
bitit(data[perm], 4);
|
||||
break;
|
||||
case "readMessages":
|
||||
bitit(data[perm], 10);
|
||||
break;
|
||||
case "sendMessages":
|
||||
bitit(data[perm], 11);
|
||||
break;
|
||||
case "sendTTSMessages":
|
||||
bitit(data[perm], 12);
|
||||
break;
|
||||
case "manageMessages":
|
||||
bitit(data[perm], 13);
|
||||
break;
|
||||
case "embedLinks":
|
||||
bitit(data[perm], 14);
|
||||
break;
|
||||
case "attachFiles":
|
||||
bitit(data[perm], 15);
|
||||
break;
|
||||
case "readMessageHistory":
|
||||
bitit(data[perm], 16);
|
||||
break;
|
||||
case "mentionEveryone":
|
||||
bitit(data[perm], 17);
|
||||
break;
|
||||
case "voiceConnect":
|
||||
bitit(data[perm], 20);
|
||||
break;
|
||||
case "voiceSpeak":
|
||||
bitit(data[perm], 21);
|
||||
break;
|
||||
case "voiceMuteMembers":
|
||||
bitit(data[perm], 22);
|
||||
break;
|
||||
case "voiceDeafenMembers":
|
||||
bitit(data[perm], 23);
|
||||
break;
|
||||
case "voiceMoveMembers":
|
||||
bitit(data[perm], 24);
|
||||
break;
|
||||
case "voiceUseVoiceActivation":
|
||||
bitit(data[perm], 25);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
allow: allow,
|
||||
deny: disallow
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
//def createws
|
||||
|
||||
Client.prototype.createws = function createws(url) {
|
||||
@@ -1019,6 +1129,7 @@ var Client = (function () {
|
||||
info[key] = data[key];
|
||||
}
|
||||
|
||||
data.mentions = data.mentions || [];
|
||||
var mentions = [];
|
||||
|
||||
for (var _iterator7 = data.mentions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
|
||||
|
||||
@@ -1,116 +1,153 @@
|
||||
class ChannelPermissions{
|
||||
constructor(data, channel){
|
||||
|
||||
class ChannelPermissions {
|
||||
constructor(data, channel) {
|
||||
|
||||
var self = this;
|
||||
|
||||
|
||||
function getBit(x) {
|
||||
return ((self.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
|
||||
this.type = data.type; //either member or role
|
||||
this.id = data.id;
|
||||
|
||||
if(this.type === "member"){
|
||||
this.packed = channel.server.getMember("id", data.id).evalPerms.packed;
|
||||
}else{
|
||||
this.packed = channel.server.getRole(data.id).packed;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
serialise() {
|
||||
return {
|
||||
createInstantInvite : this.createInstantInvite,
|
||||
manageRoles : this.manageRoles,
|
||||
manageChannels : this.manageChannels,
|
||||
readMessages : this.readMessages,
|
||||
sendMessages : this.sendMessage,
|
||||
sendTTSMessages : this.sendTTSMessages,
|
||||
manageMessages : this.manageMessages,
|
||||
embedLinks : this.embedLinks,
|
||||
attachFiles : this.attachFiles,
|
||||
readMessageHistory : this.readMessageHistory,
|
||||
mentionEveryone : this.mentionEveryone,
|
||||
voiceConnect : this.voiceConnect,
|
||||
voiceSpeak : this.voiceSpeak,
|
||||
voiceMuteMembers : this.voiceMuteMembers,
|
||||
voiceDeafenMembers : this.voiceDeafenMembers,
|
||||
voiceMoveMember : this.voiceMoveMembers,
|
||||
voiceUseVoiceActivation : this.voiceUseVoiceActivation
|
||||
createInstantInvite: this.createInstantInvite,
|
||||
manageRoles: this.manageRoles,
|
||||
manageChannels: this.manageChannels,
|
||||
readMessages: this.readMessages,
|
||||
sendMessages: this.sendMessage,
|
||||
sendTTSMessages: this.sendTTSMessages,
|
||||
manageMessages: this.manageMessages,
|
||||
embedLinks: this.embedLinks,
|
||||
attachFiles: this.attachFiles,
|
||||
readMessageHistory: this.readMessageHistory,
|
||||
mentionEveryone: this.mentionEveryone,
|
||||
voiceConnect: this.voiceConnect,
|
||||
voiceSpeak: this.voiceSpeak,
|
||||
voiceMuteMembers: this.voiceMuteMembers,
|
||||
voiceDeafenMembers: this.voiceDeafenMembers,
|
||||
voiceMoveMember: this.voiceMoveMembers,
|
||||
voiceUseVoiceActivation: this.voiceUseVoiceActivation
|
||||
}
|
||||
}
|
||||
|
||||
get createInstantInvite(){return this.getBit(0);}
|
||||
set createInstantInvite(val){this.setBit(0, val);}
|
||||
|
||||
get manageRoles(){return this.getBit(3);}
|
||||
set manageRoles(val){this.setBit(3, val);}
|
||||
|
||||
get manageChannels(){return this.getBit(4);}
|
||||
set manageChannels(val){this.setBit(4, val);}
|
||||
|
||||
get readMessages(){return this.getBit(10);}
|
||||
set readMessages(val){this.setBit(10, val);}
|
||||
|
||||
get sendMessages(){return this.getBit(11);}
|
||||
set sendMessages(val){this.setBit(11, val);}
|
||||
|
||||
get sendTTSMessages(){return this.getBit(12);}
|
||||
set sendTTSMessages(val){this.setBit(12, val);}
|
||||
|
||||
get manageMessages(){return this.getBit(13);}
|
||||
set manageMessages(val){this.setBit(13, val);}
|
||||
|
||||
get embedLinks(){return this.getBit(14);}
|
||||
set embedLinks(val){this.setBit(14, val);}
|
||||
|
||||
get attachFiles(){return this.getBit(15);}
|
||||
set attachFiles(val){this.setBit(15, val);}
|
||||
|
||||
get readMessageHistory(){return this.getBit(16);}
|
||||
set readMessageHistory(val){this.setBit(16, val);}
|
||||
|
||||
get mentionEveryone(){return this.getBit(17);}
|
||||
set mentionEveryone(val){this.setBit(17, val);}
|
||||
|
||||
get voiceConnect(){return this.getBit(20);}
|
||||
set voiceConnect(val){this.setBit(20, val);}
|
||||
|
||||
get voiceSpeak(){return this.getBit(21);}
|
||||
set voiceSpeak(val){this.setBit(21, val);}
|
||||
|
||||
get voiceMuteMembers(){return this.getBit(22);}
|
||||
set voiceMuteMembers(val){this.setBit(22, val);}
|
||||
|
||||
get voiceDeafenMembers(){return this.getBit(23);}
|
||||
set voiceDeafenMembers(val){this.setBit(23, val);}
|
||||
|
||||
get voiceMoveMembers(){return this.getBit(24);}
|
||||
set voiceMoveMembers(val){this.setBit(24, val);}
|
||||
|
||||
get voiceUseVoiceActivation(){return this.getBit(25);}
|
||||
set voiceUseVoiceActivation(val){this.setBit(25, val);}
|
||||
|
||||
|
||||
get asAllowDisallow() {
|
||||
|
||||
var allow = 0, disallow = 0;
|
||||
|
||||
function ad(value, position) {
|
||||
if (value) {
|
||||
allow |= (1 << position);
|
||||
} else {
|
||||
disallow |= (1 << position);
|
||||
}
|
||||
}
|
||||
|
||||
ad(this.canCreateInstantInvite, 0);
|
||||
ad(this.manageRoles, 3);
|
||||
ad(this.manageChannels, 4);
|
||||
ad(this.readMessages, 10);
|
||||
ad(this.sendMessages, 11);
|
||||
ad(this.sendTTSMessages, 12);
|
||||
ad(this.manageMessages, 13);
|
||||
ad(this.embedLinks, 14);
|
||||
ad(this.attachFiles, 15);
|
||||
ad(this.readMessageHistory, 16);
|
||||
ad(this.mentionEveryone, 17);
|
||||
ad(this.voiceConnect, 20);
|
||||
ad(this.voiceSpeak, 21);
|
||||
ad(this.voiceMuteMembers, 22);
|
||||
ad(this.voiceDeafenMembers, 23);
|
||||
ad(this.voiceMoveMembers, 24);
|
||||
ad(this.voiceUseVoiceActivation, 25);
|
||||
|
||||
|
||||
return {
|
||||
allow : allow,
|
||||
deny : disallow
|
||||
};
|
||||
}
|
||||
|
||||
get createInstantInvite() { return this.getBit(0); }
|
||||
set createInstantInvite(val) { this.setBit(0, val); }
|
||||
|
||||
get manageRoles() { return this.getBit(3); }
|
||||
set manageRoles(val) { this.setBit(3, val); }
|
||||
|
||||
get manageChannels() { return this.getBit(4); }
|
||||
set manageChannels(val) { this.setBit(4, val); }
|
||||
|
||||
get readMessages() { return this.getBit(10); }
|
||||
set readMessages(val) { this.setBit(10, val); }
|
||||
|
||||
get sendMessages() { return this.getBit(11); }
|
||||
set sendMessages(val) { this.setBit(11, val); }
|
||||
|
||||
get sendTTSMessages() { return this.getBit(12); }
|
||||
set sendTTSMessages(val) { this.setBit(12, val); }
|
||||
|
||||
get manageMessages() { return this.getBit(13); }
|
||||
set manageMessages(val) { this.setBit(13, val); }
|
||||
|
||||
get embedLinks() { return this.getBit(14); }
|
||||
set embedLinks(val) { this.setBit(14, val); }
|
||||
|
||||
get attachFiles() { return this.getBit(15); }
|
||||
set attachFiles(val) { this.setBit(15, val); }
|
||||
|
||||
get readMessageHistory() { return this.getBit(16); }
|
||||
set readMessageHistory(val) { this.setBit(16, val); }
|
||||
|
||||
get mentionEveryone() { return this.getBit(17); }
|
||||
set mentionEveryone(val) { this.setBit(17, val); }
|
||||
|
||||
get voiceConnect() { return this.getBit(20); }
|
||||
set voiceConnect(val) { this.setBit(20, val); }
|
||||
|
||||
get voiceSpeak() { return this.getBit(21); }
|
||||
set voiceSpeak(val) { this.setBit(21, val); }
|
||||
|
||||
get voiceMuteMembers() { return this.getBit(22); }
|
||||
set voiceMuteMembers(val) { this.setBit(22, val); }
|
||||
|
||||
get voiceDeafenMembers() { return this.getBit(23); }
|
||||
set voiceDeafenMembers(val) { this.setBit(23, val); }
|
||||
|
||||
get voiceMoveMembers() { return this.getBit(24); }
|
||||
set voiceMoveMembers(val) { this.setBit(24, val); }
|
||||
|
||||
get voiceUseVoiceActivation() { return this.getBit(25); }
|
||||
set voiceUseVoiceActivation(val) { this.setBit(25, val); }
|
||||
|
||||
getBit(x) {
|
||||
if( ((this.packed >>> 3) & 1) === 1 ){
|
||||
if (((this.packed >>> 3) & 1) === 1) {
|
||||
return true;
|
||||
}
|
||||
return ((this.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
setBit(location, value){
|
||||
|
||||
if(value){
|
||||
|
||||
setBit(location, value) {
|
||||
|
||||
if (value) {
|
||||
// allow that permission
|
||||
this.packed |= (1 << location);
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
// not allowed
|
||||
this.packed &= (1 << location);
|
||||
}
|
||||
|
||||
116
src/Client.js
116
src/Client.js
@@ -945,6 +945,121 @@ class Client {
|
||||
});
|
||||
}
|
||||
|
||||
overwritePermissions(channel, role, updatedStuff, callback=function(err){}){
|
||||
|
||||
var self = this;
|
||||
|
||||
return new Promise(function(resolve, reject){
|
||||
|
||||
var data;
|
||||
|
||||
if( role instanceof ServerPermissions || role.type === "role" ){
|
||||
for(var key in updatedStuff){
|
||||
role[key] = updatedStuff[key];
|
||||
}
|
||||
|
||||
data = ad(updatedStuff);
|
||||
data.id = role.id;
|
||||
data.type = "role";
|
||||
}else{
|
||||
|
||||
data = ad(updatedStuff);
|
||||
data.id = role.id;
|
||||
data.type = "member";
|
||||
|
||||
}
|
||||
request
|
||||
.put(`${Endpoints.CHANNELS}/${channel.id}/permissions/${role.id}`)
|
||||
.set("authorization", self.token)
|
||||
.send(data)
|
||||
.end(function(err){
|
||||
if (err) {
|
||||
reject(err);
|
||||
callback(err);
|
||||
} else {
|
||||
resolve();
|
||||
callback();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function ad(data){
|
||||
var allow = 0, disallow = 0;
|
||||
function bitit(value, position){
|
||||
if (value) {
|
||||
allow |= (1 << position);
|
||||
} else {
|
||||
disallow |= (1 << position);
|
||||
}
|
||||
}
|
||||
|
||||
for(var perm in data){
|
||||
switch(perm){
|
||||
case "canCreateInstantInvite":
|
||||
bitit(data[perm], 0);
|
||||
break;
|
||||
case "manageRoles":
|
||||
bitit(data[perm], 3);
|
||||
break;
|
||||
case "manageChannels":
|
||||
bitit(data[perm], 4);
|
||||
break;
|
||||
case "readMessages":
|
||||
bitit(data[perm], 10);
|
||||
break;
|
||||
case "sendMessages":
|
||||
bitit(data[perm], 11);
|
||||
break;
|
||||
case "sendTTSMessages":
|
||||
bitit(data[perm], 12);
|
||||
break;
|
||||
case "manageMessages":
|
||||
bitit(data[perm], 13);
|
||||
break;
|
||||
case "embedLinks":
|
||||
bitit(data[perm], 14);
|
||||
break;
|
||||
case "attachFiles":
|
||||
bitit(data[perm], 15);
|
||||
break;
|
||||
case "readMessageHistory":
|
||||
bitit(data[perm], 16);
|
||||
break;
|
||||
case "mentionEveryone":
|
||||
bitit(data[perm], 17);
|
||||
break;
|
||||
case "voiceConnect":
|
||||
bitit(data[perm], 20);
|
||||
break;
|
||||
case "voiceSpeak":
|
||||
bitit(data[perm], 21);
|
||||
break;
|
||||
case "voiceMuteMembers":
|
||||
bitit(data[perm], 22);
|
||||
break;
|
||||
case "voiceDeafenMembers":
|
||||
bitit(data[perm], 23);
|
||||
break;
|
||||
case "voiceMoveMembers":
|
||||
bitit(data[perm], 24);
|
||||
break;
|
||||
case "voiceUseVoiceActivation":
|
||||
bitit(data[perm], 25);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
allow: allow,
|
||||
deny: disallow
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//def createws
|
||||
createws(url) {
|
||||
if (this.websocket)
|
||||
@@ -1060,6 +1175,7 @@ class Client {
|
||||
info[key] = data[key];
|
||||
}
|
||||
|
||||
data.mentions = data.mentions || [];
|
||||
var mentions = [];
|
||||
|
||||
for (var mention of data.mentions) {
|
||||
|
||||
@@ -20,107 +20,107 @@ class ServerPermissions {
|
||||
|
||||
serialise() {
|
||||
return {
|
||||
createInstantInvite : this.createInstantInvite,
|
||||
manageRoles : this.manageRoles,
|
||||
manageChannels : this.manageChannels,
|
||||
readMessages : this.readMessages,
|
||||
sendMessages : this.sendMessage,
|
||||
sendTTSMessages : this.sendTTSMessages,
|
||||
manageMessages : this.manageMessages,
|
||||
embedLinks : this.embedLinks,
|
||||
attachFiles : this.attachFiles,
|
||||
readMessageHistory : this.readMessageHistory,
|
||||
mentionEveryone : this.mentionEveryone,
|
||||
voiceConnect : this.voiceConnect,
|
||||
voiceSpeak : this.voiceSpeak,
|
||||
voiceMuteMembers : this.voiceMuteMembers,
|
||||
voiceDeafenMembers : this.voiceDeafenMembers,
|
||||
voiceMoveMember : this.voiceMoveMembers,
|
||||
voiceUseVoiceActivation : this.voiceUseVoiceActivation
|
||||
createInstantInvite: this.createInstantInvite,
|
||||
manageRoles: this.manageRoles,
|
||||
manageChannels: this.manageChannels,
|
||||
readMessages: this.readMessages,
|
||||
sendMessages: this.sendMessage,
|
||||
sendTTSMessages: this.sendTTSMessages,
|
||||
manageMessages: this.manageMessages,
|
||||
embedLinks: this.embedLinks,
|
||||
attachFiles: this.attachFiles,
|
||||
readMessageHistory: this.readMessageHistory,
|
||||
mentionEveryone: this.mentionEveryone,
|
||||
voiceConnect: this.voiceConnect,
|
||||
voiceSpeak: this.voiceSpeak,
|
||||
voiceMuteMembers: this.voiceMuteMembers,
|
||||
voiceDeafenMembers: this.voiceDeafenMembers,
|
||||
voiceMoveMember: this.voiceMoveMembers,
|
||||
voiceUseVoiceActivation: this.voiceUseVoiceActivation
|
||||
}
|
||||
}
|
||||
|
||||
get createInstantInvite(){return this.getBit(0);}
|
||||
set createInstantInvite(val){this.setBit(0, val);}
|
||||
|
||||
get banMembers(){return this.getBit(1);}
|
||||
set banMembers(val){this.setBit(1, val);}
|
||||
|
||||
get kickMembers(){return this.getBit(2);}
|
||||
set kickMembers(val){this.setBit(2, val);}
|
||||
|
||||
get manageRoles(){return this.getBit(3);}
|
||||
set manageRoles(val){this.setBit(3, val);}
|
||||
|
||||
get manageChannels(){return this.getBit(4);}
|
||||
set manageChannels(val){this.setBit(4, val);}
|
||||
|
||||
get manageServer(){return this.getBit(5);}
|
||||
set manageServer(val){this.setBit(5, val);}
|
||||
|
||||
get readMessages(){return this.getBit(10);}
|
||||
set readMessages(val){this.setBit(10, val);}
|
||||
|
||||
get sendMessages(){return this.getBit(11);}
|
||||
set sendMessages(val){this.setBit(11, val);}
|
||||
|
||||
get sendTTSMessages(){return this.getBit(12);}
|
||||
set sendTTSMessages(val){this.setBit(12, val);}
|
||||
|
||||
get manageMessages(){return this.getBit(13);}
|
||||
set manageMessages(val){this.setBit(13, val);}
|
||||
|
||||
get embedLinks(){return this.getBit(14);}
|
||||
set embedLinks(val){this.setBit(14, val);}
|
||||
|
||||
get attachFiles(){return this.getBit(15);}
|
||||
set attachFiles(val){this.setBit(15, val);}
|
||||
|
||||
get readMessageHistory(){return this.getBit(16);}
|
||||
set readMessageHistory(val){this.setBit(16, val);}
|
||||
|
||||
get mentionEveryone(){return this.getBit(17);}
|
||||
set mentionEveryone(val){this.setBit(17, val);}
|
||||
|
||||
get voiceConnect(){return this.getBit(20);}
|
||||
set voiceConnect(val){this.setBit(20, val);}
|
||||
|
||||
get voiceSpeak(){return this.getBit(21);}
|
||||
set voiceSpeak(val){this.setBit(21, val);}
|
||||
|
||||
get voiceMuteMembers(){return this.getBit(22);}
|
||||
set voiceMuteMembers(val){this.setBit(22, val);}
|
||||
|
||||
get voiceDeafenMembers(){return this.getBit(23);}
|
||||
set voiceDeafenMembers(val){this.setBit(23, val);}
|
||||
|
||||
get voiceMoveMembers(){return this.getBit(24);}
|
||||
set voiceMoveMembers(val){this.setBit(24, val);}
|
||||
|
||||
get voiceUseVoiceActivation(){return this.getBit(25);}
|
||||
set voiceUseVoiceActivation(val){this.setBit(25, val);}
|
||||
|
||||
get createInstantInvite() { return this.getBit(0); }
|
||||
set createInstantInvite(val) { this.setBit(0, val); }
|
||||
|
||||
get banMembers() { return this.getBit(1); }
|
||||
set banMembers(val) { this.setBit(1, val); }
|
||||
|
||||
get kickMembers() { return this.getBit(2); }
|
||||
set kickMembers(val) { this.setBit(2, val); }
|
||||
|
||||
get manageRoles() { return this.getBit(3); }
|
||||
set manageRoles(val) { this.setBit(3, val); }
|
||||
|
||||
get manageChannels() { return this.getBit(4); }
|
||||
set manageChannels(val) { this.setBit(4, val); }
|
||||
|
||||
get manageServer() { return this.getBit(5); }
|
||||
set manageServer(val) { this.setBit(5, val); }
|
||||
|
||||
get readMessages() { return this.getBit(10); }
|
||||
set readMessages(val) { this.setBit(10, val); }
|
||||
|
||||
get sendMessages() { return this.getBit(11); }
|
||||
set sendMessages(val) { this.setBit(11, val); }
|
||||
|
||||
get sendTTSMessages() { return this.getBit(12); }
|
||||
set sendTTSMessages(val) { this.setBit(12, val); }
|
||||
|
||||
get manageMessages() { return this.getBit(13); }
|
||||
set manageMessages(val) { this.setBit(13, val); }
|
||||
|
||||
get embedLinks() { return this.getBit(14); }
|
||||
set embedLinks(val) { this.setBit(14, val); }
|
||||
|
||||
get attachFiles() { return this.getBit(15); }
|
||||
set attachFiles(val) { this.setBit(15, val); }
|
||||
|
||||
get readMessageHistory() { return this.getBit(16); }
|
||||
set readMessageHistory(val) { this.setBit(16, val); }
|
||||
|
||||
get mentionEveryone() { return this.getBit(17); }
|
||||
set mentionEveryone(val) { this.setBit(17, val); }
|
||||
|
||||
get voiceConnect() { return this.getBit(20); }
|
||||
set voiceConnect(val) { this.setBit(20, val); }
|
||||
|
||||
get voiceSpeak() { return this.getBit(21); }
|
||||
set voiceSpeak(val) { this.setBit(21, val); }
|
||||
|
||||
get voiceMuteMembers() { return this.getBit(22); }
|
||||
set voiceMuteMembers(val) { this.setBit(22, val); }
|
||||
|
||||
get voiceDeafenMembers() { return this.getBit(23); }
|
||||
set voiceDeafenMembers(val) { this.setBit(23, val); }
|
||||
|
||||
get voiceMoveMembers() { return this.getBit(24); }
|
||||
set voiceMoveMembers(val) { this.setBit(24, val); }
|
||||
|
||||
get voiceUseVoiceActivation() { return this.getBit(25); }
|
||||
set voiceUseVoiceActivation(val) { this.setBit(25, val); }
|
||||
|
||||
getBit(x) {
|
||||
if( ((this.packed >>> 3) & 1) === 1 ){
|
||||
if (((this.packed >>> 3) & 1) === 1) {
|
||||
return true;
|
||||
}
|
||||
return ((this.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
setBit(location, value){
|
||||
|
||||
if(value){
|
||||
|
||||
setBit(location, value) {
|
||||
|
||||
if (value) {
|
||||
// allow that permission
|
||||
this.packed |= (1 << location);
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
// not allowed
|
||||
this.packed &= (1 << location);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toString(){
|
||||
|
||||
toString() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,8 +25,12 @@ mybot.on("message", function (message) {
|
||||
} else {
|
||||
user = message.sender;
|
||||
}
|
||||
for(var role of message.sender.roles){
|
||||
mybot.removeMemberFromRole(message.sender, role).catch(error);
|
||||
for(var role of message.channel.server.roles){
|
||||
|
||||
mybot.overwritePermissions(message.channel, message.sender, {
|
||||
sendMessages : false
|
||||
}).catch(error);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user