All pastes #914478 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-22 22:29 UTC
rendered paste body
/* MastaBot
Coded by Master
Version: 7.0
File: seenv2.mrc

Public - Seen System
*/
On *:LOAD:{ set %pub $addtok(%pub,!seen,32) }
On *:UNLOAD:{ $iif($numtok(%pub,32) > 1,set %pub $remtok(%pub,!seen,1,32),unset %pub) }
On *:SIGNAL:kill:.unload -rs $script | echo -ac info * Terminated $script $+ ...
On *:START:{
  if (!$hget(seen)) {
    if (!$exists(%b.hshpath $+ seen.hsh)) { hmake seen 1000 }
    else { hmake seen | hload seen %b.hshpath $+ seen.hsh }
  }
}
On *:EXIT:{ if ($hget(seen)) { hsave seen %b.hshpath $+ seen.hsh } }
;Seen System Core
;Format---hadd seen nick <type> <time> <extra>
On *:JOIN:#:{ hadd seen $nick Join $ctime }
On *:PART:#:{ hadd seen $nick Part $ctime }
On *:NICK:{ hadd seen $nick NickChange $ctime $newnick }
On *:QUIT:{ 
  if ($hget(seen)) && ($nick == $me) { hsave seen %b.hshpath $+ seen.hsh }
  else { hadd seen $nick Quit $ctime $network }
}

On *:TEXT:*:#:{
  if ($1 == %cmd $+ seen) {
    syscheck public $network $chan
    if ($2 == $null) { msg2 $chan $c1 Who are you looking for? | halt }
    if ($2 == $nick) { msg2 $chan $c1 You must be blind if you can't find yourself! | halt }
    if ($2 == $me) { .msg $chan $c1 $+ You aren't blind, congrats! | halt }
    if ($2 ison $chan) { .msg $chan $c1 $+ $2 is right here on the channel, if you would look! :) | halt }
    if (!$hget(seen,$2)) { msg2 $chan $c1 I have not seen $2 $+ . | halt }
    var %time $duration($calc($ctime - $rseen($2,2)))
    if ($rseen($2,$2) == NickChange) { msg2 $chan $c1 I last saw $c2 $2 changing nicks to $rseen($2,3) %time $c1 ago. }
    else { msg2 $chan $c1 I last saw $c2 $2 %time $c1 ago. }
  }
}
alias -l seen {
  hadd seen $1-
}
alias -l rseen { return $gettok($hget(seen,$1),$2,32) }