alias sock { dialog -m sock sock }
dialog sock {
title "Sockbot"
size -1 -1 109 150
option dbu
box "Connection Info", 1, 1 1 107 32
text "Server", 2, 4 10 18 8, center
edit "", 3, 22 9 50 10, autohs center
text "Port", 4, 72 10 12 8, center
edit "6667", 5, 85 9 20 10, limit 4 center
text "Nick", 6, 4 21 18 8, center
edit "", 7, 22 20 50 10,autohs center
button "Connect", 8, 73 20 32 10
box "", 9, 1 32 107 30
edit "Channel Name", 10, 4 38 101 10, autohs center
check "Join", 11, 4 49 20 10
check "Part", 12, 26 49 20 10
check "Hop", 13, 48 49 20 10
button "<-- Do It", 14, 72 49 32 10
box "", 15, 1 92 107 19
edit "", 16, 4 98 68 10,autohs center
button "Identify", 17, 72 98 32 10
box "", 18, 1 62 107 30
edit "", 19, 4 68 100 10,autohs center
check "Msg", 20, 4 79 20 10
check "Describe", 21, 26 79 30 10
button "<-- Do It", 22, 72 79 32 10
box "", 23, 1 111 107 19
button "Change Nick", 24, 72 117 32 10
edit "", 25, 4 117 68 10,autohs center
box "", 26, 1 130 107 19
edit "", 27, 4 136 68 10,autohs center
button "Disconnect", 28, 72 136 32 10
}
on *:dialog:sock:init:*:{ did -ra $dname 3 %s.server | did -ra $dname 5 %s.port | did -ra $dname 7 %s.name | did -ra $dname 10 %s.chan }
on *:dialog:sock:edit:*:{
if ($did == 3) { set %s.server $did($dname,3).text }
if ($did == 5) { set %s.port $did($dname,5).text }
if ($did == 7) { set %s.name $did($dname,7).text }
if ($did == 10) { set %s.chan $did($dname,10).text }
}
on *:dialog:sock:sclick:*:{
if ($did == 8) { sockopen sock. $+ %s.name %s.server %s.port }
if ($did == 11) { did -u $dname 12,13 | set %s.option join }
if ($did == 12) { did -u $dname 11,13 | set %s.option part }
if ($did == 13) { did -u $dname 11,12 | set %s.option hop }
if ($did == 14) {
if (%s.option == join) { sockwrite -tn sock. $+ %s.name join %s.chan }
if (%s.option == part) { sockwrite -tn sock. $+ %s.name part %s.chan }
if (%s.option == hop) { sockwrite -tn sock. $+ %s.name part %s.chan | sockwrite -tn sock. $+ %s.name join %s.chan }
}
if ($did == 20) { did -u $dname 21 | set %s.msg privmsg }
if ($did == 21) { did -u $dname 20 | set %s.msg describe }
if ($did == 22) {
if (%s.msg == privmsg) { sockwrite -tn sock. $+ %s.name privmsg %s.chan : $+ $did($dname,19).text }
if (%s.msg == describe) { sockwrite -tn sock. $+ %s.name privmsg %s.chan : $+ $chr(1) $+ Action $did($dname,19).text $chr(1) }
did -r $dname 19
}
if ($did == 17) { sockwrite -tn sock. $+ %s.name privmsg nickserv :identify $did($dname,16).text | did -r $dname 16 }
if ($did == 24) { sockwrite -tn sock. $+ %s.name nick : $+ $did($dname,25).text | did -r $dname 25 }
if ($did == 28) { sockwrite -tn sock. $+ %s.name quit : $+ $did($dname,27).text | did -r $dname 27 }
}
on *:sockopen:sock.*:{
if ($sockerr > 0) { echo -a Socket Failed To Open | return }
sockwrite -n $sockname nick %s.name $lf user %s.name %s.name %s.name :[I.pwn.jo0]
echo -a SockBot/ $+ %s.name Now Connected
window -hek0 @Sock.Debug
}
on *:sockread:sock.*:{
var %sockbot
sockread %sockbot
tokenize 32 %sockbot
if ($1 == PING) { sockwrite -n $sockname pong $2 }
if ($1) { echo @Sock.Debug $1- }
}