Add time parser for timer command
* Fix grammar * Fix countdown off by 4 seconds
This commit is contained in:
parent
5f4a0056d7
commit
e676730f0c
2 changed files with 22 additions and 3 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
const parseTime = require('../../util/parseTime');
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "timer",
|
name: "timer",
|
||||||
description: "Set a timer for a time in minutes.",
|
description: "Set a timer for a time in minutes.",
|
||||||
|
@ -5,14 +6,13 @@ module.exports = {
|
||||||
execute({message, args}) {
|
execute({message, args}) {
|
||||||
if(args.length < 2)
|
if(args.length < 2)
|
||||||
return message.channel.send("Please specify a time in minutes, and a message to send after the timer has finished");
|
return message.channel.send("Please specify a time in minutes, and a message to send after the timer has finished");
|
||||||
let time = parseInt(args[0]);
|
let time = parseTime(args[0]);
|
||||||
if(isNaN(time))
|
if(isNaN(time))
|
||||||
return message.channel.send("Specify a time in number of minutes");
|
return message.channel.send("Specify a time in number of minutes");
|
||||||
time = time * 60000;
|
|
||||||
let sendText = args.slice(1).join(" ");
|
let sendText = args.slice(1).join(" ");
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
message.channel.send(`<@${message.author.id}>, ${sendText}`);
|
message.channel.send(`<@${message.author.id}>, ${sendText}`);
|
||||||
}, time);
|
}, time);
|
||||||
message.channel.send(`I will remind you in <t:${Math.floor(new Date() / 1000) + (time / 1000)}:R>`);
|
message.channel.send(`I will remind you <t:${Math.floor(new Date() / 1000) + (time / 1000) - 4}:R>`);
|
||||||
}
|
}
|
||||||
};
|
};
|
19
util/parseTime.js
Normal file
19
util/parseTime.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
module.exports = function(time){
|
||||||
|
let timeInMilliseconds = parseInt(time.slice(0, time.length - 1))
|
||||||
|
let letter = time.slice(time.length - 1)
|
||||||
|
if(!isNaN(letter)) return parseInt(time) * 60000
|
||||||
|
switch (letter.toUpperCase()) {
|
||||||
|
case "H":
|
||||||
|
timeInMilliseconds = timeInMilliseconds * 3600000; // 3 600 000
|
||||||
|
break;
|
||||||
|
case "M":
|
||||||
|
timeInMilliseconds = timeInMilliseconds * 60000; // 60 000
|
||||||
|
break;
|
||||||
|
case "S":
|
||||||
|
timeInMilliseconds = timeInMilliseconds * 1000; // 1 000
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
timeInMilliseconds = -1;
|
||||||
|
}
|
||||||
|
return timeInMilliseconds;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue