diff options
| author | 8cy <[email protected]> | 2020-04-15 02:58:49 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-15 02:58:49 -0700 |
| commit | f4776cce45fba4380d6652fef5b9a6fbf78f8e16 (patch) | |
| tree | 1fbdc404a6d4d8b6a8cd17cc26602b6e7d6c639e /src/commands/utility/clear.js | |
| parent | The Start (diff) | |
| download | dep-core-test.tar.xz dep-core-test.zip | |
The Uwuficationtest
Diffstat (limited to 'src/commands/utility/clear.js')
| -rw-r--r-- | src/commands/utility/clear.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/commands/utility/clear.js b/src/commands/utility/clear.js new file mode 100644 index 0000000..6871cca --- /dev/null +++ b/src/commands/utility/clear.js @@ -0,0 +1,72 @@ +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: 'Clears a specified amount of messages.', + guildOnly: true, + args: [ + { + key: 'deleteAmount', + prompt: 'How many messages would you like to delete?', + type: 'integer' + } + ], + examples: [ + 'uwu!clear 23', + 'uwu!delete 75', + 'uwu!del 32', + 'uwu!c 45', + 'uwu!d 84' + ], + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'MANAGE_MESSAGES'] + }); + } + 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. ' + emoji.random()).then(deleteNotificationMessage => { + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (isNaN(deleteAmount)) { + msg.reply('The amount parameter isn\'t a number. ' + emoji.random()).then(deleteNotificationMessage => { + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (deleteAmount > 100) { + msg.reply('You can\'t delete more than 100 messages at once. ' + emoji.random()).then(deleteNotificationMessage => { + deleteNotificationMessage.delete({ timeout: 1000 }); + }); + } else if (deleteAmount < 1) { + msg.reply('You have to delete at least 1 message. ' + emoji.random()).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. ' + emoji.random()); + } + } +};
\ No newline at end of file |