//@ts-check const { log, SEVCODES } = require('../log.js'); const { checkRole } = require('./verify.js'); const { Constants } = require('discord.js'); function modHelp() { const l = ['lock', 'unlock', 'kick', 'ban', 'unban', 'mute', 'unmute']; return l.join(", "); } function kick(guild, user) { guild.members.kick(user); } async function toggle_ban(guild, interaction, args, ban, reason) { if (ban) { guild.members.ban(args); } else { var user = args[0]; let i = 0; while (user.indexOf('#') == -1) { user += args[i]; i++ } return new Promise((resolve, reject) => { interaction.guild.bans.fetch().then((users) => { const userObj = users.filter((u) => { return (`${u.user.username}#${u.user.discriminator}` == user); }).first(); if (userObj && userObj.user) { guild.members.unban(userObj.user.id, reason).then(() => { resolve(userObj.user); }); } else { reject("This user is not in the server!"); } }) }); // //Check if the user is banned or not // message.guild.invites.fetch().then((invites) => { // const u = guild.members.cache.get(id); // u.send(`You have been unbanned from ${guild.name}, you can rejoin using the following link!\nhttps://discord.gg/${invites.first().code}`); // }); } } function toggle_mute(bot, guild, command, interaction, user, reason, mute) { const mutedRole = guild.roles.cache.find((role) => role.name.toLowerCase() === 'muted'); const guser = guild.members.cache.get(user.id); // if there is no `Muted` role, send an error if (!mutedRole) { return interaction.reply('There is no "muted" role on this server. Please create one then try again'); } if (mute) { if (guser.roles.cache.get(mutedRole.id) == undefined) { guser.roles.add(mutedRole); log(bot, interaction, command, user, reason, SEVCODES.low); } else { interaction.reply("This user is already muted!"); } } else { if (guser.roles.cache.get(mutedRole.id) != undefined) { guser.roles.remove(mutedRole); log(bot, interaction, command, user, reason, SEVCODES.none); } else { interaction.reply("This user is not muted!"); } } /* NOTE: use the following function for a "time out" type thing? setTimeout(() => { target.roles.remove(mutedRole); // remove the role },