parent
78f3d6ed13
commit
7c170b9f92
@ -0,0 +1,71 @@
|
||||
const {Command, Random, ErrorMessage, ErrorType} = require('../../lib.js');
|
||||
const {EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle} = require('discord.js');
|
||||
|
||||
var Job = require('cron').CronJob;
|
||||
|
||||
class remind extends Command{
|
||||
constructor(client){
|
||||
super(client, {
|
||||
name: 'remind',
|
||||
aliases: ['remindme'],
|
||||
description: `It will send you a message after the ammount of minutes you specified. Ex: !remindme "message" 5`
|
||||
|
||||
})
|
||||
}
|
||||
async run(message, args)
|
||||
{
|
||||
if(!args[1]) return new ErrorMessage(this.client).send(ErrorType.NoArguments, message);
|
||||
if(isNaN(parseInt(args[1]))) return new ErrorMessage(this.client).send(ErrorType.Arguments,message);
|
||||
var reminderMessage = args.slice(0,-1);
|
||||
reminderMessage = new Array(reminderMessage).join(" ")
|
||||
console.log('Reminder:', message.author.id, 'wants to be reminded of', reminderMessage, 'in', args[args.length-1]);
|
||||
const embed = new EmbedBuilder()
|
||||
const randomID = Random();
|
||||
embed.setFooter({text:'Rem-chan on ', iconURL:"https://i.imgur.com/g6FSNhL.png"})
|
||||
embed.setAuthor({name:"Rem-chan", iconURL:"https://i.imgur.com/g6FSNhL.png",url:'https://rem.wordfights.com/addtodiscord'});
|
||||
embed.setColor(0x110809);
|
||||
embed.setTimestamp()
|
||||
embed.setTitle(`Reminder set.`)
|
||||
embed.addFields({name:'With the message:', value:reminderMessage})
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(randomID+0)
|
||||
.setLabel('Remove message.')
|
||||
.setStyle(ButtonStyle.Primary),
|
||||
);
|
||||
const row1 = new ActionRowBuilder()
|
||||
.addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(randomID+1)
|
||||
.setLabel('Remove reminder.')
|
||||
.setStyle(ButtonStyle.Danger),
|
||||
);
|
||||
const filter = i => i.customId.slice(0, i.customId.length-1) === randomID;
|
||||
message.channel.send({embeds: [embed], components: [row, row1] });
|
||||
|
||||
var timer = new Job(
|
||||
new Date(new Date().setMinutes(new Date().getMinutes()+parseInt(args[args.length-1]))),
|
||||
function() {
|
||||
message.author.send(reminderMessage)
|
||||
},
|
||||
null,
|
||||
true
|
||||
);
|
||||
|
||||
const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 });
|
||||
collector.on('collect', async m =>
|
||||
{
|
||||
if(m.customId[m.customId.length-1]==1) timer.stop();
|
||||
message.delete();
|
||||
m.message.delete();
|
||||
});
|
||||
collector.on('end', async m=>
|
||||
{
|
||||
message.delete();
|
||||
m.message.delete()
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
module.exports = remind;
|
Loading…
Reference in new issue