/* 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) }