on $*:Text:/^[.!]Scan (.*)/Si:#ThePC,#ThePC.staff: {
if ($nick !isop #) halt
if ($me !ison #ThePC) || ($me !ison #TestBots) { msg #ThePC.staff Error: I am not on $v2 | halt }
msg #ThePC.staff Checking for non IAL entries
var %x = 1, %y = 0
while (%x <= $nick(#Thepc,0)) {
if (!$ial($nick(#Thepc,%x),0)) inc %y
inc %x
}
if (%y = 0) msg #ThePC.staff All users on #ThePC were found on the IAL.
else {
msg #ThePC.staff Now retrieving hosts from non IAL entries, please run this scan again by typing /CheckChannel $1
.who #ThePC
halt
}
msg #ThePC.staff Storing users addressesses...
remini ThePCaddresses.ini Users
var %x = 1
while (%x <= $nick(#thepc,0)) {
if ($nick(#thepc,%x) == $me) noop
else writeini ThePCaddresses.ini Users $address($nick(#thepc,%x),2) Yes
inc %x
}
msg #ThePC.staff Successfully stored the addressesses of %x users
part #Thepc
join $1
if ($me !ison $1) { echo 4 -ts Error: I cannot join $1 | halt }
var %x = 1, %y = 0
while (%x <= $nick($1,0)) {
if ($nick(#thepc,%x) == $me) noop
elseif ($readini(ThePCaddresses.ini,Users,$address($nick($1,%x),2)) == Yes) {
inc %y
set -e $+(%,ThePC.User,%x) $nick($1,%x)
}
inc %x
}
echo 4 -ts %y users in $1 are also in #ThePC, check #ThePC.staff for more details
part $1
set -e %ThePC.Users %y
.timer 1 3 Continue.Scan $1
}
alias -l Continue.Scan {
join #ThePC,#ThePC.staff
msg #ThePC.staff $($+(%,ThePC.user,%x),2) users in #ThePC were also found in $1
var %x = 1
while (%x <= %ThePC.Users) {
msg #ThePC.staff $c1($+(%x,:)) $c2($($+(%,ThePC.user,%x),2)) $c1(was found in) $c2($1) $c1(- Address:) $c2($address($($+(%,ThePC.user,%x),2),2))
unset $+(%,ThePC.user,%x)
inc %x
}
unset %ThePC.Users
}
alias -l c1 return $+($chr(3),14,$1-)
alias -l c2 return $+($chr(3),04,$1-)