All pastes #485224 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-12 22:50 UTC
rendered paste body
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.????
}