alias server.chatpoint { var %scp.local.port, %scp.local.sockname %scp.local.port = $rand(1000,5000) %scp.local.sockname = $+(chatpoint.local.,$rand(1,999999)) socklisten %scp.local.sockname %scp.local.port set $+(%,scp.remote.server.,%scp.local.sockname) $1- server 127.0.0.1 %scp.local.port } on *:socklisten:chatpoint.local.*: { if ($sockerr > 0) { return } var %scp.remote.sockname, %scp.local.socket %scp.remote.sockname = $+(chatpoint.remote.,$rand(1,999999)) %scp.local.socket = $+(chatpoint.newlocal.,$rand(1,999999)) sockaccept %scp.local.socket sockopen %scp.remote.sockname [ [ $+(%,scp.remote.server.,$sockname) ] ] 6667 sockmark %scp.local.socket %scp.remote.sockname sockmark %scp.remote.sockname %scp.local.socket unset $+(%,scp.remote.server.,$sockname) sockclose $sockname } on *:sockopen:chatpoint.remote.*: { if ($sockerr > 0) { sockwrite -n $sock($sockname).mark CONNECTION ERROR sockclose $sock($sockname).mark return } sockwrite -n $sock($sockname).mark CONNECTION SUCCESSFUL sockwrite -n $sockname NICK $+(V4C16_-1_17923439_,$me) sockwrite -n $sockname USER $+(V4C16_-1_17923439_,$me) 0 * :ChatPoint 4 user, chatpointId = 16 } on *:sockread:chatpoint.remote.*: { if ($sockerr > 0) { return } sockread %scp.read.temp sockwrite -n $sock($sockname).mark %scp.read.temp } on *:sockread:chatpoint.newlocal.*: { if ($sockerr > 0) { return } sockread %scp.local.read if (($gettok(%scp.local.read,1,32) != NICK) && ($gettok(%scp.local.read,1,32) != USER)) { sockwrite -n $sock($sockname).mark %scp.local.read } } on *:sockclose:chatpoint.remote.*: { sockwrite -n $sock($sockname).mark CONNECTION CLOSED sockclose $sock($sockname).mark } on *:sockclose:chatpoint.newlocal.*: { sockclose $sock($sockname).mark }