# CETK epic IRC server script 0.0 (inoperable) load cetk.functions # Erase something from 2.8script which just gets in the way. on ^dcc_raw -"% % D %" alias.t serve.irc (port default 6667, ...) { if (!isnumber(b10 $port)) { xecho -banner -- $port is not a number. xecho -banner -- Requires [] } elsif (0 > port) { ^on -dcc_raw -"% % N ${0-port}" ^dcc close raw_listen ${0-port} xecho -banner -- IRC service on port ${0-port} closed } elsif (!listen($port)) { xecho -banner -- Error: Port $port already in use? } else { ^on -dcc_raw "% % N $port" serve.irc.connect $root \$* xecho -banner -- IRC service on port $port serving alias structure $root } } alias.t serve.irc.connect (root, ...) { ^on +dcc_raw "$0 % *" ^serve.irc.connection $root \$* } alias.t serve.irc.connection (root, ...) { switch ($2) { (e)(n)(c) { defer purge ircd[$0] defer ^dcc close raw $0 defer ^on dcc_raw -"$0 % *" return } (d) { @ :line = strip("$chr(13 10)" $3-) @ :from = line =~ [:*] ? shift(line) : [:] @ :cmd = shift(line) @ ircd[$0][cmd] = [serve.irc.cmd.$cmd] if (findw($ircd[$0][cmd] $aliasctl(alias match $ircd[$0][cmd]))) { serve.irc.msg $0 $from 421 } else { $ircd[$0][cmd] $0 $from $cmd $line } @ ircd[$0][cmd] = [ ] } } }