Add or remove a mute role to a user in your server by right clicking them and selecting "Toggle Mute". Requires you to have a mute role set up, as well as a context menu item that you create by calling this API: https://autocode.com/lib/discord/contextmenu/#items-create. The context menu item must be named "Toggle Mute" for this snippet to work.
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
if (!context.params.event.member.roles.includes(process.env.ADMIN_ROLE_ID)) {
return lib.discord.channels['@0.2.0'].messages.create({
channel_id: `${context.params.event.channel_id}`,
content: `Sorry, <@!${context.params.event.member.user.id}>! You don't have permission to use this.`
});
}
let mutedUserId = context.params.event.data.resolved.users[0].id;
if (!context.params.event.data.resolved.members[0].roles.includes(process.env.MUTE_ROLE_ID)) {
await lib.discord.guilds['@0.1.0'].members.roles.update({
role_id: `${process.env.MUTE_ROLE_ID}`,
user_id: mutedUserId,
guild_id: `${context.params.event.guild_id}`
});
await lib.discord.channels['@0.2.0'].messages.create({
channel_id: `${context.params.event.channel_id}`,
content: `<@!${context.params.event.member.user.id}> muted <@!${mutedUserId}>!`
});
} else {
await lib.discord.guilds['@0.1.0'].members.roles.destroy({
role_id: `${process.env.MUTE_ROLE_ID}`,
user_id: mutedUserId,
guild_id: `${context.params.event.guild_id}`
});
await lib.discord.channels['@0.2.0'].messages.create({
channel_id: `${context.params.event.channel_id}`,
content: `<@!${context.params.event.member.user.id}> unmuted <@!${mutedUserId}>!`
});
}