Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require("discord.js");
- const botconfig = require("../botconfig.json");
- const colors = require("../colors.json");
- const ms = require("ms");
- module.exports.run = async (bot, message, args) => {
- //Perms for person running command
- if(!message.member.hasPermission("MANAGE_ROLES") || !message.guild.owner) return message.channel.send("You don't have permission to use this command!");
- //Check if bot has perms
- if(!message.guild.me.hasPermission(["MANAGE_ROLES", "ADMINISTRATOR"])) return message.channel.send("I don't have permission to add roles!");
- //Return if no args for @ or ID
- let mutee = message.mentions.members.first() || message.guild.members.get(args[0]);
- if(!mutee) return message.channel.send("Please @ or give an ID mute someone!");
- //Can't mute yourself or a higher role
- if(mutee.id === message.author.id) return message.channel.send("You can't mute yourself!")
- if(mutee.highestRole.position >= message.member.highestRole.position) return message.channel.send("You can't mute mute someone who has the same role or is higher than you!")
- //Timer
- let length = args.slice(1).join(" ");
- if(!length) return message.channel.send("Please include the length of the mute!")
- //Return if no args for reason
- let reason = args.slice(2).join(" ");
- if(!reason) return message.channel.send("Please give a reason!");
- //Define mute role and if the it doesn't exist, create one
- let muterole = message.guild.roles.find(r => r.name === "Muted")
- if(!muterole) {
- try{
- muterole = await message.guild.createRole({
- name: "Muted",
- color: "bbbbbb",
- permissions: []
- })
- message.guild.channels.forEach(async (channel, id) => {
- await channel.overwritePermissions(muterole, {
- SEND_MESSAGES: false,
- ADD_REACTIONS: false,
- SPEAK: false
- })
- })
- } catch(e) {
- console.log(e.stack);
- }
- }
- //User is already muted
- if(mutee.roles.has(muterole)) return message.channel.send("This user is already muted!")
- //DM embed
- let DMembed = new Discord.RichEmbed()
- .setColor(colors.blue)
- .setAuthor("Mute Info")
- .addField("Action:", "Mute")
- .addField("Reason:", reason)
- .addField("Length", length)
- .addField("Date:", message.createdAt)
- .setFooter("Dicko Mode | Written By: SpiFFy")
- //Add role to user, send the user a DM explaining why they were muted
- mutee.addRole(muterole.id).then(() => {
- message.delete()
- mutee.send(DMembed)
- message.channel.send(`${mutee.user.username} was muted!`)
- })
- setTimeout(function() {
- mutee.removeRole(muterole.id)
- }, ms(length));
- //Send and embed to modlogs
- let moderator = message.guild.members.get(message.author.id).displayName
- let embed = new Discord.RichEmbed()
- .setColor(colors.blue)
- .setAuthor(`${message.guild.name} Modlogs`, message.guild.iconURL)
- .addField("Action:", "Mute")
- .addField("Mutee:", mutee.user.tag)
- .addField("Mutee ID:", mutee.user.id)
- .addField("Moderator:", moderator)
- .addField("Length:", length)
- .addField("Reason:", reason)
- .addField("Date:", message.createdAt)
- .setFooter("Dicko Mode | Written By: SpiFFy")
- let sChannel = bot.channels.get("671739825690509332")
- sChannel.send(embed)
- }
- module.exports.config = {
- name: "mute",
- description: "Mutes a member!",
- usage: "-mute <@user> <reason>",
- accessibleby: "Members",
- aliases: ["m"]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement