Message
Message
public constructor() {
super({
name: 'mute',
aliases: ['m'],
desc: 'Mute a user',
usage: '<prefix>mute <User> <Time>? <Note>?',
info: 'If no time or note specified default values will be used.
' +
'Valid times include (M)in, (H)our, (D)ay. Examples:\n\n' +
'1m or 1min : 1 Minute\n' +
'2h or 2hours : 2 hours\n' +
'3d or 3day : 3 Days\n\n' +
'To unmute someone see <prefix>unmute',
group: 'modtools',
guildOnly: true,
roles: ['admin']
});
}
// no user specified
if (!args[0])
return message.channel.send('Please provide a user to search
for.');
// if no mentions, plaintext
} else {
// Check if it's a user ID first
if (idRegex.test(args[0])) {
try { user = await
message.client.fetchUser(args[0].match(idRegex)[0]); }
catch (err) { return message.channel.send(`Could not
locate user **${args[0]}** from ID argument.`); }
// user found
if (results.length === 1) {
// create user variables
user = results[0].original;
} else {
// be more specfic
if (results.length === 0)
return message.channel.send(`**$
{results.length}** users found. Please be more specific.`);
else
return message.channel.send(`**$
{results.length}** users found: \`${results.map((el: any) => { return
el.original.username; }).join('\`, \`')}\`. Please be more specific. You may need
to use a User Mention or use the User ID.`);
}
}
}
} else {
return message.channel.send(`No users found. Please specify a
user by User Mention, User ID, or Display Name.`);
}
if (user) {
// Get milliseconds of mute length, otherwise set default
let muteTimeMS: number;
let muteTimeHUMN: string;
let noteIndex: number;
if (args[1]) {
muteTimeMS = Time.parseShorthand(args[1]);
muteTimeHUMN = args[1];
noteIndex = 2;
}
if (!muteTimeMS) {
muteTimeMS = 1200000;
muteTimeHUMN = '20m';
noteIndex = 1;
}
if (mutedUser.roles.has(message.guild.roles.get(await
guildStorage.settings.get('mutedrole')).id)) {
message.channel.send('User is already muted.');
return message.delete();
}