Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const ms = require("ms");
- const Discord = require("discord.js")
- module.exports.run = async (client, message, args) => {
- if (!message.member.hasPermission("MENTION_EVERYONE")) {
- return message.channel.sendMessage("Lacking permissions");
- }
- if (!client.mute) client.mute = [];
- let toMute = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
- if (!toMute) return message.channel.sendMessage("Please specify a user!");
- if (toMute.id === message.author.id) return message.channel.send("You can't mute yourself")
- if (toMute.highestRole.position >= message.member.highestRole.position) return message.channel.sendMessage("Cannot mute a higher member");
- let time = args[1];
- if (!time) return message.channel.send("You must set a duration for the mute.");
- let role = message.guild.roles.find(r => r.name === "ModBot Muted");
- if (!role) {
- try {
- role = await message.guild.createRole({
- name: "ModBot Muted",
- color: "#abaaaf",
- permissions: []
- });
- message.guild.channels.forEach(async (channel, id) => {
- await channel.overwritePermissions(role, {
- SEND_MESSAGES: false,
- ADD_REACTIONS: false
- })
- });
- } catch (e) {
- console.log(e.stack)
- }
- }
- if (toMute.roles.has(role.id)) return message.channel.sendMessage("User is already muted");
- toMute.addRole(role);
- let muteEmbed = new Discord.RichEmbed()
- .setAuthor("ModBot Mute")
- .setDescription(`${toMute.user} has been muted!`)
- .addField("Duration", `${ms(ms(time), {long: true})}`)
- .addField("Staff Member", `${message.author}`)
- .setColor("#6b42f4")
- message.channel.send(muteEmbed)
- setTimeout(function () {
- toMute.removeRole(role);
- let muteNotification = new Discord.RichEmbed()
- .setAuthor("ModBot Notification")
- .setDescription(`Your mute has expired. You can now chat again!`)
- .setColor("#6b42f4")
- toMute.send(muteNotification)
- }, ms(time))
- }
- module.exports.help = {
- name: "mute"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement