on $*:TEXT:/^!event ([^ ]+) (.+)$/Si:#events:{
if ($nick($chan,$nick,ho)) {
var %time = $regml(1), %event = $regml(2)
if (!$regex(%time,/^([0-9]{1,2}):([0-9]{2})$/S)) .notice $nick Invalid time format - must be <hours>:<minutes>
elseif ($gettok(%time,1,58) !isnum 0-23) || ($gettok(%time,2,58) !isnum 0-59) .notice $nick Invalid time.
else {
set %event.name %event
set %event.time %time
.timer 1 $calc(($ctime($asctime(mmmm d yyyy) %time) - 12600) - $ctime) start.countdown
.notice $nick Countdown will begin in $+($duration($calc(($ctime($asctime(mmmm d yyyy) %time) - 12600) - $ctime)),.)
}
}
}
alias -l start.countdown {
.timerdisplay 5 300 display.event
msg #events The event $qt(%event.name) will start in 30 minutes.
}
alias -l display.event {
msg #events The event $qt(%event.name) will start in $calc(($timer(display).reps + 1) * 5) minutes.
if ($timer(display).reps == 0) .timer5mins 4 60 last5mins
}
alias -l last5mins {
msg #events The event $qt(%event.name) will start in $calc($timer(5mins).reps) $iif($timer(5mins).reps == 0,minute.,minutes.)
if ($timer(5mins).reps == 0) .timer 1 60 event.start
}
alias -l event.start {
The event $qt(%event.name) is now starting!
unset %event.????
}