1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| const roles = require("../data/roles.json");
const fs = require("fs");
exports.run = async (bot, message, args) => {
function checkReactions(e) {
for (var { channel, message: message_id, reactions } of roles) {
for (var {emoji} of reactions) {
emoji = bot.cleanEmojiDiscriminator(e);
if (emoji === e) return true;
}
}
return false;
}
function checkMessages(id) {
for (var { channel, message: message_id, reactions } of roles) {
if (message_id.toString() === id.toString()) return true;
}
return false;
}
/* USAGE :
!rolereaction add <channel_id> <message_id> <emoji_id> <role id>
!rolereaction remove <channel_id> <message_id> <emoji_id> <role id>
*/
if (!args[0]) {
return message.reply(", tu dois préciser une commande.");
}
var cmd = args[0];
if (cmd === "add") { // adds a new rolereaction or a new emoji/role for the specified message in the specified channel
if (args[1] && args[2] && args[3] && args[4]) {
var channel = await bot.channels.get(args[1].toString()).catch (error => {
console.error(error);
return message.reply(", l'id du salon n'est pas un ID valide.");
});
var msg = await channel.fetchMessage(args[2].toString()).catch (error => {
console.error(error);
return message.reply(", l'id du message n'est pas un ID valide.");
});
var emoji = bot.cleanEmojiDiscriminator(args[3]); // This returns emoji without starting and ending :
var role = await member.guild.roles.find(r => r.id === args[1].toString()).catch (error => {
console.error(error);
return message.reply(", l'id du rôle n'est pas un ID valide.");
});
// checks if we already have this message in roles
if (checkMessages(args[2]) {
// The message was found, checking reactions
if (!checkReactions(emoji)) {
// This emoji doesn't exist in roles for this message, adding it
// TODO
} else {
// This emoji already exists
return message.reply(", cet emoji est déjà utilisé pour ce message.");
}
}
else {
// This message doesn't exist. We must create and add the message
// TODO
}
} else return message.reply(", tu dois préciser <id du salon> <id du message> <emoji> <id du rôle>.");
}
else if (cmd === "remove") {
// TODO
}
else return message.reply(", tu dois utiliser la commande add ou remove.");
}
exports.help = {
name: "rolereaction"
} |
Partager