1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
const { Command } = require('discord.js-commando');
const emoji = require('emoji-random');
module.exports = class ClearUtility extends Command {
constructor(client) {
super(client, {
name: 'clear',
aliases: ['delete', 'del', 'c', 'd'],
group: 'utility',
memberName: 'clear',
description: 'clear an ammount of messages',
guildOnly: true,
args: [
{
key: 'deleteAmount',
prompt: 'how many messages would u like to delete?',
type: 'integer'
}
],
examples: [
's5n!clear 23',
's5n!delete 75',
's5n!del 32',
's5n!c 45',
's5n!d 84'
]
});
}
async run(msg, { deleteAmount }) {
if (msg.member.hasPermission('MANAGE_MESSAGES')) {
if (!deleteAmount) {
msg.reply('you haven\'t specified an amount of messages which should be deleted.').then(deleteNotificationMessage => {
deleteNotificationMessage.delete({ timeout: 1000 });
});
} else if (isNaN(deleteAmount)) {
msg.reply('the amount parameter isn\'t a number.').then(deleteNotificationMessage => {
deleteNotificationMessage.delete({ timeout: 1000 });
});
} else if (deleteAmount > 100) {
msg.reply('you can\'t delete more than 100 messages at once.').then(deleteNotificationMessage => {
deleteNotificationMessage.delete({ timeout: 1000 });
});
} else if (deleteAmount < 1) {
msg.reply('you have to delete at least 1 message.').then(deleteNotificationMessage => {
deleteNotificationMessage.delete({ timeout: 1000 });
});
}
/*else if (msg.createdTimestamp > 1209600) {
msg.reply('due to discord rules, bots can only bulk delete messages that are under 14 days old :(')
} */
else {
var clearAmount = deleteAmount + 1;
// It took me so long to figure out why this was not really working. It would delete but an insane amount at a time.
// I realized that because it was getting parsed as a string, it would just add 1 to it so if I tried to delete 1
// message, it would delete 11 lol. Fixed by parsing as integer THEN adding one. 02:30 2020/04/03/2020
await msg.channel.messages.fetch({
limit: clearAmount
}).then(messages => { // I am on v11 discord.js
msg.channel.bulkDelete(messages);
});
msg.reply('it\'s been deleted ~uwu ' + emoji.random()).then(deleteNotificationMessage => {
deleteNotificationMessage.delete({ timeout: 1000 });
});
}
} else {
msg.reply('insufficent perms bruh');
}
}
};
|