const yourID = "";
const setupCMD = ""
let initialMessage = ``;
const roles = ["", ""];
const reactions = ["", ""];
const botToken = "";
const discord = require('discord.js');
const bot = new Discord.Client();
bot.login(botToken);
if (roles.length !== reactions.length) throw "Roles list and reactions list are not the same length!";
function generateMessages(){
var messages = [];
messages.push(initialMessage);
for (let role of roles) messages.push(`Kayıt Olmak İçin **"${role}"** Emojisine Tıkla!`);
return messages;
}
bot.on("message", message => {
if (message.author.id == yourID && message.content.toLowerCase() == setupCMD){
var toSend = generateMessages();
let mappedArray = [[toSend[0], false], ...toSend.slice(1).map( (message, idx) => [message, reactions[idx]])];
for (let mapObj of mappedArray){
message.channel.send(mapObj[0]).then( sent => {
if (mapObj[1]){
sent.react(mapObj[1]);
}
});
}
}
})
bot.on('raw', event => {
if (event.t === 'MESSAGE_REACTION_ADD' || event.t == "MESSAGE_REACTION_REMOVE"){
let channel = bot.channels.get(event.d.channel_id);
let message = channel.fetchMessage(event.d.message_id).then(msg=> {
let user = msg.guild.members.get(event.d.user_id);
if (msg.author.id == bot.user.id && msg.content != initialMessage){
var re = `\\*\\*"(.+)?(?="\\*\\*)`;
var role = msg.content.match(re)[1];
if (user.id != bot.user.id){
var roleObj = msg.guild.roles.find(r => r.name === role);
var memberObj = msg.guild.members.get(user.id);
if (event.t === "MESSAGE_REACTION_ADD"){
memberObj.addRole(roleObj)
} else {
memberObj.removeRole(roleObj);
}
}
}
})
}
});