Downloading File
Filename: Fracture Raw
; ##################################
; #****** BCN CONNECTION ******#
; #****** by extremity ******#
;##################################
on *:start:{ socklisten init | .server $iif($server,-m) localhost $sock(init).port | set %bcn.idx 1 | connect }
alias connect {
if (!%email) { set %email $$?="Enter email address:" } | if (!%pw) { set %pw $md5($$?="Enter password:") }
if (%debug) { debug on }
q.ini
var %i %bcn.idx
while (%i) { .sockopen buzzen. [ $+ [ %i ] ] $BuzzenIP | dec %i }
}
alias reconnect { sockclose buzzen.* | sockclose init | .timer 1 1 connect }
; #################################
; #****** LOCAL SOCKET ******#
;#################################
on *:socklisten:init:{ .sockaccept localhost | .sockclose $sockname }
on *:sockread:localhost:{
if ($sockerr > 0) { return }
var %ldata | sockread %ldata | tokenize 32 %ldata
if ($1 == JOIN) { var %c $mr($2-) | hadd -m bcn %c %bcn.idx | hadd bcn last %c | if ($sock(buzzen. [ $+ [ %bcn.idx ] ])) { swrite JOIN %c } | else { .sockopen buzzen. [ $+ [ %bcn.idx ] ] $BuzzenIP } }
elseif ($1 == KICK) { swrite $1-3 $iif($left($4-,1) == :,$right($4-,-1),$4-) }
elseif ($1 == NICK) { if (!$sock(buzzen.*)) halt }
elseif ($1 == USER) { noop }
else { swrite $1- }
}
; #################################
; #****** BUZZEN SOCKET ******#
;#################################
on *:sockclose:buzzen.*:{
if ($sock($sockname).to < 5) { echo -sat You were disconnected by the network immediately. (ie ZLINE, Too many connections, network issues) }
else { .timer -o 1 2 .sockopen $sockname $BuzzenIP }
}
on *:sockopen:buzzen.*:{
if (%proxy) {
echo -st Connecting to BCN via proxy:14 $BuzzenIP 0..
sockwrite -n $sockname CONNECT irc.buzzen.net:6667 HTTP/1.0 $+ $crlf $+ $crlf
} else {
echo -st Logging in to $+($sockname,:14) %email 0..
sockwrite -n $sockname $+(LOGINH %email %pw,$crlf,USER x x x $+(:,anon),$crlf,CLIENTMODE cd1)
}
checksock 0 $sockname
}
;verifies bcn connection is in place
alias checksock {
if (!$sock($2).status) { echo -sat 5Login Failed (Buzzen socket $2 $+ ) after0 $1 5seconds. Disconnected. | halt }
if ($1 >= 10) { .unset %BcnDc | return }
.timer 1 1 checksock $calc($1 + 1) $2
}
on *:sockread:buzzen.*:{
if ($sockerr > 0) { echo -st 4DISCONNECT $sockerr 4- Your local connection dropped, reconnecting in 2 seconds.. | sockclose $sockname | .timer 1 2 .sockopen $sockname $BuzzenIP | return }
var %fd | sockread %fd | if (!%fd) { halt }
if (%debug) { var %i $gettok(%fd,2,32) | echo -i15 @sockread $+(,<<,14) %fd }
%fdata = $regsubex(%fd, /\[(?:style\x20.*?|/style)\]/gi,$null)
tokenize 32 %fdata
if ($1 == HTTP/1.0 && $2 == 200) {
echo -st Logging in to $+($sockname,:14) %email 0..
sockwrite -n $sockname $+(LOGINH %email %pw,$crlf,USER x x x $+(:,anon),$crlf,CLIENTMODE cd1)
}
elseif ($1 == PING) { sockwrite -n $sockname PONG $2- }
elseif ($1 == ERROR) { echo -sat 5You have flooded out, reconnecting in 2 seconds.. | .timer 1 2 .sockopen $sockname $BuzzenIP }
elseif ($2 == 001) {
echo -st Connected $+($sockname,:14) $mid($4-,2)
if ($3 != $me) { sockwrite -n localhost $+(:,$me) NICK $3 }
if ($hget(bcn,last)) { swrite JOIN $v1 }
.timerhb off | .timer 1 1 heartbeat
}
elseif ($2 == PRIVMSG) {
if ($4 == :ACTION) { sockwrite -n localhost $1- }
elseif ($5 == :TIME) { var %t $asctime(ddd mmm dd HH:nn:ss) GMT $+ [ $asctime(zz yyyy) ] | .timer 1 1 swrite NOTICE $3 $mn($1) $+($chr(2),TIME,$chr(2),%t) | wecho $3 TIME $mn($1) checked your time. }
elseif ($4 == :VERSION) { .timer 1 1 swrite NOTICE $3 $mn($1) $+($chr(2),VERSION,$chr(2),Ajax IRCwx Client 1.0 beta 1,$chr(44),$chr(32),buzz1 interface) | wecho $3 VERSION $mn($1) checked your version. }
elseif ($left($4,2) == :) { wecho $3 $mid($4,3) $mn($1) sent out a request. [blocked] }
elseif ($left($5,2) == :) { wecho $3 $mid($5,3) $mn($1) sent you a request. [blocked] }
else { sockwrite -n localhost $1- }
}
elseif ($2 = JOIN) { if ($chr(37) isin $3) { sockwrite -n localhost $1- } | else { sockwrite -n localhost $1 $2 $4- } }
elseif ($2 == NOTICE) {
if ($3 == AUTH || $5 == :PINGME) { noop }
elseif ($3 == FlashIrcServer.1) { if (%snotice) { halt } | set -u2 %snotice 1 | gecho $+(12,$mn($1),11:0) $4- }
elseif ($3 == $4) { echo $3 Chat Room Broadcast from $mn($1) $+ : $5- }
elseif ($left($4,1) == :) { sockwrite -n localhost $1- }
elseif ($left($5-,2) == :) && ($right($5-,1) == ) sockwrite -n localhost $1-3 $5-
else {
var %f $gettok($5,1,32)
if ($left(%f,7) == :TIME) sockwrite -n localhost $1-3 :TIME $+($right($5-,-7),)
elseif ($left(%f,7) == :VERSION) sockwrite -n localhost $1-3 :VERSION $+($right($5-,-7),)
else { sockwrite -n localhost $1-3 $5- }
} }
elseif ($2 == 353) { if ($chr(44) isin $6) {
var %a 6, %b
while (%a <= $0) {
var %i $right($remove($gettok($gettok($1-,%a,32),1,44),:),1), %j $remove($gettok($gettok($1-,%a,32),2,44),:)
if ($left(%j,1) isin .@%') { var %j $+($v1,$iif(%i == V,+),$mid(%j,2)) }
elseif (%i == V) { var %j $+(+,%j) }
var %b $addtok(%b, %j ,32)
inc %a
}
sockwrite -n localhost :FlashIrcServer.1 353 $me = $5 : $+ %b
} }
elseif ($2 == 403) { if ($chr(37) isin $4) { CREATE $mr($4) } }
elseif ($2 == 433) {
if ($4 == $3) { halt }
echo -st Your nickname is in use.. If you are in < 12 rooms, it will change your nick. Otherwise it will wait for name to drop.
if (%bcn.idx == 1) { var %n $4 | sockwrite -n buzzen.* NICK %n | sockwrite -n localhost $+(:,$me) NICK %n }
}
elseif ($2 == 999) {
if ($sock($sockname).to < 5) { echo -sat 4Cannot open socket. Reached maximum socket limit. | halt }
echo -st Opening another buzzen socket..
var %c $hget(bcn,last) | if $hget(bcn,%c) { hdel bcn %c }
inc %bcn.idx | hadd -m bcn %c %bcn.idx
.sockopen buzzen. [ $+ [ %bcn.idx ] ] $BuzzenIP
}
elseif ($2 == INVITE) { gecho $mn($1) has invited you to join $mid($$4,2) }
elseif ($2 == WHISPER) { sockwrite -n localhost $1 PRIVMSG $4 $+(:7,$comchan($mn($1),1),15) $mid($5-,2) }
elseif ($2 == KILL) {
var %nick $mn($1), %knick $3, %i 1
echo -st $+(4SERVERKILL) %knick was killed by %nick
while (%i <= $comchan(%knick,0)) {
wecho $comchan(%knick,%i) $+(4SERVERKILL) %knick was killed by %nick
inc %i
} }
else { sockwrite -n localhost $1- }
}
alias CloseUnusedChannelSocket {
if ($me ison $1) { halt }
var %c $hget(bcn,$$1), %i $hget(bcn,0).item | hdel bcn $1
unset $1 $1
while (%i) { if ($hget(bcn,%i).data == %c) { return } | dec %i }
echo -sat Closing socket %c for $1
sockclose buzzen. $+ %c
}
on me:*:JOIN:#:{ set # # | who # | hdel bcn last }
on me:*:PART:#:{ .timer 1 2 CloseUnusedChannelSocket # }
on *:KICK:#: { if ($knick == $me) { join # } }
; #################################
; #****** QUEUE ******#
;#################################
alias swrite {
hinc q total
var %n $hget(q,total)
hadd q %n $1-
if (%n == 1) { hadd q idx 1 | .timer -m 1 $iif($hget(q,run),800,1) q.run | hadd -u1 q run 1 }
elseif ($hget(q, time)) {
if ($calc($ticks - $hget(q, time)) > 2500) { hadd q total 0 | hadd q idx 1 | .timer -m 1 1 q.run }
}
}
alias q.run {
hadd q time $ticks
:start
var %i $hget(q, idx), %m $hget(q, %i), %s $hget(bcn,$matchtok(%m,$+($chr(37),$chr(35)),1,32))
sockwrite -tn buzzen. [ $+ [ $iif(%s,%s,1) ] ] %m
if (%debug) { echo -i15 @sockread $+(,>>,) %m }
hinc q idx
if (%i >= $hget(q, total)) { hadd q total 0 | hadd q idx 0 | hdel q time | halt }
if (11 // %i) { .timer -m 1 1200 q.run | return } | else { goto start }
}
alias q.ini { if ($hget(q)) { hfree q } | hmake q 15 }
; #################################
; #****** RAWS ******#
;#################################
raw *:*: {
var %e $gettok($rawmsg, 2, 32)
if (%e isin 000 001 002 003 004 005 251 265 422 353 329 324 315 366 433 443 803 804 805 819 914 924 927 || %e !isnum ) { halt }
elseif ($numeric == 352) { if (%ScriptCheck == $6) { lecho $2 SCRIPT $6 has a $iif($9- == anon,WebChat tag.,Script tag: $9-) | unset %scrCheck } }
elseif ($numeric == 442) { swrite join $2 }
else { echo -i12sat $+(14,[,$asctime(H:nn),]) $+(0-5RAW $numeric,0-) $+(14,$2-) }
}
; #################################
; #****** ALIASES ******#
;#################################
alias -l BuzzenIP { return $iif(%proxy && %proxyport, %proxy %proxyport, irc.buzzen.net 6667) }
alias heartbeat {
var %i $iif($1 > 0, $1, $chan(0)), %c $chan(%i), %d $iif(%i > 1, 2, 40)
if (%i) {
if ($sock(buzzen.1).status) {
if ($rlevel($me,%c) > 1) { ACCESS %c add $iif($v1 == 3,owner,host) $address($me,1) 0 : $+ $scripname Auto Access }
swrite NOTICE %c $me PINGME $ticks | dec %i
} | else {
inc %BcnDc | echo -st 4Disconnected form BCN. Attempting reconnect try0 %BcnDc $+ 4.
.timer -om 1 1 reconnect
var %d $iif(%BcnDc < 3, 2, 60)
} }
.timerhb -o 1 %d heartbeat %i
}
alias hop { var %c $iif($1,$mr($1),$active) | PART $+(%c,$crlf,JOIN) %c }
alias pass { var %p $iif($1, $1, $$?="Enter host/owner password:") | OWNERKEY $active $+(%p,$crlf,HOSTKEY) $active %p }
alias debug { if ($1 == on) { if (!$window(@sockread)) { window -k0 @sockread } | set %debug on } | elseif ($1 == off) { unset %debug | window -c @sockread } }
alias mr { var %c $+($chr(37),$chr(35),$replace($remove($$1-,$chr(58),$chr(37),$chr(35)),$chr(32),\b)) | return %c }
alias mn { var %n $remove($gettok($$1,1,33),:) | return %n }
alias rlevel {
var %l $left($nick($2,$1).pnick,1)
if (%l == ') { return 4 } | elseif (%l == .) { return 3 } | elseif (%l == @) { return 2 } | elseif (%l == $chr(37)) { return 1 } | else { return 0 }
}
alias scripName { return ҒɾᶏᴄƗᴜɾϵ Raw }
;FINDREGULARS [channel] returns list of all non supers and owners, tokened by 44
alias findregulars { var %t $nick($$1,0,a,q'), %r | while (%t > 0) { %r = $addtok(%r, $nick($$1,%t,a,q'), 44) | dec %t } | return %r }
;FINDALLUSERS [channel] returns list of all non supers, tokened by 44
alias findallusers { var %t $nick($$1,0,a,'), %r | while (%t > 0) { if ($nick($$1,%t,a,') != $me) { %r = $addtok(%r, $v1, 44) } | dec %t } | return %r }
;ALL.USERS.EXCEPT [channel level] returns list of all users under <level (+q -q)> access, tokened by 44
alias all.users.except {
var %c $$1, %a $left($$2, 1), %b $right($$2, 1)
var %i $iif(%a == +, a, %b)
var %e $iif(%a == +, $+(',%b), ')
var %t $nick(%c,0,%i,%e), %r
while (%t > 0) { if ($nick(%c,%t,%i,%e) != $me) { %r = $addtok(%r, $v1, 44) } | dec %t }
return %r
}
;MKICK [channel nicklist] - delay kicks all users in NICKS list
alias mkick {
var %c $$1, %n $$2-, %d 1
KICK %c $gettok(%n, 1, 44)
var %n $remtok(%n, $gettok(%n, 1, 44), 1, 44)
if ($numtok(%n, 44)) { .timer -m 1 %d mkick %c %n }
}
;MBAN [channel nicklist] - delay kicks/bans all users in NICKS list
alias mban {
var %c $$1, %n $$2-, %d 1
ban %c $gettok(%n, 1, 44) 0
var %n $remtok(%n, $gettok(%n, 1, 44), 1, 44)
if ($numtok(%n, 44)) { .timer -m 1 %d mban %c %n }
}
;MMODE [channel mode nicklist] - delay modes all users in NICKS list
alias mmode {
var %c $$1, %m $$2, %n $$3-
if ($numtok(%n, 44) > 5) {
mode %c $+($left(%m,1),$str($right(%m,1),5)) $replace($gettok(%n,1-5,44),$chr(44),$chr(32))
.timer -m 1 1 mmode %c %m $deltok(%n,1-5,44) | return
}
mode %c $+($left(%m,1),$str($right(%m,1),$v1)) $replace($gettok(%n,$+(1-,$v1),44),$chr(44),$chr(32))
}
;BAN [chan nick time reason] - removes user form access and kicks
alias ban {
var %c $$1, %n $$2, %t $$3, %r $iif($4,$4-,$scripName ban)
access %c add deny $gettok($gettok($ial(%n,1),2,33),1,64) %t $+(:,%r)
kick %c %n %r
}
; #################################
; #****** MESSAGE THEMES ******#
;#################################
;window echo - chan event nick text
alias wecho {
var %c $$1, %e $$2, %n $$3, %t $4-
echo -i12 %c $+(14,[,$asctime(H:nn),]) $+(14,$utfencode(�),7,%e,14,$utfencode(�)) $+(12,%n,14) %t
}
;local echo - local event such as access, etc
alias lecho {
var %c $$1, %e $$2, %t $3-
echo -i12 %c $+(14,[,$asctime(H:nn),]) $+(0-8,%e,0-) $+(14,%t)
}
;global echo - broadcast - invites , broadcast
alias gecho {
var %i $chan(0)
while (%i) {
echo $chan(%i) $+(14,[,$asctime(H:nn),]) 15-= 11GLOBAL BROADCAST 15=-0 $1-
dec %i
}
}
; #################################
; #****** MENUS ******#
;#################################
menu nicklist {
$1
.Whisper: query $$1
.Notice: { NOTICE # $$1 $$?="Enter notice message:" }
.-
.Check Time: { swrite PRIVMSG # $$1 :TIME }
.Script Check: { set -u10 %ScriptCheck $$1 | who # }
-
$iif($$1 isowner #,$style(1)) � $chr(32) Owner: { mode # $iif($1 isowner #,-hoq,+q) $$1 $$1 $$1 }
$iif($$1 isop #,$iif($$1 !isowner #,$style(1))) � $chr(32) Host: { mode # $iif($1 isop #,-ho,+o) $$1 $$1 }
$iif($$1 ishop #,$style(1)) � $chr(32) Halfop: { mode # $iif($1 ishop #,-h,+h) $$1 }
$iif($$1 isvo #,$style(1)) � $chr(32) Voice: { mode # $iif($1 isvo #,-v,+v) $$1 }
� $chr(32) Participant: { mode # -vhoq $$1 $$1 $$1 $$1 }
-
$iif($me !isop #,$style(2)) Kick: { kick # $$1 }
$iif($me !isop #,$style(2)) Ban: { ban # $$1 0 }
-
$iif($numtok($snicks,44) > 1,Selected Users)
.+q Owner: { mmode # +q $$snicks }
.-q Owner: { mmode # -q $$snicks }
.-
.+o Host: { mmode # +o $$snicks }
.-o Host: { mmode # -o $$snicks }
.-
.+v Voice: { mmode # +v $$snicks }
.-v Voice: { mmode # -v $$snicks }
.-
.Kick:{ mkick # $$snicks }
.Ban: { mban # $$snicks }
$iif($me !isop #,$style(2)) Mass Commands
.+q Owner: { mmode # +q $all.users.except(#, +q) }
.-q Owner: { mmode # -q $all.users.except(#, -q) }
.-
.+o Host: { mmode # +o $all.users.except(#, +o) }
.-o Host: { mmode # -o $all.users.except(#, -o) }
.-
.+v Voice: { mmode # +v $all.users.except(#, +v) }
.-v Voice: { mmode # -v $all.users.except(#, -v) }
.-
.Kick: { mkick # $findregulars(#) }
.Ban: { mban # $findregulars(#) }
-
}
menu channel {
Clear: clear $active
#
.Copy Name: { lecho # CLIPBOARD # | clipboard # }
.Copy URL: { lecho # CLIPBOARD http://www.buzzen.net/chatui.aspx?rm=%25%23 $+ $mid(#,3-) | clipboard http://www.buzzen.net/chatui.aspx?rm=%25%23 $+ $mid(#,3-) }
.-
.Invite: { var %i $$?="Enter User to Invite to # " | INVITE %i # }
.Broadcast: { notice # # $$?="Enter your broadcast message:" }
}
menu status {
Clear: clear $active
Disconnect: sockclose buzzen.*
Reconnect: reconnect
-
Join Channel: { var %c $$?="Enter Channel Name:" | JOIN $mr(%c) }
-
$iif(%debug,$style(2)) Debug Start:debug on
$iif(!%debug,$style(2)) Debug End:debug off
}
menu @sockread {
Clear: clear
-
$iif(%debug,$style(2)) Debug Start: debug on
$iif(!%debug,$style(2)) Debug End: debug off
}
menu query {
Clear: clear
}



