mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
added createRole, updateRole and deleteRole
This commit is contained in:
@@ -456,6 +456,100 @@ var InternalClient = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
// def createRole
|
||||
|
||||
InternalClient.prototype.createRole = function createRole(server, data) {
|
||||
var self = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
server = self.resolver.resolveServer(server);
|
||||
|
||||
request.post(Endpoints.SERVER_ROLES(server.id)).set("authorization", self.token).end(function (err, res) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
|
||||
var role = server.roles.add(new Role(res.body, server, self.client));
|
||||
|
||||
if (data) {
|
||||
|
||||
self.updateRole(role, data).then(resolve)["catch"](reject);
|
||||
} else {
|
||||
resolve(role);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// def updateRole
|
||||
|
||||
InternalClient.prototype.updateRole = function updateRole(role, data) {
|
||||
var self = this;
|
||||
data = data || {};
|
||||
data.permissions = data.permissions || [];
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
var server = self.resolver.resolveServer(role.server);
|
||||
|
||||
var permissions = 0;
|
||||
for (var _iterator2 = data.permissions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||
var _ref2;
|
||||
|
||||
if (_isArray2) {
|
||||
if (_i2 >= _iterator2.length) break;
|
||||
_ref2 = _iterator2[_i2++];
|
||||
} else {
|
||||
_i2 = _iterator2.next();
|
||||
if (_i2.done) break;
|
||||
_ref2 = _i2.value;
|
||||
}
|
||||
|
||||
var perm = _ref2;
|
||||
|
||||
if (perm instanceof String || typeof perm === "string") {
|
||||
permissions |= Constants.Permissions[perm] || 0;
|
||||
} else {
|
||||
permissions |= perm;
|
||||
}
|
||||
}
|
||||
|
||||
data.color = data.color || 0;
|
||||
|
||||
request.patch(Endpoints.SERVER_ROLES(server.id) + "/" + role.id).set("authorization", self.token).send({
|
||||
color: data.color || role.color,
|
||||
hoist: data.hoist || role.hoist,
|
||||
name: data.name || role.name,
|
||||
permissions: permissions
|
||||
}).end(function (err, res) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
var nrole = new Role(res.body, server, self.client);
|
||||
resolve(server.roles.update(role, nrole));
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// def deleteRole
|
||||
|
||||
InternalClient.prototype.deleteRole = function deleteRole(role) {
|
||||
var self = this;
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
request.del(Endpoints.SERVER_ROLES(role.server.id) + "/" + role.id).set("authorization", self.token).end(function (err, res) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
// the ws cache will handle it
|
||||
// role.server.roles.remove(role);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
InternalClient.prototype.sendWS = function sendWS(object) {
|
||||
if (this.websocket) this.websocket.send(JSON.stringify(object));
|
||||
};
|
||||
@@ -593,19 +687,19 @@ var InternalClient = (function () {
|
||||
var server = self.servers.get("id", data.id);
|
||||
if (server) {
|
||||
|
||||
for (var _iterator2 = server.channels, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||
var _ref2;
|
||||
for (var _iterator3 = server.channels, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
||||
var _ref3;
|
||||
|
||||
if (_isArray2) {
|
||||
if (_i2 >= _iterator2.length) break;
|
||||
_ref2 = _iterator2[_i2++];
|
||||
if (_isArray3) {
|
||||
if (_i3 >= _iterator3.length) break;
|
||||
_ref3 = _iterator3[_i3++];
|
||||
} else {
|
||||
_i2 = _iterator2.next();
|
||||
if (_i2.done) break;
|
||||
_ref2 = _i2.value;
|
||||
_i3 = _iterator3.next();
|
||||
if (_i3.done) break;
|
||||
_ref3 = _i3.value;
|
||||
}
|
||||
|
||||
var channel = _ref2;
|
||||
var channel = _ref3;
|
||||
|
||||
self.channels.remove(channel);
|
||||
}
|
||||
@@ -841,7 +935,7 @@ var InternalClient = (function () {
|
||||
client.emit("userTypingStart", user, channel);
|
||||
}
|
||||
setTimeout(function () {
|
||||
if (Date.now() - user.typing.since > 5990) {
|
||||
if (Date.now() - user.typing.since > 5500) {
|
||||
// they haven't typed since
|
||||
user.typing.since = null;
|
||||
user.typing.channel = null;
|
||||
|
||||
Reference in New Issue
Block a user