This is a fair bit longer, but I think it covers what you're asking for.
on me:*:join;#:{
.enable #who_chan
.who $chan
}
on !*:join:#:{
.enable #whois_chan
.whois $nick
}
#who_chan off
raw 352:*:{
if $6 != $me {
.hadd -m Who_chan $6 $true
}
}
raw 315:*:{
.disable #who_chan
haltdef
var %a = 1, %b = $hget(Who_chan,0).item
while %a <= %b {
.enable #whois_chan
.whois $hget(Who_chan,%a).item
inc %a
}
}
#who_chan end
#whois_chan off
raw 318:*:{
.disable #whois_chan
haltdef
}
raw *:*:{
if $istok(301 310 311 312 313 317,$numeric,32) {
echo -a $2-
}
}
#whois_chan end
When you join a channel, the IAL is forced to update through the usage of the /who
Next, each nick that is in the channel, skipping your own nick, has a /whois performed on it.
The information returned from the /whois is displayed in your active window, since you didn't indicate what you wanted done with that information.
If a nick joins the channel after you did, then that nick is whoised.
If I misunderstood what you were wanting, or if I missed details that you did give, let me know and/or clarify, and I'll do my best.