ipdbot/functions/rolereaction.js
2022-04-18 15:32:07 +02:00

83 lines
No EOL
3.5 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const { client, logch } = require("../index.js");
const logger = require("./logger.js");
module.exports = {
// cache messages
cache: function () {
console.log("Caching messages...");
const msgFiles = fs.readdirSync('./data/messages/').filter(file => file.endsWith('.json'));
for (const file of msgFiles) {
idChMsg = file.replace('.json', '').split(/\o+/);
console.log(idChMsg);
try {
client.channels.cache.get(idChMsg[0]).messages.fetch(idChMsg[1])
} catch (error) {
console.error(error);
}
}
},
// give a role
give: function (reaction, user) {
fileMessage = `${reaction.message.channel.id}o${reaction.message.id}`;
fs.stat(`./data/messages/${fileMessage}.json`, function (err, stat) {
if (err == null) {
try {
member = reaction.message.guild.members.cache.find(mem => mem.user.id == user.id);
msginfo = JSON.parse(fs.readFileSync(path.resolve(`./data/messages/${fileMessage}.json`)));
for (let index = 1; index < msginfo.reactnumber + 1; index++) {
eval(`
if (msginfo.action${index} && msginfo.emoj${index} == reaction.emoji.name && msginfo.action${index} != "none") {
roleactionID = msginfo.action${index};
console.log(roleactionID);
memberRole = reaction.message.guild.roles.cache.find(role => role.id == roleactionID);
member.roles.add(memberRole);
logger.all(user.tag + " a obtenu le rôle par réaction : " + memberRole.name);
}`);
}
} catch (err) {
console.error(err);
}
} else {
null;
//console.log('Error: ', err.code);
}
});
},
// give a role
remove: function (reaction, user) {
fileMessage = `${reaction.message.channel.id}o${reaction.message.id}`;
fs.stat(`./data/messages/${fileMessage}.json`, function (err, stat) {
if (err == null) {
try {
member = reaction.message.guild.members.cache.find(mem => mem.user.id == user.id);
msginfo = JSON.parse(fs.readFileSync(path.resolve(`./data/messages/${fileMessage}.json`)));
for (let index = 1; index < msginfo.reactnumber + 1; index++) {
eval(`
if (msginfo.action${index} && msginfo.emoj${index} == reaction.emoji.name && msginfo.action${index} != "none") {
roleactionID = msginfo.action${index};
console.log(roleactionID);
memberRole = reaction.message.guild.roles.cache.find(role => role.id == roleactionID);
member.roles.remove(memberRole);
logger.all(user.tag + " a enlevé son rôle par réaction : " + memberRole.name);
}`);
}
} catch (err) {
console.error(err);
}
} else {
null;
//console.log('Error: ', err.code);
}
});
},
}