Add roles update and fixed reaction-roles bug

This commit is contained in:
CorwinDev 2023-01-09 19:05:55 +01:00
parent e9aa9cabae
commit 3d622cc370
2 changed files with 49 additions and 1 deletions

View file

@ -18,6 +18,7 @@ module.exports = async (client, interaction, args) => {
const map = Object.keys(data.Roles)
.map((value, index) => {
const role = interaction.guild.roles.cache.get(data.Roles[value][0]);
if(!role) return;
return `${data.Roles[value][1].raw} | ${role}`;
}).join("\n");
@ -31,6 +32,7 @@ module.exports = async (client, interaction, args) => {
const mapped = Object.keys(data.Roles).map((value, index) => {
const role = interaction.guild.roles.cache.get(data.Roles[value][0]);
if(!role) return;
const generated = {
label: `${role.name}`,
@ -51,7 +53,14 @@ module.exports = async (client, interaction, args) => {
title: `${upper}・Roles`,
desc: `_____ \n\nChoose your roles in the menu! \n\n${map}`,
components: [row]
}, channel).then((msg) => {
}, channel).then(async(msg) => {
if(!msg){
client.errNormal({
error: "I couldn't send the message!\nMake sure I have the correct permissions!",
type: 'editreply'
}, interaction);
return;
}
data.Message = msg.id;
data.save();
})

View file

@ -0,0 +1,39 @@
const Discord = require('discord.js');
/**
*
* @param {Discord.Client} client
* @param {Discord.GuildMember} oldMember
* @param {Discord.GuildMember} newMember
* @returns
*/
module.exports = async (client, oldMember, newMember) => {
if (!oldMember || !newMember) return;
const removedRoles = oldMember.roles.cache.filter(role => !newMember.roles.cache.has(role.id));
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
if (removedRoles.size === 0 && addedRoles.size === 0 || removedRoles.size === addedRoles.size) return;
const logsChannel = await client.getLogs(newMember.guild.id);
if (!logsChannel) return;
var ostring = "";
if (removedRoles.size === 0) ostring = "No roles removed";
if (removedRoles.size > 0) removedRoles.forEach(element => { ostring += "<@&" + element + "> " });
var nstring = "";
if (addedRoles.size > 0) addedRoles.forEach(element => { nstring += "<@&" + element + "> " });
client.embed({
title: `${newMember.user.username} roles adjusted`,
desc: `There are roles changed`,
fields: [
{
name: `> Old Roles`,
value: `- ${ostring}`
},
{
name: `> New Roles`,
value: `- ${nstring}`
},
]
}, logsChannel).catch(() => { })
};