5 ...")]15 12function15 14in5(3$args5,15 5\15Irc5\15Client 3$bot5,15 5\15knivey5\15cmdr5\15Request 3$req5)15 5{15 5\15Amp5\14asyncCall5(12function15 5()15 12use15 5(3$args5,15 3$bot5,15 3$req5)15 5{15 3$duration15 5=15 12new15 14Duration5(3$req5->15args5['time']);15 5//Because the Duration lib is PECULIAR it resets its value to 0 after do 5ing outputs15 5//And also lingers data in the output, really i need to find another lib 3$in15 5=15 3$duration5->14toSeconds5();15 12if5(3$in15 5<15 6155)15 5{15 3$bot5->14pm5(3$args5->15chan5,15 5"Give me a proper duration of at least 15 seco 5nds with no spaces (Ex: 1h10m15s or 1:10:15)");15 12return5;15 5}15 R5::14selectDatabase5(15REMINDERDB5);15 3$r15 5=15 R5::14dispense5("reminder");15 3$r5->15nick 5=15 3$args5->15nick5;15 3$r5->15chan 5=15 3$args5->15chan5;15 3$r5->15at 5=15 14time5()15 5+15 3$in5;15 3$r5->15sent 5=15 605;15 3$r5->15msg 5=15 3$req5->15args5['msg'];15 R5::14store5(3$r5);15 3$bot5->14pm5(3$args5->15chan5,15 5"Ok, I'll remind you in "15 5.15 5(12new15 14Duration5(3$in5))->14h 14umanize5());15 yield from 14sendDelayed5(3$bot5,15 3$r5,15 3$in5);15 5});15 5}15 5/* 0TODO5, this actually needs to parse more than one word(arg) for the timestamp 5so its a bit complicated to do15 5#[Cmd("at")]15 5#[Syntax("