elseif ($1 == JOIN) { eircd.info join $sockname %eircd var %i 1 while %i <= $calc($count($2-,$chr(44)) + 1) { if (#* iswm $gettok($gettok($2-,%i,44),1,32)) { if ($len($gettok($gettok($2-,%i,44),1,32)) > $calc($eircd.set(server,maxchanlen) + 1)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 485 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Channel too long | return } var %x 1, %chancount 0 | while %x <= $hget(channels,0).item { if ($hget($hget(channels,%x).item,$sockname)) { inc %chancount } | inc %x } if (%chancount == $eircd.set(server,maxchans)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 485 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :You have joined the maximum ammount of channels ( $+ $eircd.set(server,maxchans) $+ ) | return } if ($hget(channels,$gettok($gettok($2-,%i,44),1,32))) { if ($istok($eircd.ban($eircd.user($sockname,3),1-),$gettok($gettok($2-,%i,44),1,32),32) == $true) { sockwrite -n $sockname : $+ $eircd.set(server,server) 474 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channle (+b) | return } if (*i* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && ($istok($hget(invite,$sockname),$gettok($gettok($2-,%i,44),1,32),32) == $false) { sockwrite -n $sockname : $+ $eircd.set(server,server) 473 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channel (+i) | return } elseif (*i* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && ($istok($hget(invite,$sockname),$gettok($gettok($2-,%i,44),1,32),32) == $true) { hadd invite $sockname $remtok($hget(invite,$sockname),$gettok($gettok($2-,%i,44),1,32),32) } if (*l* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && ($hget($gettok($gettok($2-,%i,44),1,32),0).item >= $right($eircd.chan($gettok($gettok($2-,%i,44),1,32)),3),-1)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 471 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channel (+l) | return } if (*k* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && ($gettok($gettok($2-,%i,44),2,32) != $right($eircd.chan($gettok($gettok($2-,%i,44),1,32),2),-1)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 475 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channel (+k) | return } if (*O* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && (!$eircd.ircop($sockname)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 475 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channel (+O) | return } if (*x* iswmcs $eircd.chan($gettok($gettok($2-,%i,44),1,32),1)) && ($+(*,$eircd.set(server,hostmask)) !iswm $eircd.host($sockname)) && (!$eircd.ircop($sockname)) { sockwrite -n $sockname : $+ $eircd.set(server,server) 475 $eircd.user($sockname,1) $gettok($gettok($2-,%i,44),1,32)) :Cannot join channel (+x) | return } sockwrite -n $sockname : $+ $eircd.host($sockname) JOIN $gettok($gettok($2-,%i,44),1,32) }