;; mIRCd by Hamish ;; Pure leet alias mircd { hadd -m mircd users 0 hadd -m mircd socket 0 hmake users 100 hmake nicks 100 hmake ircops 100 hmake channels 100 hmake invite 100 hmake gline 100 hmake bans 100 hmake away 100 hmake onchans 100 socklisten mircd 6667 } alias dmircd { hfree mircd hfree users hfree nicks hfree ircops hfree channels hfree invite hfree gline hfree bans hfree away hfree onchans sockclose mircd* } alias sendx { var %chan $1 var %line $2- var %a 1 tokenize 32 $hget(onchans,%chan) while (%a <= $0) { sockwrite -nt $ [ $+ [ %a ] ] %line inc %a 1 } } alias sendx2 { var %chan $2 var %line $3- var %socket $1 var %a 1 tokenize 32 $hget(onchans,%chan) while (%a <= $0) { if ($ [ $+ [ %a ] ] != %socket) { sockwrite -nt $ [ $+ [ %a ] ] %line inc %a 1 } else { inc %a 1 } } } on *:socklisten:mircd:{ hinc mircd users 1 hinc mircd socket 1 hadd -m users mircd. [ $+ [ $hget(mircd,socket) ] ] .sockaccept mircd. [ $+ [ $hget(mircd,socket) ] ] } on *:sockread:mircd.*:{ var %var sockread %var tokenize 32 %var if (USER * iswm %var) { if (!$hget(users,$sockname)) { if ($hget(nicks,$sockname)) { hadd users $sockname $hget(nicks,$sockname) $2 $sock($sockname).ip $replace($right($5-,-1),$chr(32),-) sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** Helo! sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** Nick: $gettok($hget(users, $sockname),1,32) sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** Name: $replace($gettok($hget(users, $sockname),4,32),-,$chr(32)) sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** IP: $gettok($hget(users, $sockname),3,32) sockwrite -nt $sockname :mircd.Hamish.net 376 $gettok($hget(users, $sockname),1,32) :End of /MOTD command. } elseif (!$hget(nicks,$sockname)) { hadd users $sockname $2 $sock($sockname).ip $replace($left($5-,-1),$chr(32),-) } } } if (NICK * iswm %var) { if (!$hget(nicks,$sockname)) { if ($hget(users,$sockname)) { var %a $hget(users,$sockname) hdel users $sockname hadd users $sockname $2 %a sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** YAH IRL! sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** YER NICK IS: $gettok($hget(users, $sockname),1,32) sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** YER NAME IS: $replace($gettok($hget(users, $sockname),4,32),-,$chr(32)) sockwrite -nt $sockname :mircd.Hamish.net NOTICE AUTH :*** YER IP IS: $gettok($hget(users, $sockname),3,32) sockwrite -nt $sockname :mircd.Hamish.net 376 $gettok($hget(users, $sockname),1,32) :End of /MOTD command. } elseif (!$hget(users,$sockname)) { hadd nicks $sockname $2 } } } if (JOIN * iswm %var) { if ($hget(channels,$2)) { var %line $+(:,$gettok($hget(users, $sockname),1,32),!,$gettok($hget(users, $sockname),2,32),@,$gettok($hget(users, $sockname),3,32)) sockwrite -nt $sockname %line JOIN : $+ $2 sockwrite -nt $sockname :Services!services@Hamish.net MODE $2 :+o $gettok($hget(users, $sockname),1,32) sockwrite -nt $sockname :mircd.Hamish.net 353 $gettok($hget(users, $sockname),1,32) = $2 :@Services @ $+ $gettok($hget(users, $sockname),1,32) $hget(onchans,$+($2,')) sendx $2 %line JOIN : $+ $2 sendx $2 :Services!services@Hamish.net MODE $2 :+o $gettok($hget(users, $sockname),1,32) hadd onchans $2 $hget(onchans,$2) $sockname hadd onchans $+($2,') $hget(onchans,$+($2,')) $+(@,$gettok($hget(users, $sockname),1,32)) } if (!$hget(channels,$2)) { var %line $+(:,$gettok($hget(users, $sockname),1,32),!,$gettok($hget(users, $sockname),2,32),@,$gettok($hget(users, $sockname),3,32)) hadd channels $2 $2 sockwrite -nt $sockname %line JOIN : $+ $2 sockwrite -nt $sockname :Services!services@Hamish.net MODE $2 :+o $gettok($hget(users, $sockname),1,32) sockwrite -nt $sockname :mircd.Hamish.net 353 $gettok($hget(users, $sockname),1,32) = $2 :@Services @ $+ $gettok($hget(users, $sockname),1,32) hadd onchans $2 $sockname hadd onchans $+($2,') $+(@,$gettok($hget(users, $sockname),1,32)) } } if (PRIVMSG * iswm %var) { if ($hget(channels,$2)) { var %line $+(:,$gettok($hget(users, $sockname),1,32),!,$gettok($hget(users, $sockname),2,32),@,$gettok($hget(users, $sockname),3,32)) sendx2 $sockname $2 %line PRIVMSG $2 $3- } } if (QUIT * iswm %var) { var %line $+(:,$gettok($hget(users, $sockname),1,32),!,$gettok($hget(users, $sockname),2,32),@,$gettok($hget(users, $sockname),3,32)) sockwrite -nt $sockname ERROR :Closing Link: $gettok($hget(users, $sockname),1,32) $+ [ $+ $gettok($hget(users, $sockname),3,32) $+ ] (Client Exited) sendx #channel %line QUIT :Client Exited sockclose $sockname } }