Add createRoleIfNotExists function

This commit is contained in:
hydrabolt
2015-10-27 16:42:32 +00:00
parent 4783b75b84
commit d08e802083
9 changed files with 2509 additions and 2454 deletions

View File

@@ -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);
}