mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
Add createRoleIfNotExists function
This commit is contained in:
@@ -1,101 +1,87 @@
|
||||
/*
|
||||
this bot is a permissions bot and is currently working
|
||||
with the experimental additions. Some functions may
|
||||
change in the future.
|
||||
*/
|
||||
|
||||
var Discord = require("../");
|
||||
|
||||
// Get the email and password
|
||||
var AuthDetails = require("./auth.json");
|
||||
|
||||
var bot = new Discord.Client();
|
||||
|
||||
bot.on("ready", function () {
|
||||
console.log("Ready to begin! Serving in " + bot.channels.length + " channels");
|
||||
});
|
||||
|
||||
bot.on("disconnected", function () {
|
||||
|
||||
console.log("Disconnected!");
|
||||
process.exit(1); //exit node.js with an error
|
||||
|
||||
});
|
||||
|
||||
bot.on("message", function (msg) {
|
||||
if (msg.content === "skype") {
|
||||
|
||||
//stop the user from speaking in the channel:
|
||||
bot.overwritePermissions(msg.channel, msg.sender, {
|
||||
sendMessages : false
|
||||
});
|
||||
|
||||
// send a barely funny message ;)
|
||||
bot.reply(msg, "how dare you mention that!");
|
||||
|
||||
}
|
||||
|
||||
if (msg.content === "discord") {
|
||||
|
||||
// see if there is a permission called 'good people' in the server already
|
||||
var found = false;
|
||||
|
||||
for(var role of msg.channel.server.roles){
|
||||
if(role.name === "good people"){
|
||||
found = role;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// if the role doesn't exist, make it
|
||||
if(!found){
|
||||
bot.createRole(msg.channel.server, {
|
||||
name : "good people",
|
||||
color : Discord.Colors.BLUE, // colour of blue
|
||||
hoist : true // make a seperate category in the users list
|
||||
}).then(addUserToList);
|
||||
}else{
|
||||
addUserToList(role);
|
||||
}
|
||||
|
||||
function addUserToList(role){
|
||||
|
||||
bot.addMemberToRole(msg.sender, role);
|
||||
bot.reply(msg, "welcome to the good people!");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( msg.content === "remove me" ){
|
||||
// remove the user from the good people list, if it exists
|
||||
var found = false;
|
||||
|
||||
for(var role of msg.channel.server.roles){
|
||||
if(role.name === "good people"){
|
||||
found = role;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(found){
|
||||
// if the role exists
|
||||
|
||||
if( msg.sender.hasRole(role) ){
|
||||
// remove the member from the role
|
||||
bot.removeMemberFromRole(msg.sender, role);
|
||||
bot.reply(msg, "removed!")
|
||||
}else{
|
||||
bot.reply(msg, "you're not in the role!");
|
||||
}
|
||||
|
||||
}else{
|
||||
// role doesn't exist
|
||||
bot.reply(msg, "the role doesn't even exist!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/*
|
||||
this bot is a permissions bot and is currently working
|
||||
with the experimental additions. Some functions may
|
||||
change in the future.
|
||||
*/
|
||||
|
||||
var Discord = require("../");
|
||||
|
||||
// Get the email and password
|
||||
var AuthDetails = require("./auth.json");
|
||||
|
||||
var bot = new Discord.Client();
|
||||
|
||||
bot.on("ready", function () {
|
||||
console.log("Ready to begin! Serving in " + bot.channels.length + " channels");
|
||||
});
|
||||
|
||||
bot.on("disconnected", function () {
|
||||
|
||||
console.log("Disconnected!");
|
||||
process.exit(1); //exit node.js with an error
|
||||
|
||||
});
|
||||
|
||||
bot.on("message", function (msg) {
|
||||
if (msg.content === "skype") {
|
||||
|
||||
//stop the user from speaking in the channel:
|
||||
bot.overwritePermissions(msg.channel, msg.sender, {
|
||||
sendMessages: false
|
||||
});
|
||||
|
||||
// send a barely funny message ;)
|
||||
bot.reply(msg, "how dare you mention that!");
|
||||
|
||||
}
|
||||
|
||||
if (msg.content === "discord") {
|
||||
|
||||
// if the role doesn't exist, make it
|
||||
bot.createRoleIfNotExists(msg.channel.server, {
|
||||
name: "good people",
|
||||
color: Discord.Colors.BLUE, // colour of blue
|
||||
hoist: true // make a seperate category in the users list
|
||||
}).then(addUserToList).catch(console.log);
|
||||
|
||||
function addUserToList(role, alreadyExists) {
|
||||
console.log(arguments);
|
||||
bot.addMemberToRole(msg.sender, role);
|
||||
bot.reply(msg, "welcome to the good people! " + alreadyExists);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (msg.content === "remove me") {
|
||||
// remove the user from the good people list, if it exists
|
||||
var found = false;
|
||||
|
||||
for (var role of msg.channel.server.roles) {
|
||||
if (role.name === "good people") {
|
||||
found = role;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found) {
|
||||
// if the role exists
|
||||
|
||||
if (msg.sender.hasRole(role)) {
|
||||
// remove the member from the role
|
||||
bot.removeMemberFromRole(msg.sender, role);
|
||||
bot.reply(msg, "removed!")
|
||||
} else {
|
||||
bot.reply(msg, "you're not in the role!");
|
||||
}
|
||||
|
||||
} else {
|
||||
// role doesn't exist
|
||||
bot.reply(msg, "the role doesn't even exist!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
bot.login(AuthDetails.email, AuthDetails.password);
|
||||
348
lib/Client.js
348
lib/Client.js
@@ -32,10 +32,10 @@ var Client = (function () {
|
||||
|
||||
_classCallCheck(this, Client);
|
||||
|
||||
/*
|
||||
When created, if a token is specified the Client will
|
||||
try connecting with it. If the token is incorrect, no
|
||||
further efforts will be made to connect.
|
||||
/*
|
||||
When created, if a token is specified the Client will
|
||||
try connecting with it. If the token is incorrect, no
|
||||
further efforts will be made to connect.
|
||||
*/
|
||||
this.options = options;
|
||||
this.options.compress = options.compress;
|
||||
@@ -56,13 +56,13 @@ var Client = (function () {
|
||||
this.email = "abc";
|
||||
this.password = "abc";
|
||||
|
||||
/*
|
||||
State values:
|
||||
0 - idle
|
||||
1 - logging in
|
||||
2 - logged in
|
||||
3 - ready
|
||||
4 - disconnected
|
||||
/*
|
||||
State values:
|
||||
0 - idle
|
||||
1 - logging in
|
||||
2 - logged in
|
||||
3 - ready
|
||||
4 - disconnected
|
||||
*/
|
||||
|
||||
this.userCache = [];
|
||||
@@ -231,8 +231,8 @@ var Client = (function () {
|
||||
// creating here does NOT give us the channels of the server
|
||||
// so we must wait for the guild_create event.
|
||||
self.serverCreateListener[res.body.id] = [resolve, callback];
|
||||
/*var srv = self.addServer(res.body);
|
||||
callback(null, srv);
|
||||
/*var srv = self.addServer(res.body);
|
||||
callback(null, srv);
|
||||
resolve(srv);*/
|
||||
}
|
||||
});
|
||||
@@ -744,8 +744,54 @@ var Client = (function () {
|
||||
return prom;
|
||||
};
|
||||
|
||||
Client.prototype.createRoleIfNotExists = function createRoleIfNotExists(dest, data) {
|
||||
var cb = arguments.length <= 2 || arguments[2] === undefined ? function (err, role) {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
var serverID = self.resolveServerID(dest);
|
||||
var server = self.getServer("id", serverID);
|
||||
|
||||
var baseRole = new ServerPermissions({}, server);
|
||||
for (var key in data) {
|
||||
baseRole[key] = data[key];
|
||||
}
|
||||
|
||||
for (var _iterator4 = server.roles, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
|
||||
var _ref4;
|
||||
|
||||
if (_isArray4) {
|
||||
if (_i4 >= _iterator4.length) break;
|
||||
_ref4 = _iterator4[_i4++];
|
||||
} else {
|
||||
_i4 = _iterator4.next();
|
||||
if (_i4.done) break;
|
||||
_ref4 = _i4.value;
|
||||
}
|
||||
|
||||
var role = _ref4;
|
||||
|
||||
if (baseRole.name == role.name && baseRole.packed == role.packed && baseRole.color == role.color) {
|
||||
resolve(role);
|
||||
cb(null, role);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
self.createRole(dest, data).then(function (role) {
|
||||
cb(null, role);
|
||||
resolve(role);
|
||||
})["catch"](function (e) {
|
||||
cb(e);
|
||||
reject(e);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.createRole = function createRole(dest, data) {
|
||||
var cb = arguments.length <= 2 || arguments[2] === undefined ? function (err, perm) {} : arguments[2];
|
||||
var cb = arguments.length <= 2 || arguments[2] === undefined ? function (err, role) {} : arguments[2];
|
||||
|
||||
var self = this;
|
||||
|
||||
@@ -883,8 +929,6 @@ var Client = (function () {
|
||||
acMember.removeRole(role);
|
||||
}
|
||||
|
||||
console.log("remainder: ", acMember.rawRoles, "wanting", role.id);
|
||||
|
||||
request.patch("https://discordapp.com/api/guilds/" + serverId + "/members/" + memberId).set("authorization", self.token).send({
|
||||
roles: acMember.rawRoles
|
||||
}).end(function (err) {
|
||||
@@ -1059,24 +1103,7 @@ var Client = (function () {
|
||||
|
||||
self.user = self.addUser(data.user);
|
||||
|
||||
for (var _iterator4 = data.guilds, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
|
||||
var _ref4;
|
||||
|
||||
if (_isArray4) {
|
||||
if (_i4 >= _iterator4.length) break;
|
||||
_ref4 = _iterator4[_i4++];
|
||||
} else {
|
||||
_i4 = _iterator4.next();
|
||||
if (_i4.done) break;
|
||||
_ref4 = _i4.value;
|
||||
}
|
||||
|
||||
var _server = _ref4;
|
||||
|
||||
var server = self.addServer(_server);
|
||||
}
|
||||
|
||||
for (var _iterator5 = data.private_channels, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
|
||||
for (var _iterator5 = data.guilds, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
|
||||
var _ref5;
|
||||
|
||||
if (_isArray5) {
|
||||
@@ -1088,7 +1115,24 @@ var Client = (function () {
|
||||
_ref5 = _i5.value;
|
||||
}
|
||||
|
||||
var _pmc = _ref5;
|
||||
var _server = _ref5;
|
||||
|
||||
var server = self.addServer(_server);
|
||||
}
|
||||
|
||||
for (var _iterator6 = data.private_channels, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
|
||||
var _ref6;
|
||||
|
||||
if (_isArray6) {
|
||||
if (_i6 >= _iterator6.length) break;
|
||||
_ref6 = _iterator6[_i6++];
|
||||
} else {
|
||||
_i6 = _iterator6.next();
|
||||
if (_i6.done) break;
|
||||
_ref6 = _i6.value;
|
||||
}
|
||||
|
||||
var _pmc = _ref6;
|
||||
|
||||
var pmc = self.addPMChannel(_pmc);
|
||||
}
|
||||
@@ -1109,19 +1153,19 @@ var Client = (function () {
|
||||
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
|
||||
|
||||
var channel = self.getChannel("id", data.channel_id);
|
||||
for (var _iterator6 = data.mentions, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
|
||||
var _ref6;
|
||||
for (var _iterator7 = data.mentions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
|
||||
var _ref7;
|
||||
|
||||
if (_isArray6) {
|
||||
if (_i6 >= _iterator6.length) break;
|
||||
_ref6 = _iterator6[_i6++];
|
||||
if (_isArray7) {
|
||||
if (_i7 >= _iterator7.length) break;
|
||||
_ref7 = _iterator7[_i7++];
|
||||
} else {
|
||||
_i6 = _iterator6.next();
|
||||
if (_i6.done) break;
|
||||
_ref6 = _i6.value;
|
||||
_i7 = _iterator7.next();
|
||||
if (_i7.done) break;
|
||||
_ref7 = _i7.value;
|
||||
}
|
||||
|
||||
var mention = _ref6;
|
||||
var mention = _ref7;
|
||||
|
||||
var user = self.addUser(mention);
|
||||
if (channel.server) mentions.push(channel.server.getMember("id", user.id) || user);else mentions.push(user);
|
||||
@@ -1168,19 +1212,19 @@ var Client = (function () {
|
||||
data.mentions = data.mentions || [];
|
||||
var mentions = [];
|
||||
|
||||
for (var _iterator7 = data.mentions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
|
||||
var _ref7;
|
||||
for (var _iterator8 = data.mentions, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
|
||||
var _ref8;
|
||||
|
||||
if (_isArray7) {
|
||||
if (_i7 >= _iterator7.length) break;
|
||||
_ref7 = _iterator7[_i7++];
|
||||
if (_isArray8) {
|
||||
if (_i8 >= _iterator8.length) break;
|
||||
_ref8 = _iterator8[_i8++];
|
||||
} else {
|
||||
_i7 = _iterator7.next();
|
||||
if (_i7.done) break;
|
||||
_ref7 = _i7.value;
|
||||
_i8 = _iterator8.next();
|
||||
if (_i8.done) break;
|
||||
_ref8 = _i8.value;
|
||||
}
|
||||
|
||||
var mention = _ref7;
|
||||
var mention = _ref8;
|
||||
|
||||
var user = self.addUser(mention);
|
||||
if (channel.server) mentions.push(channel.server.getMember("id", user.id) || user);else mentions.push(user);
|
||||
@@ -1243,14 +1287,14 @@ var Client = (function () {
|
||||
if (!server) {
|
||||
//if server doesn't already exist because duh
|
||||
server = self.addServer(data);
|
||||
} /*else if(server.channels.length === 0){
|
||||
|
||||
var srv = new Server(data, self);
|
||||
for(channel of data.channels){
|
||||
srv.channels.push(new Channel(channel, data.id));
|
||||
}
|
||||
self.serverCache[self.serverCache.indexOf(server)] = srv;
|
||||
|
||||
} /*else if(server.channels.length === 0){
|
||||
|
||||
var srv = new Server(data, self);
|
||||
for(channel of data.channels){
|
||||
srv.channels.push(new Channel(channel, data.id));
|
||||
}
|
||||
self.serverCache[self.serverCache.indexOf(server)] = srv;
|
||||
|
||||
}*/
|
||||
|
||||
if (self.serverCreateListener[data.id]) {
|
||||
@@ -1537,38 +1581,38 @@ var Client = (function () {
|
||||
server = new Server(data, this);
|
||||
this.serverCache.push(server);
|
||||
if (data.channels) {
|
||||
for (var _iterator8 = data.channels, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
|
||||
var _ref8;
|
||||
for (var _iterator9 = data.channels, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
|
||||
var _ref9;
|
||||
|
||||
if (_isArray8) {
|
||||
if (_i8 >= _iterator8.length) break;
|
||||
_ref8 = _iterator8[_i8++];
|
||||
if (_isArray9) {
|
||||
if (_i9 >= _iterator9.length) break;
|
||||
_ref9 = _iterator9[_i9++];
|
||||
} else {
|
||||
_i8 = _iterator8.next();
|
||||
if (_i8.done) break;
|
||||
_ref8 = _i8.value;
|
||||
_i9 = _iterator9.next();
|
||||
if (_i9.done) break;
|
||||
_ref9 = _i9.value;
|
||||
}
|
||||
|
||||
var channel = _ref8;
|
||||
var channel = _ref9;
|
||||
|
||||
server.channels.push(this.addChannel(channel, server.id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var _iterator9 = data.presences, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
|
||||
var _ref9;
|
||||
for (var _iterator10 = data.presences, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
|
||||
var _ref10;
|
||||
|
||||
if (_isArray9) {
|
||||
if (_i9 >= _iterator9.length) break;
|
||||
_ref9 = _iterator9[_i9++];
|
||||
if (_isArray10) {
|
||||
if (_i10 >= _iterator10.length) break;
|
||||
_ref10 = _iterator10[_i10++];
|
||||
} else {
|
||||
_i9 = _iterator9.next();
|
||||
if (_i9.done) break;
|
||||
_ref9 = _i9.value;
|
||||
_i10 = _iterator10.next();
|
||||
if (_i10.done) break;
|
||||
_ref10 = _i10.value;
|
||||
}
|
||||
|
||||
var presence = _ref9;
|
||||
var presence = _ref10;
|
||||
|
||||
var user = self.getUser("id", presence.user.id);
|
||||
user.status = presence.status;
|
||||
@@ -1581,31 +1625,7 @@ var Client = (function () {
|
||||
//def getUser
|
||||
|
||||
Client.prototype.getUser = function getUser(key, value) {
|
||||
for (var _iterator10 = this.userCache, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
|
||||
var _ref10;
|
||||
|
||||
if (_isArray10) {
|
||||
if (_i10 >= _iterator10.length) break;
|
||||
_ref10 = _iterator10[_i10++];
|
||||
} else {
|
||||
_i10 = _iterator10.next();
|
||||
if (_i10.done) break;
|
||||
_ref10 = _i10.value;
|
||||
}
|
||||
|
||||
var user = _ref10;
|
||||
|
||||
if (user[key] === value) {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
//def getChannel
|
||||
|
||||
Client.prototype.getChannel = function getChannel(key, value) {
|
||||
for (var _iterator11 = this.channelCache, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) {
|
||||
for (var _iterator11 = this.userCache, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) {
|
||||
var _ref11;
|
||||
|
||||
if (_isArray11) {
|
||||
@@ -1617,17 +1637,19 @@ var Client = (function () {
|
||||
_ref11 = _i11.value;
|
||||
}
|
||||
|
||||
var channel = _ref11;
|
||||
var user = _ref11;
|
||||
|
||||
if (channel[key] === value) {
|
||||
return channel;
|
||||
if (user[key] === value) {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
return this.getPMChannel(key, value); //might be a PM
|
||||
return null;
|
||||
};
|
||||
|
||||
Client.prototype.getPMChannel = function getPMChannel(key, value) {
|
||||
for (var _iterator12 = this.pmChannelCache, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) {
|
||||
//def getChannel
|
||||
|
||||
Client.prototype.getChannel = function getChannel(key, value) {
|
||||
for (var _iterator12 = this.channelCache, _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) {
|
||||
var _ref12;
|
||||
|
||||
if (_isArray12) {
|
||||
@@ -1645,13 +1667,11 @@ var Client = (function () {
|
||||
return channel;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return this.getPMChannel(key, value); //might be a PM
|
||||
};
|
||||
|
||||
//def getServer
|
||||
|
||||
Client.prototype.getServer = function getServer(key, value) {
|
||||
for (var _iterator13 = this.serverCache, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) {
|
||||
Client.prototype.getPMChannel = function getPMChannel(key, value) {
|
||||
for (var _iterator13 = this.pmChannelCache, _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) {
|
||||
var _ref13;
|
||||
|
||||
if (_isArray13) {
|
||||
@@ -1663,7 +1683,31 @@ var Client = (function () {
|
||||
_ref13 = _i13.value;
|
||||
}
|
||||
|
||||
var server = _ref13;
|
||||
var channel = _ref13;
|
||||
|
||||
if (channel[key] === value) {
|
||||
return channel;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
//def getServer
|
||||
|
||||
Client.prototype.getServer = function getServer(key, value) {
|
||||
for (var _iterator14 = this.serverCache, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) {
|
||||
var _ref14;
|
||||
|
||||
if (_isArray14) {
|
||||
if (_i14 >= _iterator14.length) break;
|
||||
_ref14 = _iterator14[_i14++];
|
||||
} else {
|
||||
_i14 = _iterator14.next();
|
||||
if (_i14.done) break;
|
||||
_ref14 = _i14.value;
|
||||
}
|
||||
|
||||
var server = _ref14;
|
||||
|
||||
if (server[key] === value) {
|
||||
return server;
|
||||
@@ -1733,19 +1777,19 @@ var Client = (function () {
|
||||
} else if (destination instanceof User) {
|
||||
|
||||
//check if we have a PM
|
||||
for (var _iterator14 = self.pmChannelCache, _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) {
|
||||
var _ref14;
|
||||
for (var _iterator15 = self.pmChannelCache, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) {
|
||||
var _ref15;
|
||||
|
||||
if (_isArray14) {
|
||||
if (_i14 >= _iterator14.length) break;
|
||||
_ref14 = _iterator14[_i14++];
|
||||
if (_isArray15) {
|
||||
if (_i15 >= _iterator15.length) break;
|
||||
_ref15 = _iterator15[_i15++];
|
||||
} else {
|
||||
_i14 = _iterator14.next();
|
||||
if (_i14.done) break;
|
||||
_ref14 = _i14.value;
|
||||
_i15 = _iterator15.next();
|
||||
if (_i15.done) break;
|
||||
_ref15 = _i15.value;
|
||||
}
|
||||
|
||||
var pmc = _ref14;
|
||||
var pmc = _ref15;
|
||||
|
||||
if (pmc.user && pmc.user.equals(destination)) {
|
||||
resolve(pmc.id);
|
||||
@@ -1786,19 +1830,19 @@ var Client = (function () {
|
||||
|
||||
var channel = self.getChannel("id", data.channel_id);
|
||||
|
||||
for (var _iterator15 = data.mentions, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) {
|
||||
var _ref15;
|
||||
for (var _iterator16 = data.mentions, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) {
|
||||
var _ref16;
|
||||
|
||||
if (_isArray15) {
|
||||
if (_i15 >= _iterator15.length) break;
|
||||
_ref15 = _iterator15[_i15++];
|
||||
if (_isArray16) {
|
||||
if (_i16 >= _iterator16.length) break;
|
||||
_ref16 = _iterator16[_i16++];
|
||||
} else {
|
||||
_i15 = _iterator15.next();
|
||||
if (_i15.done) break;
|
||||
_ref15 = _i15.value;
|
||||
_i16 = _iterator16.next();
|
||||
if (_i16.done) break;
|
||||
_ref16 = _i16.value;
|
||||
}
|
||||
|
||||
var mention = _ref15;
|
||||
var mention = _ref16;
|
||||
|
||||
var user = self.addUser(mention);
|
||||
if (channel.server) mentions.push(channel.server.getMember("id", user.id) || user);else mentions.push(user);
|
||||
@@ -1954,19 +1998,19 @@ var Client = (function () {
|
||||
|
||||
id = null;
|
||||
|
||||
for (var _iterator16 = gameMap, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) {
|
||||
var _ref16;
|
||||
for (var _iterator17 = gameMap, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _iterator17[Symbol.iterator]();;) {
|
||||
var _ref17;
|
||||
|
||||
if (_isArray16) {
|
||||
if (_i16 >= _iterator16.length) break;
|
||||
_ref16 = _iterator16[_i16++];
|
||||
if (_isArray17) {
|
||||
if (_i17 >= _iterator17.length) break;
|
||||
_ref17 = _iterator17[_i17++];
|
||||
} else {
|
||||
_i16 = _iterator16.next();
|
||||
if (_i16.done) break;
|
||||
_ref16 = _i16.value;
|
||||
_i17 = _iterator17.next();
|
||||
if (_i17.done) break;
|
||||
_ref17 = _i17.value;
|
||||
}
|
||||
|
||||
var game = _ref16;
|
||||
var game = _ref17;
|
||||
|
||||
if (game.name.trim().toUpperCase() === gid) {
|
||||
|
||||
@@ -2032,19 +2076,19 @@ var Client = (function () {
|
||||
get: function get() {
|
||||
|
||||
var msgs = [];
|
||||
for (var _iterator17 = this.channelCache, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _iterator17[Symbol.iterator]();;) {
|
||||
var _ref17;
|
||||
for (var _iterator18 = this.channelCache, _isArray18 = Array.isArray(_iterator18), _i18 = 0, _iterator18 = _isArray18 ? _iterator18 : _iterator18[Symbol.iterator]();;) {
|
||||
var _ref18;
|
||||
|
||||
if (_isArray17) {
|
||||
if (_i17 >= _iterator17.length) break;
|
||||
_ref17 = _iterator17[_i17++];
|
||||
if (_isArray18) {
|
||||
if (_i18 >= _iterator18.length) break;
|
||||
_ref18 = _iterator18[_i18++];
|
||||
} else {
|
||||
_i17 = _iterator17.next();
|
||||
if (_i17.done) break;
|
||||
_ref17 = _i17.value;
|
||||
_i18 = _iterator18.next();
|
||||
if (_i18.done) break;
|
||||
_ref18 = _i18.value;
|
||||
}
|
||||
|
||||
var channel = _ref17;
|
||||
var channel = _ref18;
|
||||
|
||||
msgs = msgs.concat(channel.messages);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ var Member = (function (_User) {
|
||||
|
||||
Member.prototype.addRole = function addRole(role) {
|
||||
if (this.rawRoles.indexOf(role.id) == -1) {
|
||||
console.log("wanted to add", role.id, this.rawRoles.indexOf(role.id));
|
||||
this.rawRoles.push(role.id);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -18,12 +18,7 @@ Discord.patchStrings = function () {
|
||||
defineProperty("strike", "~~");
|
||||
defineProperty("code", "`");
|
||||
defineProperty("codeblock", "```");
|
||||
|
||||
Object.defineProperty(String.prototype, "newline", {
|
||||
get: function get() {
|
||||
return this + "\n";
|
||||
}
|
||||
});
|
||||
defineProperty("newline", "\n");
|
||||
|
||||
Object.defineProperty(String.prototype, "italic", {
|
||||
get: function get() {
|
||||
|
||||
@@ -30,8 +30,8 @@ var Message = (function () {
|
||||
this.attachments = data.attachments;
|
||||
}
|
||||
|
||||
/*exports.Message.prototype.isPM = function() {
|
||||
return ( this.channel instanceof PMChannel );
|
||||
/*exports.Message.prototype.isPM = function() {
|
||||
return ( this.channel instanceof PMChannel );
|
||||
}*/
|
||||
|
||||
Message.prototype.isMentioned = function isMentioned(user) {
|
||||
|
||||
10
lib/user.js
10
lib/user.js
@@ -23,11 +23,11 @@ var User = (function () {
|
||||
};
|
||||
|
||||
User.prototype.toString = function toString() {
|
||||
/*
|
||||
if we embed a user in a String - like so:
|
||||
"Yo " + user + " what's up?"
|
||||
It would generate something along the lines of:
|
||||
"Yo @hydrabolt what's up?"
|
||||
/*
|
||||
if we embed a user in a String - like so:
|
||||
"Yo " + user + " what's up?"
|
||||
It would generate something along the lines of:
|
||||
"Yo @hydrabolt what's up?"
|
||||
*/
|
||||
return this.mention();
|
||||
};
|
||||
|
||||
3960
src/Client.js
3960
src/Client.js
File diff suppressed because it is too large
Load Diff
193
src/Member.js
193
src/Member.js
@@ -1,98 +1,97 @@
|
||||
var User = require("./user.js");
|
||||
var ServerPermissions = require("./ServerPermissions.js");
|
||||
var EvaluatedPermissions = require("./EvaluatedPermissions.js");
|
||||
|
||||
class Member extends User{
|
||||
|
||||
constructor(user, server, roles){
|
||||
super(user); // should work, we are basically creating a Member that has the same properties as user and a few more
|
||||
this.server = server;
|
||||
this.rawRoles = roles;
|
||||
}
|
||||
|
||||
get roles(){
|
||||
|
||||
var ufRoles = [ this.server.getRole(this.server.id) ];
|
||||
|
||||
for(var rawRole of this.rawRoles){
|
||||
ufRoles.push( this.server.getRole(rawRole) );
|
||||
}
|
||||
|
||||
return ufRoles;
|
||||
|
||||
}
|
||||
|
||||
get evalPerms(){
|
||||
var basePerms = this.roles, //cache roles as it can be slightly expensive
|
||||
basePerm = basePerms[0].packed;
|
||||
|
||||
basePerms = basePerms || [];
|
||||
for(var perm of basePerms){
|
||||
basePerm = basePerm | perm.packed;
|
||||
}
|
||||
|
||||
return new ServerPermissions({
|
||||
permissions : basePerm
|
||||
});
|
||||
}
|
||||
|
||||
removeRole(role){
|
||||
this.rawRoles.splice(this.rawRoles.indexOf(role.id), 1);
|
||||
}
|
||||
|
||||
addRole(role){
|
||||
if(this.rawRoles.indexOf(role.id) == -1){
|
||||
console.log("wanted to add", role.id, this.rawRoles.indexOf(role.id));
|
||||
this.rawRoles.push(role.id);
|
||||
}
|
||||
}
|
||||
|
||||
hasRole(role){
|
||||
for(var _role of this.roles){
|
||||
if(role.id === _role.id)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
permissionsIn(channel){
|
||||
|
||||
if(channel.server.ownerID === this.id){
|
||||
return new EvaluatedPermissions(4294967295); //all perms
|
||||
}
|
||||
|
||||
var affectingOverwrites = [];
|
||||
var affectingMemberOverwrites = [];
|
||||
|
||||
for(var overwrite of channel.roles){
|
||||
if(overwrite.id === this.id && overwrite.type === "member"){
|
||||
affectingMemberOverwrites.push(overwrite);
|
||||
}else if( this.rawRoles.indexOf(overwrite.id) !== -1 ){
|
||||
affectingOverwrites.push(overwrite);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
|
||||
return new EvaluatedPermissions(this.evalPerms.packed);
|
||||
}
|
||||
|
||||
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
|
||||
|
||||
for(var overwrite of affectingOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
for(var overwrite of affectingMemberOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
return new EvaluatedPermissions(finalPacked);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var User = require("./user.js");
|
||||
var ServerPermissions = require("./ServerPermissions.js");
|
||||
var EvaluatedPermissions = require("./EvaluatedPermissions.js");
|
||||
|
||||
class Member extends User{
|
||||
|
||||
constructor(user, server, roles){
|
||||
super(user); // should work, we are basically creating a Member that has the same properties as user and a few more
|
||||
this.server = server;
|
||||
this.rawRoles = roles;
|
||||
}
|
||||
|
||||
get roles(){
|
||||
|
||||
var ufRoles = [ this.server.getRole(this.server.id) ];
|
||||
|
||||
for(var rawRole of this.rawRoles){
|
||||
ufRoles.push( this.server.getRole(rawRole) );
|
||||
}
|
||||
|
||||
return ufRoles;
|
||||
|
||||
}
|
||||
|
||||
get evalPerms(){
|
||||
var basePerms = this.roles, //cache roles as it can be slightly expensive
|
||||
basePerm = basePerms[0].packed;
|
||||
|
||||
basePerms = basePerms || [];
|
||||
for(var perm of basePerms){
|
||||
basePerm = basePerm | perm.packed;
|
||||
}
|
||||
|
||||
return new ServerPermissions({
|
||||
permissions : basePerm
|
||||
});
|
||||
}
|
||||
|
||||
removeRole(role){
|
||||
this.rawRoles.splice(this.rawRoles.indexOf(role.id), 1);
|
||||
}
|
||||
|
||||
addRole(role){
|
||||
if(this.rawRoles.indexOf(role.id) == -1){
|
||||
this.rawRoles.push(role.id);
|
||||
}
|
||||
}
|
||||
|
||||
hasRole(role){
|
||||
for(var _role of this.roles){
|
||||
if(role.id === _role.id)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
permissionsIn(channel){
|
||||
|
||||
if(channel.server.ownerID === this.id){
|
||||
return new EvaluatedPermissions(4294967295); //all perms
|
||||
}
|
||||
|
||||
var affectingOverwrites = [];
|
||||
var affectingMemberOverwrites = [];
|
||||
|
||||
for(var overwrite of channel.roles){
|
||||
if(overwrite.id === this.id && overwrite.type === "member"){
|
||||
affectingMemberOverwrites.push(overwrite);
|
||||
}else if( this.rawRoles.indexOf(overwrite.id) !== -1 ){
|
||||
affectingOverwrites.push(overwrite);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
|
||||
return new EvaluatedPermissions(this.evalPerms.packed);
|
||||
}
|
||||
|
||||
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
|
||||
|
||||
for(var overwrite of affectingOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
for(var overwrite of affectingMemberOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
return new EvaluatedPermissions(finalPacked);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = Member;
|
||||
@@ -1,128 +1,128 @@
|
||||
class ServerPermissions {
|
||||
|
||||
constructor(data, server) {
|
||||
|
||||
var self = this;
|
||||
|
||||
function getBit(x) {
|
||||
return ((self.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
this.managed = data.managed || false;
|
||||
this.position = data.position || 1;
|
||||
this.hoist = data.hoist || false;
|
||||
this.color = data.color || 0;
|
||||
this.packed = data.permissions || 36953089;
|
||||
this.name = data.name || "new role";
|
||||
this.id = data.id || null;
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
return true;
|
||||
}
|
||||
return ((this.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
setBit(location, value) {
|
||||
|
||||
if (value) {
|
||||
// allow that permission
|
||||
this.packed |= (1 << location);
|
||||
|
||||
} else {
|
||||
// not allowed
|
||||
this.packed &= (1 << location);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toString() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
class ServerPermissions {
|
||||
|
||||
constructor(data, server) {
|
||||
|
||||
var self = this;
|
||||
|
||||
function getBit(x) {
|
||||
return ((self.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
this.managed = data.managed || false;
|
||||
this.position = data.position || 1;
|
||||
this.hoist = data.hoist || false;
|
||||
this.color = data.color || 0;
|
||||
this.packed = data.permissions || 36953089;
|
||||
this.name = data.name || "new role";
|
||||
this.id = data.id || null;
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
return true;
|
||||
}
|
||||
return ((this.packed >>> x) & 1) === 1;
|
||||
}
|
||||
|
||||
setBit(location, value) {
|
||||
|
||||
if (value) {
|
||||
// allow that permission
|
||||
this.packed |= (1 << location);
|
||||
|
||||
} else {
|
||||
// not allowed
|
||||
this.packed &= (1 << location);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toString() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ServerPermissions;
|
||||
Reference in New Issue
Block a user