rendered paste body;; 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
}
}