on *:text:*:#invicta:{ writeini seen.txt $nick time $ctime writeini seen.txt $nick action text $1- if ($1 == !seen) { if ($2) { notice $nick $seenret($2) if ($2 ison $chan) { notice $nick $2 is also currently here. } } else { notice $nick You need to specify a user to check } } } on *:action:*:#invicta:{ writeini seen.txt $nick time $ctime | writeini seen.txt $nick action action $1- } on *:join:#invicta:{ writeini seen.txt $nick time $ctime | writeini seen.txt $nick action join } on *:part:#invicta:{ writeini seen.txt $nick time $ctime | writeini seen.txt $nick action part $1- } on *:quit:{ writeini seen.txt $nick time $ctime | writeini seen.txt $nick action quit $1- } on *:nick:{ writeini seen.txt $nick time $ctime | writeini seen.txt $nick action nick $newnick } alias seenret { var %time = $duration($calc($ctime - $readini(seen.txt,$1,time)),2) ago var %x = $readini(seen.txt,$1,action) if ($gettok(%x,1,32) == text) { return $1 was last seen saying: $right(%x,-5) %time } elseif ($gettok(%x,1,32) == action) { return $1 was last seen performing: $right(%x,-7) %time } elseif ($gettok(%x,1,32) == join) { return $1 was last seen joining the channel %time } elseif ($gettok(%x,1,32) == part) { return $1 was last seen parting the channel $iif($len($right(%x,-5)) >= 2,with the reason $right(%x,-5)) %time } elseif ($gettok(%x,1,32) == quit) { return $1 was last seen quitting the network with the reason $right(%x,-5) %time } elseif ($gettok(%x,1,32) == nick) { return $1 was last seen changing his/her nick from $1 to $right(%x,-5) %time } elseif (!%x) { return I have not seen $1 do anything. } }