An umute command to moderate your server better
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
module.exports = async (event, context) => {
if (context.params.event.content.startsWith(`-unmute`)) {
let canUnmute = false;
let guild = await lib.discord.guilds['@0.1.0'].retrieve({
guild_id: `${context.params.event.guild_id}`,
});
let roles = await lib.discord.guilds['@0.1.0'].roles.list({
guild_id: event.guild_id,
});
let mutedRole = roles.find((role) => {
return role.name.toLowerCase().startsWith('mute');
});
let authorRoles = roles.filter((role) => {
return event.member.roles.indexOf(role.id) > -1;
});
if (guild.owner_id === event.author.id) {
canUnmute = true;
} else {
for (let i = 0; i < authorRoles.length; i++) {
let role = authorRoles[i];
canUnmute =
role.name.toLowerCase().match(/\bmod/i) ||
role.name.toLowerCase().match(/\badmin/i) ||
role.permission_names.includes('ADMINISTRATOR');
if (canUnmute) {
break;
}
}
}
if (canUnmute) {
await lib.discord.guilds['@0.1.0'].members.roles.destroy({
role_id: mutedRole.id,
user_id: event.mentions[0].id,
guild_id: event.guild_id,
});
await lib.discord.channels['@0.1.1'].messages.create({
channel_id: event.channel_id,
content: ``,
embed: {
title: ``,
type: 'rich',
color: 0xabccff,
description: `${event.mentions[0].username} is unmuted `,
},
});
} else {
await lib.discord.channels['@0.0.6'].messages.create({
channel_id: event.channel_id,
content: `You dont have permission`
})
}
}
};