mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 20:13:30 +01:00
Improved role creation
This commit is contained in:
@@ -66,7 +66,7 @@ var Client = (function () {
|
|||||||
this.checkingQueue = {};
|
this.checkingQueue = {};
|
||||||
this.userTypingListener = {};
|
this.userTypingListener = {};
|
||||||
this.queue = {};
|
this.queue = {};
|
||||||
|
this.guildRoleCreateIgnoreList = {};
|
||||||
this.__idleTime = null;
|
this.__idleTime = null;
|
||||||
this.__gameId = null;
|
this.__gameId = null;
|
||||||
}
|
}
|
||||||
@@ -714,14 +714,15 @@ var Client = (function () {
|
|||||||
return prom;
|
return prom;
|
||||||
};
|
};
|
||||||
|
|
||||||
Client.prototype.createRole = function createRole(dest) {
|
Client.prototype.createRole = function createRole(dest, data) {
|
||||||
var cb = arguments.length <= 1 || arguments[1] === undefined ? function (err, perm) {} : arguments[1];
|
var cb = arguments.length <= 2 || arguments[2] === undefined ? function (err, perm) {} : arguments[2];
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
var ddest = self.resolveServerID(dest);
|
var ddest = self.resolveServerID(dest);
|
||||||
|
var server = self.getServer("id", ddest);
|
||||||
|
|
||||||
request.post(Endpoints.SERVERS + "/" + ddest + "/roles").set("authorization", self.token).end(function (err, res) {
|
request.post(Endpoints.SERVERS + "/" + ddest + "/roles").set("authorization", self.token).end(function (err, res) {
|
||||||
|
|
||||||
@@ -730,10 +731,23 @@ var Client = (function () {
|
|||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var perms = self.getServer("id", ddest).addRole(res.body);
|
var moddedPerm = new ServerPermissions(res.body, server);
|
||||||
|
|
||||||
resolve(perms);
|
for (var key in data) {
|
||||||
cb(null, perms);
|
moddedPerm[key] = data[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
var perms = server.addRole(res.body);
|
||||||
|
self.guildRoleCreateIgnoreList[res.body.id] = function () {
|
||||||
|
|
||||||
|
self.updateRole(server, moddedPerm).then(function (perm) {
|
||||||
|
cb(null, perm);
|
||||||
|
resolve(perm);
|
||||||
|
})["catch"](function (err) {
|
||||||
|
cb(err);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1182,6 +1196,13 @@ var Client = (function () {
|
|||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = data.role;
|
var role = data.role;
|
||||||
|
|
||||||
|
if (self.guildRoleCreateIgnoreList[data.role.id]) {
|
||||||
|
server.addRole(role);
|
||||||
|
self.guildRoleCreateIgnoreList[data.role.id]();
|
||||||
|
self.guildRoleCreateIgnoreList[data.role.id] = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
self.trigger("serverRoleCreate", server, server.addRole(role));
|
self.trigger("serverRoleCreate", server, server.addRole(role));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ class Client {
|
|||||||
this.checkingQueue = {};
|
this.checkingQueue = {};
|
||||||
this.userTypingListener = {};
|
this.userTypingListener = {};
|
||||||
this.queue = {};
|
this.queue = {};
|
||||||
|
this.guildRoleCreateIgnoreList = {};
|
||||||
this.__idleTime = null;
|
this.__idleTime = null;
|
||||||
this.__gameId = null;
|
this.__gameId = null;
|
||||||
}
|
}
|
||||||
@@ -759,13 +759,14 @@ class Client {
|
|||||||
return prom;
|
return prom;
|
||||||
}
|
}
|
||||||
|
|
||||||
createRole(dest, cb = function (err, perm) { }) {
|
createRole(dest, data, cb = function (err, perm) { }) {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
var ddest = self.resolveServerID(dest);
|
var ddest = self.resolveServerID(dest);
|
||||||
|
var server = self.getServer("id", ddest);
|
||||||
|
|
||||||
request
|
request
|
||||||
.post(`${Endpoints.SERVERS}/${ddest}/roles`)
|
.post(`${Endpoints.SERVERS}/${ddest}/roles`)
|
||||||
@@ -777,10 +778,27 @@ class Client {
|
|||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var perms = self.getServer("id", ddest).addRole(res.body);
|
var moddedPerm = new ServerPermissions(res.body, server);
|
||||||
|
|
||||||
|
for (var key in data) {
|
||||||
|
moddedPerm[key] = data[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
var perms = server.addRole(res.body);
|
||||||
|
self.guildRoleCreateIgnoreList[res.body.id] = function () {
|
||||||
|
|
||||||
|
self.updateRole(server, moddedPerm)
|
||||||
|
.then((perm) => {
|
||||||
|
cb(null, perm);
|
||||||
|
resolve(perm);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
cb(err);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
resolve(perms);
|
|
||||||
cb(null, perms);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -926,12 +944,12 @@ class Client {
|
|||||||
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
|
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
|
||||||
|
|
||||||
var channel = self.getChannel("id", data.channel_id);
|
var channel = self.getChannel("id", data.channel_id);
|
||||||
|
|
||||||
for (var mention of data.mentions) {
|
for (var mention of data.mentions) {
|
||||||
var user = self.addUser(mention);
|
var user = self.addUser(mention);
|
||||||
mentions.push( channel.server.getMember("id", user.id) || user );
|
mentions.push(channel.server.getMember("id", user.id) || user);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (channel) {
|
if (channel) {
|
||||||
var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", self.addUser(data.author).id)));
|
var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", self.addUser(data.author).id)));
|
||||||
self.trigger("message", msg);
|
self.trigger("message", msg);
|
||||||
@@ -973,7 +991,7 @@ class Client {
|
|||||||
var mentions = [];
|
var mentions = [];
|
||||||
for (var mention of data.mentions) {
|
for (var mention of data.mentions) {
|
||||||
var user = self.addUser(mention);
|
var user = self.addUser(mention);
|
||||||
mentions.push( channel.server.getMember("id", user.id) || user );
|
mentions.push(channel.server.getMember("id", user.id) || user);
|
||||||
}
|
}
|
||||||
|
|
||||||
var newMessage = new Message(info, channel, mentions, formerMessage.author);
|
var newMessage = new Message(info, channel, mentions, formerMessage.author);
|
||||||
@@ -1197,6 +1215,13 @@ class Client {
|
|||||||
var server = self.getServer("id", data.guild_id);
|
var server = self.getServer("id", data.guild_id);
|
||||||
var role = data.role;
|
var role = data.role;
|
||||||
|
|
||||||
|
if (self.guildRoleCreateIgnoreList[data.role.id]) {
|
||||||
|
server.addRole(role);
|
||||||
|
self.guildRoleCreateIgnoreList[data.role.id]();
|
||||||
|
self.guildRoleCreateIgnoreList[data.role.id] = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
self.trigger("serverRoleCreate", server, server.addRole(role));
|
self.trigger("serverRoleCreate", server, server.addRole(role));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -1472,14 +1497,14 @@ class Client {
|
|||||||
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
|
data.mentions = data.mentions || []; //for some reason this was not defined at some point?
|
||||||
|
|
||||||
var channel = self.getChannel("id", data.channel_id);
|
var channel = self.getChannel("id", data.channel_id);
|
||||||
|
|
||||||
for (var mention of data.mentions) {
|
for (var mention of data.mentions) {
|
||||||
var user = self.addUser(mention);
|
var user = self.addUser(mention);
|
||||||
mentions.push(channel.server.getMember("id", user.id) || user);
|
mentions.push(channel.server.getMember("id", user.id) || user);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (channel) {
|
if (channel) {
|
||||||
var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id",data.author.id)));
|
var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", data.author.id)));
|
||||||
resolve(msg);
|
resolve(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,11 @@ mybot.on("message", function (message) {
|
|||||||
var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4);
|
var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4);
|
||||||
perms = JSON.parse(perms);
|
perms = JSON.parse(perms);
|
||||||
|
|
||||||
mybot.reply(message, message.sender.server.name);
|
mybot.createRole(message.channel.server, {
|
||||||
|
color : Discord.Colors.GREEN
|
||||||
|
}).then((perm) => {
|
||||||
|
mybot.addMemberToRole(message.channel.server, perm, message.sender).then(console.log).catch(error);
|
||||||
|
}).catch(error);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user