########################################################################### ### TextSox 8.2.5+kadmods (20030628) ### by logicbox (logic@geekbox.net) ### and kadafi (kadafi@slackware.org) ### ### 8.x by logicbox and kadafi ### 7.99 and earlier by phelix (phelix@arpa.org) ### Original version 6.24 by psylark (psylark@nol.net) ### Based on the original TextBox script by Crypt Keeper (ckeeper@iac.net) ### ### If you have any questions, comments, bug reports, flames, or ### suggestions, feel free to drop me an e-mail, or catch me on EFnet. ### ### I've added a recent version history to the bottom of the script starting ### with 8.2.4, cause, good god, I don't even remember the last time I ### worked on this script. ########################################################################### #### NOTE: IT IS RECOMMENDED THAT YOU USE THIS SCRIPT ONLY WITH EPIC4! #### ################# Get epic4 at ftp.epicsol.org/pub/ircii/ ################# # TSX supports bold and underline color. Use setterm to configure it. # Following are what most people term the "default" colors: # setterm -hbcolor bright white setterm -ulcolor green ### Begin tsx.defs ### clear ^assign TSXVER 8.2.5+kadmods ^assign TSXLOGO [11TSX] ^assign LOADED 0 alias loadstat { @ LOADED = LOADED +1 ^eval set input_prompt $TSXLOGO $TSXVER loading: -${LOADED}- $0- } loadstat tsx.defs # Set script version and default stuff ^set notify_on_termination off ^eval assign LASTOUT $time() ^eval assign TSXRC $HOME/tsx.sav ^eval exec touch $TSXRC # Default keybinds ^bind meta1-O meta7_character ^bind meta7-P parse_command cmd ^bind meta2-[ meta8_character ^bind meta8-A parse_command cmd ^bind meta8-B parse_command w ^bind meta2-5 META5_CHARACTER ^bind meta2-6 META6_CHARACTER ^bind meta5-~ SCROLL_BACKWARD ^bind meta6-~ SCROLL_FORWARD ^bind META2-1 META7_CHARACTER ^bind META2-4 META8_CHARACTER ^bind META7-~ SCROLL_START ^bind META8-~ SCROLL_END ^bind meta1-[ meta2 ^bind meta1-a beginning_of_line ^bind meta1-e end_of_line ^bind meta1-O meta2 ^bind meta2-A backward_history ^bind meta2-B forward_history ^bind meta2-C forward_character ^bind meta2-D backward_character ^bind ^B self_insert ^bind ^_ self_insert ^bind ^V self_insert ^bind ^A self_insert ^bind ^W next_window ^bind ^Z stop_irc ^bind ^\ switch_channels ^bind ^X switch_channels ^bind ^Q quote_character ^bind ^D^D parse_command tk.delnick ^bind ^I parse_command ^tk.getmsg 1 $tk.msglist ^bind ^R parse_command ^tk.getmsg -1 $tk.msglist ^bind ^N parse_command window next ^bind ^P parse_command window previous ^bind ^S toggle_stop_screen ^bind ^K parse_command join $I ^bind ^T parse_command clearmsg # Default client/script settings set no_fail_disconnect on set lastlog 2000 set scrollback 2000 set mail 2 set tab on set status_window ^^^^ set eight_bit_characters on set tab_max 6 set clock_24hour off set user_information [TSX] set flood_warning off set beep_max 2 set verbose_ctcp off set indent on set auto_whowas on set continued_line set hide_private_channels off set history 35 set auto_unmark_away off set show_channel_names on set log off set logfile tsx.log set show_who_hopcount off # Default variables assign LAGOMETER ON assign AWAYALLCHANS ON assign FINGERMSG assign AUTOCHAT OFF assign VERMSGSTR It fears no one. ^eval assign VERMSG VERSION $TSXLOGO $TSXVER \($J\) -/- $VERMSGSTR assign RMCMD rm -f assign PSCMD ps x assign MAILCMD mail assign FINGERCMD finger assign TRACECMD traceroute assign WHOIS_SERV whois.networksolutions.com assign SERVOPPRO OFF assign AJOINKICK ON assign AJOININV OFF assign FLOODPRO OFF assign AUTOUNBAN ON assign MASSPRO ON assign RAWIRC OFF assign TS OFF assign LAGOMETER ON assign QUERY OFF assign AWAY NO assign KEYPRO ON assign AUTODECODE OFF assign MASSDEF DEOP assign NFPRO ON assign NSPLIT ON assign NOTICES ON assign CTRSP ON assign KILLNOT NORM assign PAUSES ON assign CTNOISE ON assign LASTMSG null assign LASTFLNICK null assign CHANKEY null assign STATUS_BAR_LENGTH DOUBLE assign AUTOGET OFF assign DCCSTAT OFF assign MAXIDLE 900 assign AWAYMSG is elsewhere assign UNAWAYMSG returns... assign SCRIBBLE ON ### End tsx.defs ### ### Begin tsx.status ### loadstat tsx.status ### Status bar # %T=time %V=client %C=channel %+=chanmodes # %N=nick %#=usermodes %@=chanop %*=oper # %U=statline %M=mail %Y=lagometer %A=away/msgs # %S=server %D=dccstatus %4=tsx_version ^alias statusbar { ^eval set status_format %U%T %*%@%N%# %H%B%A%C%+%I%O%F %W %>%M%Y ^window double on ^eval set status_format1 %T %4 (%V) %> %A %M %Y ^eval set status_format2 %U %*%@%N%# %C%+ %> ^eval set status_away \(Msgs: $NUMMSGS\) ^eval set status_mail [Mail: %M] ^eval set status_user4 TSX\-$TSXVER } ^statusbar ^alias singlestat { ^window double off ^assign STATUS_BAR_LENGTH SINGLE } ^alias doublestat { ^window double on ^assign STATUS_BAR_LENGTH DOUBLE } ^alias setstatus { if ([$STATUS_BAR_LENGTH] == [SINGLE]) {singlestat} {doublestat} } ^eval setstatus ### Logo stuff assign BTSX 0[TSX] assign BABK 0[ABKICK] assign BAOP 0[AOP] assign BBAN 0[BAN] assign BCTCP 0[CTCP] assign BDCC 0[DCC] assign BDEC 0[DECRYPT] assign BFLOOD 0[flood detected] assign BHELP 0[HELP] assign BINV 0[INVITE] assign BJOIN 0[JOIN] assign BKICK 0[KICK] assign BLIST 0[LIST] assign BMODE 0[MODE] assign BNJOIN 0[NETJOIN] assign BNICK 0[NICK] assign BNOT 0[NOTIFY] assign BPART 0[PART] assign BNSPLIT 0[NETSPLIT] assign BSOFF 0[SIGNOFF] assign BTOPIC 0[TOPIC] assign BVER 0[VER] assign BWALL 0[WALL] assign BWHO 0[WHO] assign BWHOIS 0[WHOIS] ### End tsx.status ### ### Begin tsx.toggles ### loadstat tsx.toggles alias onoff { if ([$0] == [ON]) {^assign FUNCTION_RETURN ON} {^assign FUNCTION_RETURN OFF} } alias yesno { if ([$0] == [ON]) {^assign RETURNSTR  ON} {^assign RETURNSTR OFF} ^assign FUNCTION_RETURN $RETURNSTR ^assign -RETURNSTR } alias statup { if ([$ALLP] != [ALLP]) { if ([$SERVOPPRO] == [ON]) {^local STATLINE ${STATLINE}S} {^local STATLINE ${STATLINE}s} if ([$LOG] == [ON]) {^local STATLINE ${STATLINE}O} {^local STATLINE ${STATLINE}o} if ([$FLOODPRO] == [ON]) {^local STATLINE ${STATLINE}F} {^local STATLINE ${STATLINE}f} if ([$NFPRO] == [ON]) {^local STATLINE ${STATLINE}N} {^local STATLINE ${STATLINE}n} if ([$AUTOUNBAN] == [ON]) {^local STATLINE ${STATLINE}B} {^local STATLINE ${STATLINE}b} if ([$MASSPRO] == [ON]) {^local STATLINE ${STATLINE}M} {^local STATLINE ${STATLINE}m} if ([$AWAY] == [YES]) {^local STATLINE ${STATLINE}A} {^local STATLINE ${STATLINE}a} if ([$KEYPRO] == [ON]) {^local STATLINE ${STATLINE}Y} {^local STATLINE ${STATLINE}y} if ([$CTRSP] == [ON]) {^local STATLINE ${STATLINE}R} {^local STATLINE ${STATLINE}r} if ([$RAWIRC] == [ON]) {^local STATLINE ${STATLINE}I} {^local STATLINE ${STATLINE}i} if ([$TS] == [ON]) {^local STATLINE ${STATLINE}T} {^local STATLINE ${STATLINE}t} if ([$QUERY] == [ON]) {^local STATLINE ${STATLINE}Q} {^local STATLINE ${STATLINE}q} eval ^set status_user [$STATLINE] if ([$LAGOMETER] == [ON]) {getlag}{^set -status_user2} } } alias allpro { if (match($0 ON OFF)) { ^assign ALLP ALLP masspro $0 servop $0 nfpro $0 if ([$0] == [ON]) {ctrespond OFF} {ctrespond ON} ^assign -ALLP statup zecho $BTSX All protections are now $onoff($0) } { ^local ALLP ALLP masspro servop nfpro ctrespond } } alias massdef { if (match($0 DEOP KICK)) { if ([$0] == [DEOP]) {^assign MASSDEF DEOP} if ([$0] == [KICK]) {^assign MASSDEF KICK} } zecho $BTSX Defense for mass deop/kick is now $MASSDEF statup } alias killnotice { if (match($0 FULL NORM)) { if ([$0] == [FULL]) {^assign KILLNOT FULL} if ([$0] == [NORM]) {^assign KILLNOT NORM} } zecho $BTSX Kill notice setting is now $KILLNOT statup } alias ctrespond { if (match($0 ON OFF)) {^assign CTRSP $onoff($0)} zecho $BTSX Response to CTCP PING, VERSION, etc. is now $CTRSP statup } alias ctcpnoise { if (match($0 ON OFF)) {^assign CTNOISE $onoff($0)} zecho $BTSX CTCP notice displays are now $CTNOISE statup } alias rawirc { if (match($0 ON OFF)) { ^assign RAWIRC $onoff($0) if ([$0] == [ON]) {^on #-raw_irc -601 * echo 11***11 $$0- } if ([$0] == [OFF]) {^on #-raw_irc -601 -*} } zecho $BTSX IRC_RAW messages are now $RAWIRC statup } alias pauses { if (match($0 ON OFF)) {^assign PAUSES $onoff($0)} zecho $BTSX Pauses in help output $PAUSES statup } alias notices { if (match($0 ON OFF)) {^assign NOTICES $onoff($0)} zecho $BTSX Sending of notices is now $NOTICES statup } alias autodecode { if (match($0 ON OFF)) {^assign AUTODECODE $onoff($0)} zecho $BTSX Automatic -+SOXTEXT+- encryption decoding is now $AUTODECODE statup } alias nfpro { if (match($0 ON OFF)) {^assign NFPRO $onoff($0)} zecho $BTSX Automatic kick on nick flood is now $NFPRO statup } alias netsplit { if (match($0 ON OFF)) {^assign NSPLIT $onoff($0)} zecho $BTSX Automatic netsplit detection/tracking is now $NSPLIT statup } alias log { if (match($0 ON OFF)) {^set log $0} zecho $BTSX Logging to $LOGFILE is now $LOG statup } alias logfile { if ([$0]) {^set logfile $0} zecho $BTSX IRC log file is now $LOGFILE statup } alias keypro { if (match($0 ON OFF)) {^assign KEYPRO $onoff($0)} zecho $BTSX Channel key escape code protection is now $KEYPRO statup } alias masspro { if (match($0 ON OFF)) {^assign MASSPRO $onoff($0)} zecho $BTSX Mass deop/kick protection is now $MASSPRO statup } alias servop { if (match($0 ON OFF)) {^assign SERVOPPRO $onoff($0)} zecho $BTSX Server ops protection is $SERVOPPRO statup } alias ajoinkick { if (match($0 ON OFF)) {^assign AJOINKICK $onoff($0)} zecho $BTSX Automatic rejoin on kick is $AJOINKICK statup } alias ajoininv { if (match($0 ON OFF)) {^assign AJOININV $onoff($0)} zecho $BTSX Automatic join on invite is $AJOININV statup } alias floodpro { if (match($0 ON OFF)) {^assign FLOODPRO $onoff($0)} zecho $BTSX Flood protection is $FLOODPRO statup } alias autounban { if (match($0 ON OFF)) {^assign AUTOUNBAN $onoff($0)} zecho $BTSX Automatic ban defense is $AUTOUNBAN statup } alias lagometer { if (match($0 ON OFF)) {^assign LAGOMETER $onoff($0)} zecho $BTSX Lagometer is $LAGOMETER statup } ### End tsx.toggles ### ### Begin tsx.functions ### loadstat tsx.functions alias notword { if ([$0]>0) { if (([$0]>1)&&([$0] < rmatch($~ $1-))) { @ nw.sep = [ ] } { @ nw.sep = [] } @ function_return = [$(1-${[$0]-1})] ## [$nw.sep] ## [$(${[$0]+1}-)] } { @ function_return = [$1-] } } alias ischanop.tb { if (([$1] == [$C])&&([$0] == [$N])) { if ([$P] == [@]) {@ FUNCTION_RETURN = 1} {@ FUNCTION_RETURN = 0} } {eval @ FUNCTION_RETURN = $ischanop($0 $1)} } alias nickonly {^assign FUNCTION_RETURN $left($index(! $0) $0)} assign RCRAPCRAP abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789a alias randcrap { @ RCOUNTER = 1 while (RCOUNTER < [$0]) { @ RCOUNTER = RCOUNTER + 1 eval ^local RCRAP $MID($rand(62) 1 $RCRAPCRAP)${RCRAP} } eval ^assign RCRAP $MID($rand(25) 1 $RCRAPCRAP)${RCRAP} ^assign FUNCTION_RETURN $RCRAP } @ banfilter.in = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~_-] @ banfilter.out = [?bcd?fgh?jklmn?pqr?t?vw??z?BCD?FGH?JKLMN?PQRST?VW??Z??????????*??] alias banfilter { @ r3.line = [$*] @ r3.len = @r3.line @ r3.new = [] @ r3.cnt = 0 while (r3.cnt < r3.len) { @ r3.ind = index($mid($r3.cnt 1 $r3.line) $banfilter.in) if (r3.ind > -1){@r3.new = r3.new ## mid($r3.ind 1 $banfilter.out)} {@r3.new = r3.new ## mid($r3.cnt 1 $r3.line)} @r3.cnt = r3.cnt + 1 } @ function_return = r3.new ^assign -r3.cnt ;^assign -r3.new ;^assign -r3.ind ;^assign -r3.line ^assign -r3.len } alias isbogus { ^if ([$3]) { @ function_return = 1 } ^if (rmatch(.$1. $isbogus.pats *..*)) { @ function_return = 1 } ^if (rmatch(.$2. $isbogus.pats *..*)) { @ function_return = 1 } } alias isusedctcp { ^local ISUSED NO if (match($0 ACTION SED PING FINGER USERINFO CLIENTINFO VERSION DCC OP UNBAN HELP INVITE NAMES UTC XDCC )) {^assign ISUSED YES} eval ^assign FUNCTION_RETURN $ISUSED } alias tk.addmsg { @ tk.matched = rmatch($0 $^\1-) if (tk.matched) { @ tk.msglist = [$(0-${tk.matched-1}) $(${tk.matched+1}-)] } { @ tk.msglist = [$(0-${tk.msgmax-1})] } @ tk.msgcnt = 0 ^assign -tk.matched } alias tk.getmsg { @ tk.msgcnt = tk.msgcnt + [$0] if ( #tk.msglist < tk.msgcnt ) {@ tk.msgcnt = 1} if (tk.msgcnt <= 0) {@ tk.msgcnt = #tk.msglist} @ tk.junk = K ## [msg] type ^U$tk.junk $^^{[$($tk.msgcnt)]} } alias tk.delnick { if (tk.msgcnt == 0) { zecho $BTSX Nickname: $word(0 $tk.msglist) removed. @ tk.msglist = [$notword(1 $tk.msglist)] }{ zecho $BTSX Nickname: $word(${tk.msgcnt-1} $tk.msglist) removed. @ tk.msglist = [$notword($tk.msgcnt $tk.msglist)] } type ^U } ### End tsx.functions ### ### Begin tsx.dcc ### loadstat tsx.dcc alias decho {zecho $BDCC $0-} alias autoget { if ([$AUTOGET] == [ON]){^assign AUTOGET OFF}{^assign AUTOGET ON} zecho $BDCC Autoget is $AUTOGET } alias autochat { if ([$AUTOCHAT] == [ON]){^assign AUTOCHAT OFF}{^assign AUTOCHAT ON} zecho $BDCC Autochat is $AUTOCHAT } on ^ctcp "*DCC SEND* * *" dccrequest $0 $4 alias dccrequest { ^local TMP $1 ^local DCCNICK $0 if (rindex(/ $TMP)) {^local DCCFILE $right(${@TMP-rindex(/ $1)+1} $1)} {^local DCCFILE $1} if ([$AUTOGET] == [ON]) { dcc get $DCCNICK $DCCFILE decho Autogetting file "$DCCFILE" from $DCCNICK} } ^on ^dcc_request "% SEND % *" { if ([$AUTOGET] == [ON]) { eval decho Autogetting file "$5" from $0 [\$userhost()\] dcc get $0 $2} {eval decho Autoget not on. file "$5" offered from $0 [\$userhost()\]} } on ctcp_reply "% DCC REJECT % *" { dcc close $3 $0 decho Closing DCC $3 to $0 at $0's request } ^on ^dcc_request "% CHAT % *" { if ([$AUTOCHAT] == [ON]) { eval decho Auto-accepting DCC chat with $0 [\$userhost()\] dcc chat $0}{ eval decho DCC chat request received from $0 [\$userhost()\] ^local ask $"Connect? " if (rmatch($ask y*)) {eval decho Accepting DCC chat with $0 [\$userhost()\] dcc chat $0}{ eval decho DCC chat request from $0 closed ^dcc close chat $0 } } } alias dccstat { if ([$DCCSTAT] == [ON]) { ^eval statusbar ^eval setstatus ^eval assign DCCSTAT OFF }{ ^window double off ^eval set status_format [TSX] DCC Status: %D %> ^eval assign DCCSTAT ON } } alias chat {//dcc chat $0-} alias get {//dcc get $0-} alias send {//dcc send $0-} alias close {//dcc close $0-} ### End tsx.dcc ### ### Begin tsx.main ### loadstat tsx.main clear alias sendmsg { if (rmatch($0 #*)) { if ([$0] == [$C]) { quote PRIVMSG $C :$1- zecho [${N}] $1- } { quote PRIVMSG $0 :$1- zecho -> $0 [${N}] $1- ^eval assign LASTOUT $time() } } { quote PRIVMSG $0 :$1- zecho -> -%-$0-%- $1- } ^eval assign LASTOUT $time() } alias nnotice { quote NOTICE $0 :$1- zecho -> -$0- $1- ^eval assign LASTOUT $time() } alias repeatcmd { @ RCOUNT = 0 while (RCOUNT < [$0]) { @ RCOUNT = RCOUNT + 1 /$1- } ^assign -RCOUNT } alias saychan { quote PRIVMSG $C :$0- zecho <${N}> $0- ^eval assign LASTOUT $time() } alias pause { if ([$PAUSES] == [ON]) {^local JUNK1 $"Press to continue"} } on ^exec "pubcat *" { saychan $1- sleep 1 } on ^dcc_raw * {} alias whosplit {if ([$NSPLIT] == [ON]) {wholeft}{netsplit}} on ^raw_irc "% PRIVMSG #% :* ?? -+*+-" { if ([$AUTODECODE] == [ON]) { if ([$2] == [$C]) { zecho <$nickonly($0)> $strip(: $3-) zecho $BDEC <$nickonly($0)> $strip( $decode($strip(: $left($index(" $3-) $3-)))) } { zecho <$nickonly($0):$2> $strip(: $3-) zecho $BDEC <$nickonly($0):$2> $strip( $decode($strip(: $left($index(" $3-) $3-)))) } } } on #-msg 2 "% * ?? -+*+-" { if ([$AUTODECODE] == [ON]) { zecho $BDEC *$0* $strip( $decode($left($index(" $1-) $1-))) } } alias smsg { if ([$1]) {zecho $BTSX No spaces allowed in message.} {quote SERVER $0} } alias version { if ([$0]) { if (rmatch($0 *.*)) {//version $0} {ctcp $0 VERSION} } { //version zecho $BTSX TextSox: version $TSXVER } } alias wallops { if ([$2]) {zecho $BTSX No spaces allowed in message.} { if (rmatch($0 *.*)) { ^set display off eval ^local SERVPID $connect($0 6667) ^set display on eval ^dcc raw $SERVPID $0 server $1 . . :[TextSox] /wallops ^dcc close raw $SERVPID zecho $BTSX Sent wallops to server $0 } {zecho $BTSX /wallops } } } alias trace { if ([$0]) { zecho $BTSX Tracing $0 exec $TRACECMD $0 } {zecho $BTSX You must specify a host.} } alias mdop {massdeop} alias mop {massop} alias finger { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$3] != []) {exec $FINGERCMD $strip(~ $3)@$4} {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick.} } alias names { if ([$0]) {//names $0-} {if (rmatch($C #*)) {//names $C}} } alias op { //mode $C +oooo $0 $1 $2 $3 if ([$4]) {op $4-} {} ^eval assign LASTOUT $time() } alias deop { //mode $C -oo $0 $1 if ([$2]) {deop $2-} } alias chops { if ([$0]) {//who $0 -chops} {//who $C -chops} } alias qk { if ([$0]) {kick $C $0} {zecho $BTSX Usage: /qk etc.} if ([$1]) {k $1-} } alias qbk { if ([$0]) {bk $0} {zecho $BTSX Usage: /qbk etc.} wait if ([$1]) {bk $1-} } alias bk { if ([$0]) { ban $0 wait kick $C $0 $1- } {zecho $BTSX Usage /bk } } alias scan {names $C} alias sc {names $C} alias last {if ([$0]) {sendmsg $0 $LASTNOBEEP}{sendmsg $C $LASTNOBEEP}} alias slast { if ([$0]) {sendmsg $0 -> 11[$MSGTYPE\($LASTSSNICK\)11] $B} {sendmsg $C -> 11[$MSGTYPE\($LASTSSNICK\)11] $B} ^eval assign LASTOUT $time() } alias relm {last $0-} alias relsm {slast $0-} alias k { if (rmatch($0 #*)) {kick $0-} {kick $C $0 $1-} ^eval assign LASTOUT $time() } alias mode { if (rmatch($0 #*)) {//mode $0-} { if ([$0] == [$N]) {//mode $0-} {//mode $C $0-} } ^eval assign LASTOUT $time() } alias leave { if ([$0]) { if (rmatch($0 #*)) {//leave $0-} {//leave #$0-}} {//leave $C} ^eval assign LASTOUT $time() } alias part {leave $0-} alias join { if (rmatch($0 &*)) {//join $0-} { if (rmatch($0 #*)) {//join $0-}{//join #$0-}} ^eval assign LASTOUT $time() } alias clearmode {//mode $C -k$M} alias w {if ([$0]) {//who $0}{//who *}} alias msg { if (rmatch($0 #*)) { zecho [11${N}=>11$0] $1- quote PRIVMSG $0 :$1- } {//msg $0-} } alias m { ^eval assign LASTOUT $time() msg $0- } alias fwhois { ^set input_prompt WHOIS lookup in progress... \(using server $WHOIS_SERV\) ^set display off eval ^local WHOIS.SOCKET $connect($WHOIS_SERV 43) ^set display on if (WHOIS.SOCKET > 0) { eval ^on #^dcc_raw 110 "$WHOIS.SOCKET $WHOIS_SERV D *" {zecho $BWHOIS $strip( $3-)} eval ^on #^dcc_raw 110 "$WHOIS.SOCKET $WHOIS_SERV C*" { eval ^on #dcc_raw 110 - "$WHOIS.SOCKET $WHOIS_SERV D *" eval ^on #dcc_raw 110 - "$WHOIS.SOCKET $WHOIS_SERV C*" } ^dcc raw $WHOIS.SOCKET $WHOIS_SERV $0-} {zecho $BTSX Error connecting to WHOIS server ${WHOIS_SERV}} ^set -input_prompt } alias whois {if ([$0]) {//whois $0-}{//whois $N}} alias wi {whois $0-} alias wii {whois $0 $0} alias ww { if ([$0]) {//whowas $0} {eval //whowas $N} if ([$1]) {ww $1-} } alias l { leave $0 if ([$1]) {l $1-} } alias j {join $0-} alias p {if ([$0]) {ping $0}{ping $C}} alias desc {describe $0 $1-} alias umode {eval //mode $N $0-} alias nokey {//mode $C -k $CHANKEY} alias clearkey {nokey} alias ig { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { ignore *$strip(~ $3)@$4 MSG CTCP NOTICE PUBLIC INVITE zecho $BTSX $0 added to ignore list.}} {zecho $BTSX You must specify a nick to ignore.} } alias igf {^Userhost $LASTFLNICK -CMD if ([$3]) {ignore *@$4 MSG CTCP NOTICE PUBLIC INVITE}} alias noig { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { ignore *$strip(~ $3)@$4 none zecho $BTSX $0 removed from ignore list.}} {zecho $BTSX You must specify a nick to unignore.} } alias setaway { if ([$AWAY] == [NO]) { if ([$0]) { if ([$AWAYALLCHANS] == [ON]) {^fe ($mychannels()) chan {quote PRIVMSG $chan :ACTION $AWAYMSG - $0- -};zecho * $N $AWAYMSG - $0- -}{me $AWAYMSG - $0- - } ^eval assign SATIME $time() ^away $0- ^assign AWAY YES @ NUMMSGS = 0 ^eval set status_away \(Msgs: $NUMMSGS\) statup } {zecho $BTSX /setaway } } {zecho $BTSX You are already away.} } alias unaway { if ([$AWAY] == [YES]) { if ([$0]) {^eval local BACKMSG \($0-\) -}{^eval local BACKMSG -} @ AWAYMIN = (time() - SATIME) / 60 @ AWAYSEC = (time() - SATIME) / 1 if ([$AWAYALLCHANS] == [ON]) {^fe ($mychannels()) chan {quote PRIVMSG $chan :ACTION $UNAWAYMSG $BACKMSG Gone for $tdiff($AWAYSEC).};zecho * $N $UNAWAYMSG $BACKMSG Gone for $tdiff($AWAYSEC).}{me $UNAWAYMSG $BACKMSG Gone for $tdiff($AWAYSEC).} ^assign -AWAYMIN ^away ^assign AWAY NO playback @ NUMMSGS = 0 zecho $BTSX You are no longer marked as being away statup } {zecho $BTSX You haven't been away.} ^eval assign LASTOUT $time() } alias playback { @ LINECNT = 0 if ([$NUMMSGS] > 0) { @ PBCOUNT = 0 zecho $BTSX Recorded messages : while (PBCOUNT < NUMMSGS) { @ PBCOUNT = PBCOUNT + 1 @ LINECNT = LINECNT + 1 if ([$LINECNT] > 20) { @ LINECNT = 0 pause } zecho $stime($MSGTIME[$PBCOUNT]): $MSGNICKS[$PBCOUNT] $MSGS[$PBCOUNT] } ^assign -PBCOUNT ^assign -LINECNT } {zecho $BTSX No messages to play back.} } alias gone {setaway $0-} alias back {unaway $0-} # the new `Show away once' script, # matthew green, oct 1993. i hate you # this script uses serial number 311 # $Id: newaway,v 1.1 1994/01/17 08:30:58 mrgreen Exp $ # this script is public domain ^set show_away_once off alias n.o { if (SHOW_NUMERICS == [ON]) {@function_return = [$0]} {@function_return = [***]}} alias newaway.show { ^local nick $encode($tolower($0)) ^local away $encode($tolower($1-)) if (newaway.nick[$nick] == away) { @function_return = 0 }{ @function_return = 1 @newaway.nick[$nick] = away } if (newaway.whois) { @function_return = 1 } } on #-311 311 * @newaway.whois = 1 on #-318 311 * @newaway.whois = 0 alias megaop { op $0 $0 $0 $0 op $0 $0 $0 $0 op $0 $0 $0 $0 } alias megaop2 { op $0 op $0 $0 op $0 $0 $0 op $0 $0 $0 $0 op $0 $0 $0 op $0 $0 op $0 } alias unflash { ^set status_clock c ^set status_clock 0\;\24r ^set status_clock 0m ^set status_clock ?5l sleep 2 ^set status_clock %T type ^L zecho $BTSX Screen restored } alias aop { if (rmatch($0 *!*@*)) { ^local ALREADY N foreach AUTOOPS XU { if ([$AUTOOPS[$XU]] == [$0]) {^local ALREADY Y} } if ([$ALREADY] == [N]) { @ MAXAOP = 0 foreach AUTOOPS XU { if (XU > MAXAOP) {eval @ MAXAOP = $XU} } @ MAXAOP = MAXAOP + 1 ^assign AUTOOPS[$MAXAOP] $0 zecho $BTSX Auto op #$MAXAOP for $AUTOOPS[$MAXAOP] added. ^assign -MAXAOP } {zecho $BTSX Auto op for $0 already exists.} } {zecho $BTSX /aop nick!user@host (wildcards allowed)} ^genstr } alias abkick { if (rmatch($0 *!*@*)) { ^local ALREADY N foreach AUTOKICKS XU { if ([$AUTOKICKS[$XU]] == [$0]) {^local ALREADY Y} } if ([$ALREADY] == [N]) { @ MAXABKICK = 0 foreach AUTOKICKS XU { if (XU > MAXABKICK) {eval @ MAXABKICK = $XU} } @ MAXABKICK = MAXABKICK + 1 ^assign AUTOKICKS[$MAXABKICK] $0 zecho $BTSX Auto bkick #$MAXABKICK for $AUTOKICKS[$MAXABKICK] added. ^assign -MAXABKICK } {zecho $BTSX Auto bkick for $0 already exists.} } {zecho $BTSX /abkick nick!user@host (wildcards allowed)} ^genstr } alias listaop { ^local LISTED N foreach AUTOOPS XU { zecho $BTSX Auto op #${XU}: $AUTOOPS[$XU] ^local LISTED Y } if ([$LISTED] == [N]) {zecho $BTSX Your auto-op list is empty.} } alias listabkick { ^local LISTED N foreach AUTOKICKS XU { zecho $BTSX Auto bkick #${XU}: $AUTOKICKS[$XU] ^local LISTED Y } if ([$LISTED] == [N]) {zecho $BTSX Your auto-bkick list is empty.} } alias clearaop { foreach AUTOOPS XU {^assign -AUTOOPS[$XU]} zecho $BTSX Your auto-op list is now empty. ^genstr } alias clearabkick { foreach AUTOKICKS XU {^assign -AUTOKICKS[$XU]} zecho $BTSX Your auto-bkick list is now empty. ^genstr } alias rmaop {noaop $0-} alias rmabkick {noabkick $0-} alias noaop { if ([$0]) { if (rmatch($0 *!*@*)) {remaop $0} { if (rmatch($AUTOOPS[$0] *!*@*)) { zecho $BTSX Auto op #$0 for $AUTOOPS[$0] removed. ^assign -AUTOOPS[$0] @ MAXNUM = 0 foreach AUTOOPS XU { if (XU > MAXNUM) {eval @ MAXNUM = $XU} } eval @ MVCOUNTER = $0 if (MVCOUNTER != [${MAXNUM+1}]) { while (MVCOUNTER < MAXNUM) { ^assign AUTOOPS[$MVCOUNTER] $AUTOOPS[${MVCOUNTER+1}] @ MVCOUNTER = MVCOUNTER + 1 } ^assign -AUTOOPS[$MAXNUM] } ^assign -MVCOUNTER ^assign -MAXNUM } {zecho $BTSX Auto op #$0 does not exist.} } } {zecho $BTSX /noaop aop# -or- /noaop nick!user@host (must be specific)} ^genstr } alias noabkick { if ([$0]) { if (rmatch($0 *!*@*)) {remabkick $0} { if (rmatch($AUTOKICKS[$0] *!*@*)) { zecho $BTSX Auto bkick #$0 for $AUTOKICKS[$0] removed. ^assign -AUTOKICKS[$0] @ MAXNUM = 0 foreach AUTOKICKS XU { if (XU > MAXNUM) {eval @ MAXNUM = $XU} } eval @ MVCOUNTER = $0 if (MVCOUNTER != [${MAXNUM+1}]) { while (MVCOUNTER < MAXNUM) { ^assign AUTOKICKS[$MVCOUNTER] $AUTOKICKS[${MVCOUNTER+1}] @ MVCOUNTER = MVCOUNTER + 1 } ^assign -AUTOKICKS[$MAXNUM] } ^assign -MVCOUNTER ^assign -MAXNUM } {zecho $BTSX Auto bkick #$0 does not exist.} } } {zecho $BTSX /noabkick abkick# -or- /noabkick nick!user@host (must be specific)} ^genstr } alias waitln { wait -cmd # wait -cmd $0- } alias writelnt {^msg %tsxsave $0-} alias writeln { @ LINE = LINE + 1 ^msg %tsxsave ^assign $0- ^set input_prompt [Line: ${LINE}] Saving... Please wait... } alias saveconf { zecho $BTSX Writing current settings to ${TSXRC}, please wait... ^set input_prompt [Line: 0] Saving... Please wait... @ LINE = 0 ^exec -name savedel rm -rf $TSXRC wait %savedel ^exec -name tsxsave cat > $TSXRC sleep 1 ^writelnt \# [TextSox] version $TSXVER saved settings file ^writelnt \# Saved: $stime($time()) ^writeln SERVOPPRO $SERVOPPRO ^writeln MAXIDLE $MAXIDLE ^writeln AJOINKICK $AJOINKICK ^writeln AJOININV $AJOININV ^writeln FLOODPRO $FLOODPRO ^writeln AUTOUNBAN $AUTOUNBAN ^writeln MASSPRO $MASSPRO ^writeln PAUSES $PAUSES ^writeln KEYPRO $KEYPRO ^writeln AUTODECODE $AUTODECODE ^writeln MASSDEF $MASSDEF ^writeln NFPRO $NFPRO ^writeln NSPLIT $NSPLIT ^writeln NOTICES $NOTICES ^writeln CTRSP $CTRSP ^writeln KILLNOT $KILLNOT ^writeln AUTOGET $AUTOGET ^writeln CTNOISE $CTNOISE ^writeln TS $TS ^writeln LAGOMETER $LAGOMETER ^writeln SCRIBBLE $SCRIBBLE ^writeln STATUS_BAR_LENGTH $STATUS_BAR_LENGTH ^writeln VERMSGSTR $VERMSGSTR foreach AUTOOPS SX {^writeln AUTOOPS[$SX] $AUTOOPS[$SX]} foreach AUTOKICKS SX {^writeln AUTOKICKS[$SX] $AUTOKICKS[$SX]} ^writeln NOTELEVELS $NOTELEVELS ^writelnt statup ^writelnt echo $BTSX Saved settings restored from $TSXRC  ^set -input_prompt ^assign -LINE waitln ^exec -close %tsxsave zecho $BTSX Finished writing settings to ${TSXRC}. } alias loadlists { if ([$0]) {load $0} {eval load $TSXRC} } alias savelists {saveconf $0-} alias loadconf {loadlists $0-} alias pubcat { if ([$0]) {exec -name pubcat cat $0} {zecho $BTSX /pubcat } } alias unban_nick { if ([$0]) { ^Userhost $0 -CMD if ([$3]) {^local UNBANDUDE $0!$3@$4} ^assign UNBANNEDTHELAMER NO ^on ^367 * { if (rmatch($UNBANDUDE $2)) { ^assign UNBANNEDTHELAMER YES quote MODE $1 -b $2 } } //^mode $1 b wait ^on 367 - } {eval unban_nick $N $C} } alias nunban {unban_nick $0-} alias unban {mode $C -b $0} alias mail { ^local MAILFILE $1- if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$3] != []) { exec $MAILCMD $strip(~ $3)@$4 < $MAILFILE zecho $BTSX Mailed $MAILFILE to $strip(~ $3)@$4 } {zecho $BTSX Cannot find $0} } } {zecho $BTSX /mail } } alias uumail { ^local MAILFILE $1- if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$3] != []) { exec uuencode $MAILFILE $MAILFILE | $MAILCMD $strip(~ $3)@$4 zecho $BTSX Mailed $MAILFILE to $strip(~ $3)@$4 (uuencoded) } {zecho $BTSX Cannot find $0} } } {zecho $BTSX /uumail } } alias botban { //mode $C +bbb *bot!*@* *b0t!*@* *s*rv!*@* //mode $C +b *ba?t!*@* } alias cloneban { //mode $C +bbb *1!*@* *2!*@* *3!*@* //mode $C +bbb *4!*@* *5!*@* *6!*@* //mode $C +bbb *7!*@* *8!*@* *9!*@* //mode $C +b *0!*@* } alias lameban {quote MODE $C +bb *!*\;*@* *!*\$*@*} alias banbot {botban} alias banclone {cloneban} alias banlame {lameban} alias topic { if (rmatch($0 #*)) {//topic $0-} {//topic $C $0-} } alias t {topic $0-} alias net { if ([$0]) { zecho $BTSX Creating a window on server $0- zecho $BTSX Type ^W to switch between windows and /wk to kill the current window. window new if ([$1]) {eval window server $0:$1::_$N} {eval window server $0:6667::_$N} } { zecho $BTSX /net [] zecho $BTSX zecho $BTSX /net creates a new window and connects it to . zecho $BTSX To switch windows, hit ^W zecho $BTSX zecho $BTSX /wk kills the current window. zecho $BTSX /wh hides the current window. zecho $BTSX /ws shows all windows. } } alias wk {window kill} alias wh {window hide} alias ws { window show 2 window show 1 window balance } alias unbanlop { if ([$3]) { //mode $C -bbb $0 $1 $2 unbanlop $3- } { if ([$2]) { //mode $C -bbb $0 $1 $2 } { if ([$1]) { //mode $C -bb $0 $1 } { if ([$0]) { //mode $C -b $0 } } } } } alias lban { if ([$3]) { //mode $C +bbb $0 $1 $2 lban $3- } { if ([$2]) { //mode $C +bbb $0 $1 $2 } { if ([$1]) { //mode $C +bb $0 $1 } { if ([$0]) { //mode $C +b $0 } } } } } alias clearban { ^set display off ^local cdbanz $0!$3@$4 ^assign -cbunband ^on -367 * { ^assign cbunband $2 ${cbunband} } //^mode $C +b wait ^unbanlop $cbunband ^set display on ^on 367 - } alias listmassvop { quote MODE $C +vvv $0 $1 $2 if ([$3]) {listmassvop $3-} } alias listmassdevop { quote MODE $C -vvv $0 $1 $2 if ([$3]) {listmassdevop $3-} } alias massop { ^on ^who * {if ((!rmatch($2 *@*))&&([$1] != [$N])) {^assign OPNIX $1 ${OPNIX}}} ^who * wait ^op $OPNIX ^assign -OPNIX ^on who - * } alias massvop { ^on ^who * {if (!rmatch($2 *+*)) {^assign VOPNIX $1 ${VOPNIX}}} ^who * wait ^listmassvop $VOPNIX ^assign -VOPNIX ^on who - * } alias massdevop { ^on ^who * {if ([$1] != [$N]) {^assign DEVOPNIX $1 ${DEVOPNIX}}} ^who * wait ^listmassdevop $DEVOPNIX ^assign -DEVOPNIX ^on who - * } alias ban { if ([$0]) { Userhost $0 -CMD if ([$3]) { if ([$4]!=[]) { ^local tempvar $3 @ uname = [tempvar] - 1 @ tamp = [$4] if (ischanop.tb($0 $C)) {//mode $C -o+b $0 *!*$3@*$right(${@tamp-index(. $4)} $4)} {//mode $C +b *!*$3@*$right(${@tamp-index(. $4)} $4)} } { zecho $BTSX Cannot find $0 } } } { //mode $C b } ^assign -tamp ^assign -uname } alias megaban { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$4] != []) { if (ischanop.tb($0 $C)) {//mode $C -o+bb $0 $banfilter(*!$3@$4) $banfilter($0!*@*)} {//mode $C +bb $banfilter(*!$3@$4) $banfilter($0!*@*)} } {zecho $BTSX Cannot find $0} } } {//mode $C b} } alias userban { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$4] != []) {//mode $C +b *!*$strip(~ $3)@*} {zecho $BTSX Cannot find $0} } } {//mode $C b} } alias hostban { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$4] != []) {//mode $C +b *!*@$4} {zecho $BTSX Cannot find $0} } } {//mode $C b} } alias masskick { ^local KICKMSG $0- ^on ^who * {if ([$1] != [$N]) {kick $0 $1 $KICKMSG}} ^who * wait ^on who - * } alias lkick { ^on ^who * {if (([$1] != [$N])&&(!rmatch($2 *@*))) {kick $0 $1 $BTSX Non-Operator Kick}} ^who * wait ^on who - * } alias mkick { ^local KICKMASK *$0* ^local KICKMASK2 $0 ^if ([$1]) {^local KICKMASK2 $1-} {} ^on ^who * {if ((rmatch($1!$3@$4 $KICKMASK))&&([$1] != [$N])) {kick $0 $1 $BTSX MassKick: $KICKMASK2}} ^who * wait ^on who - * } alias mbkick { ^local KICKMASK *$0* ^local KICKMASK2 $0 ^on ^who * { if ((rmatch($1!$3@$4 $KICKMASK))&&([$1] != [$N])) { ^local SHITNICKS $1 ${SHITNICKS} ^local SHITBANS *!*$strip(~ $3)@$4 ${SHITBANS} } } ^who * wait ^on who - * listmdop $SHITNICKS lban $SHITBANS sleep 1 ^on ^who * { if ((rmatch($1!$3@$4 $KICKMASK))&&([$1] != [$N])) {kick $0 $1 $BTSX MassBanKick: $KICKMASK2} } ^who * wait ^on who - * } alias massban { ^on ^who * {if ([$1] != [$N]) {^local SHITBANS *!*$strip(~ $3)@$4 ${SHITBANS}}} ^who * wait ^on who - * lban $SHITBANS } alias listmdop { quote MODE $C -booo *!*@*.* $0 $1 $2 if ([$3]) {listmdop $3-} } alias listmdopmega { quote MODE $C $mdopmm $0 $1 $2 $3 if ([$4]) {listmdopmega $4-} } alias botkick {botkill $0-} alias botkill { if ([$0]) { ^Userhost $0 -CMD if ([$3]) { if ([$4] != []) { ^local KMASK *!*$strip(~ $3)@$4 mbkick $KMASK } {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick} } alias hostkick {kickhost $0-} alias kickhost { if ([$0]) { eval ^local KHOST $0 ^on ^who * { if ((rmatch($4 $KHOST))&&([$1] != [$N])) {kick $C $1 $BTSX Host Kick: ${KHOST}} } ^who * wait ^on who - * } {zecho $BTSX You must specify at least one host} if ([$1]) {kickhost $1-} } alias massdeop { ^set display off on ^who * { if ([$1] != [$N]) { if (rmatch($2 *@*)) { ^local mdopz $1 ${mdopz} } } } ^who -chops * wait ^set display on listmdop $mdopz ^on who - * } alias megamassdeop { ^set display off on ^who * { if ([$1] != [$N]) { if (rmatch($2 *@*)) { ^local mdopz $1 ${mdopz} } } } ^who -chops * wait ^set display on listmdopmega $mdopz ^on who - * } alias massdeop1 { ^on ^who * {if ((rmatch($2 *@*))&&([$1] != [$N])) {//mode $0 -o $1}} ^who -chops * wait ^on who - * } alias listdcc { ^dcc send $0 $SENDFIL if ([$1]) {listdcc $1-} } alias massdcc { ^assign -DCCPPL ^assign SENDFIL $0- ^on ^who * {if ([$1] != [$N]) {^assign DCCPPL $1 ${DCCPPL}}} ^who * wait ^on who - * ^listdcc $DCCPPL ^timer 60 ^assign -SENDFIL ^timer 60 ^assign -DCCPPL zecho $BTSX Sent DCC SEND request to everyone in $C } alias randnick { ^set display off @ NUMLAMERS = 0 on ^who * { if ([$1] != [$N]) { @ NUMLAMERS = NUMLAMERS + 1 ^local LAMERS $1 ${LAMERS} } } ^who * wait wait ^set display on eval ^assign FUNCTION_RETURN $word($rand($NUMLAMERS) $LAMERS) ^assign -NUMLAMERS ^on who - * } alias rkick { eval ^local RKNICK $randnick() kick $C $RKNICK $BTSX Random Kick } alias massinv { if ([$0]) { ^on ^who * { if (([$1] != [$N])&&([$0] != [$C])) {eval ^timer $rand(30) //invite $1 $C} } zecho $BTSX Inviting users found with command '/who $0-' to channel $C //^who $0- wait ^on who - * } {zecho $BTSX /massinv - Where is exactly as if it were a /who command.} } alias massmsg { fe ($onchannel()) nick {msg $nick $0-} ^assign MSGTYPE massmsg ^assign LASTSSNICK $C } alias remaop {foreach AUTOOPS XX {if (rmatch($AUTOOPS[$XX] $0)) {noaop $XX}}} alias remabkick {foreach AUTOKICKS XX {if (rmatch($AUTOKICKS[$XX] $0)) {noabkick $XX}}} alias friend { if ([$0]) { Userhost $0 -CMD if ([$3]) { if ([$4]!=[) { ^local tempvar $3 @ uname = [tempvar] - 1 @ tamp = [$4] remabkick *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) aop *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) ^notice $0 * You have been added to my auto-op (friends) list. } {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick.} ^assign -tamp ^assign -uname } alias enemy { if ([$0]) { Userhost $0 -CMD if ([$3]) { if ([$4]!=[) { ^local tempvar $3 @ uname = [tempvar] - 1 @ tamp = [$4] remaop *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) abkick *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) } {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick.} ^assign -tamp ^assign -uname } alias nofriend { if ([$0]) { Userhost $0 -CMD if ([$3]) { if ([$4]!=[) { ^local tempvar $3 @ uname = [tempvar] - 1 @ tamp = [$4] remaop *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) } {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick.} ^assign -tamp ^assign -uname } alias noenemy { if ([$0]) { Userhost $0 -CMD if ([$3]) { if ([$4]!=[) { ^local tempvar $3 @ uname = [tempvar] - 1 @ tamp = [$4] remabkick *!*$mid(1 $uname $3)@*$right(${@tamp-index(. $4)} $4) } {zecho $BTSX Cannot find $0} } } {zecho $BTSX You must specify a nick.} ^assign -tamp ^assign -uname } alias signoff { if ([$0]) { eval zecho $BTSX Signoff: $N \($0-\) //signoff $0- } { eval zecho $BTSX Signoff: $N \($SIGNOFFSTR) //signoff $SIGNOFFSTR } } alias exit {signoff $0-} alias quit {signoff $0-} alias cat {exec cat $0-} alias rm {exec $RMCMD $0-} alias ps {exec $PSCMD $0-} alias kps {exec kill -9 $0-} alias ex {exec $0-} alias ls {exec ls -l} alias netwatch { if ([$0] == [ON]) {umode +sw} if ([$0] == [OFF]) {umode -sw} } alias maxidle { if (([$0] == [off]) || ([$0] == 0)) { zecho $BTSX Auto /setaway turned OFF ^assign MAXIDLE 0 } {^eval assign MAXIDLE $0 ^eval zecho $BTSX Auto /setaway idle time (in seconds): ${MAXIDLE} } } alias idle {maxidle $0} alias idletime {id} alias id { ^stack push on 301;^stack push on 311;^stack push on 312;^stack push on 313;^stack push on 317;^stack push on 319;^stack push on 318 ^on ^301 "*" # ^on ^311 "*" # ^on ^312 "*" # ^on ^313 "*" # ^on ^317 "*" {zecho $BTSX $1 has been idle $tdiff($2).} ^on ^319 "*" # ^on ^318 "*" { ^stack pop on 301;^stack pop on 311;^stack pop on 312;^stack pop on 313;^stack pop on 317;^stack pop on 318;^stack pop on 319 } ^whois $0 $0 } alias hopcount {hop} alias hop { @ HOPNICK = [$0] ^on ^315 "% $0 *" {^on ^315 -"% $HOPNICK *";assign -HOPNICK} ^on ^352 "% $0 *" { zecho $BTSX $1 is $6 server hops away. ^on ^352 -"% $HOPNICK *" } ^who $0 } # /dns writen by crackbaby. only works with epic4 alias dns { if ([$EPIC4]==[YES]) { if ([$0]) { if (index(. $0) != -1) { zecho $BTSX Looking up $0 ... # Translate /dns *.domain.com into 'host -l domain.com' # and /dns machine.host.net into 'host machine.host.net' exec host ${(!index(* $0)) ? [-l $after(1 . $0)] : [$0]} } else { userhost $0 -cmd { if ([$3] != [) { zecho $BTSX Looking up $0 \($3@$4) ... exec host $4 } else { zecho $BTSX $0: No such nick. } } } } else { zecho $BTSX Usage /dns } } if ([$EPIC4]==[NO]) {zecho $BTSX /dns requires ircII epic4 or better.} } # all # Performs on all channels you're on. "$chan" will be evaluated # as the channel name. Ex: /all mode $chan +l 38041 alias all {fe ($mychannels()) chan {eval $*}} # anti ansi bomb stuff. makes "/set display_ansi on" safe. ^on ^window "% **" {xecho -w $stripansi($1-)} ^on ^window "% *[\?3;5h*" {xecho -w $stripansi($1-)} ^on ^window "% *B00*" {xecho -w $stripansi($1-)} ^on ^window "% *[??;??H*" {xecho -w $stripansi($1-)} ^on ^window "% *??EMSI_IRQ*" {xecho -w $stripansi($1-)} ^on ^window "% *[[*9999*C[1*" {xecho -w $stripansi($1-)} on ^timer * { if ([$rand(10)] == 2) {eval ^Userhost $N -CMD if ([$3])} ^assign MYHOST ${N}!$X eval if (!rmatch($M *k*)) {^set status_mode (+%+)} if (([$AWAY] == [NO]) && (MAXIDLE != 0) && ((time() - LASTOUT) > MAXIDLE)) { @ SATIME = time() setaway Automagically set away at $stime($SATIME) } {} } on ^353 * { ^if ([${QUIET}]) {} {zecho $BTSX Users on $2: $3-} } on ^send_public * { {zecho <11${N}:11${C}> $1-} ^eval assign LASTOUT $time() } on ^msg "% invite #% **" {floodmsg $0-} on ^send_msg * { zecho -> 11[msg\($0)\11] $1- ^tk.addmsg $0 $tk.msglist ^assign MSGTYPE msg ^assign LASTSSNICK $0 ^timer -delete 1 ^eval assign LASTOUT $time() } alias oops { ^eval assign OOPSNEW $0 if ([$LASTSSNICK]){ ^eval zecho -> 11*${OOPSNEW}11* $B ^eval quote PRIVMSG ${OOPSNEW} :$B } {} } on ^send_notice * {zecho -> -$0- $1-} on ^send_dcc_chat * { zecho -> =$0= $1- ^tk.addmsg \=$0 $tk.msglist } on ^msg "% ***" {floodmsg $0-} on ^msg "% *[H*[J*[7m*" {floodmsg $0-} on ^msg "% ***" {floodmsg $0-} alias floodmsg { if ([$FLOODPRO] == [ON]) { msgout $0 $BFLOOD ^tk.addmsg $0 $tk.msglist ^assign LASTFLNICK $0 ^assign LASTMSG *$0* $BFLOOD } { msgout $0 $1- ^assign LASTMSG *$0* $1- } if ([$AWAY] == [YES]) { @ NUMMSGS = NUMMSGS + 1 ^eval set status_away \(Msgs: $NUMMSGS\) ^assign MSGNICKS[$NUMMSGS] $0 if ([$FLOODPRO] == [ON]) {^assign MSGS[$NUMMSGS] $BFLOOD} {^assign MSGS[$NUMMSGS] $1-} ^notice $0 Msg scribbled down. w00w00 - [TextSox] } } on ^msg * { eval set STATUS_USER3 $NUMMSGS @ TEMPMSG = [11[$0\\($strip(~ $Userhost())\)11] $1-\] @ TEMPMSGS = [11[$0\\($strip(~ $Userhost())\)11]] @ LASTNOBEEP = [11[$0\\($strip(~ $Userhost())\)11] $1-] zecho 11[$0\\($strip(~ $Userhost())\)11] $1- ^tk.addmsg $0 $tk.msglist ^assign LASTMSG $tempmsg if ([$AWAY] == [YES]) { @ NUMMSGS = NUMMSGS + 1 ^eval set status_away \(Msgs: $NUMMSGS\) ^assign MSGNICKS[$NUMMSGS] $tempmsgs ^assign MSGS[$NUMMSGS] $1- ^assign MSGTIME[$NUMMSGS] $time() if ([$LASTNIG] == [$0]) { ^assign LASTNIG $0 } { if ([$SCRIBBLE] == [ON]) {^notice $0 Msg scribbled down - [TextSox] } ^assign LASTNIG $0 } } } on ^notice "% **" {floodnotice $0-} on ^notice "% *[H*[J*[7m*" {floodnotice $0-} on ^notice "% ***" {floodnotice $0-} alias floodnotice { ^tk.addmsg $0 $tk.msglist if ([$FLOODPRO] == [ON]) { zecho -$0- $BFLOOD ^assign LASTFLNICK $0 } {zecho -$0- $1-} } on ^notice "Help_* ***" {floodnotice $0-} on ^notice "Help_*" {zecho $BHELP $1-} on ^notice "help.*" {zecho $BHELP $1-} on ^notice * { zecho -$0- $1- ^tk.addmsg $0 $tk.msglist } on ^dcc_chat "%b?t *" {zecho =$0= $1-} on ^dcc_chat "%s?rv *" {zecho =$0= $1-} on ^dcc_chat "%srv *" {zecho =$0= $1-} on ^dcc_chat "%b?tx *" {zecho =$0= $1-} on ^dcc_chat * { zecho =$0= $1- ^tk.addmsg \=$0 $tk.msglist } on ^public "% % ****" {pubflood $0-} on ^public "% % *[H*[J*[7m*" {pubflood $0-} on ^public "% % ***" {pubflood $0-} on ^public_notice "% % *[H*[J*[7m*" {pubnotflood $0-} on ^public_notice "% % ***" {pubnotflood $0-} alias pubflood { if ([$FLOODPRO] == [ON]) { pubecho $0 $1 $BFLOOD ^assign LASTFLNICK $0 } {pubecho $0 $1 $2-} } alias pubnotflood { if ([$FLOODPRO] == [ON]) { zecho -$0:$1\- $BFLOOD ^assign LASTFLNICK $0 } {zecho -$0:$1\- $2-} } alias pubecho { if ([$1] == [$C]) {zecho <$0> $2-} {zecho <$0:$1> $2-} } on ^ctcp "% % ***" { if ([$CTNOISE] == [ON]) {zecho $BTSX Unknown CTCP $BFLOOD from $0 to $1: $BFLOOD} ^assign LASTFLNICK $0 } on -ctcp "% % *" { if (([$isusedctcp($2)] == [NO])&&([$CTNOISE] == [ON])) {zecho $BTSX Unknown CTCP $2 from $0 to $1: $3-} } on ^ctcp_reply "% % ***" { if ([$CTNOISE] == [ON]) {zecho $BTSX CTCP $BFLOOD reply from $0: $BFLOOD} ^assign LASTFLNICK $0 } alias nick { if ([$0]) { ^eval on ^public -"% % *$N*" ^eval on ^public_other -"% % *$N*" //nick $0 ^eval assign CURN $0 ^eval on ^public "% % *$0*" { zecho <$0:$1> $2- awaytest $0- } ^eval on ^public_other "% % *$0*" { zecho <11$011:$1> $2- awaytest $0- } ^assign MYHOST $0!$X } } alias awaytest { if ([$AWAY] == [YES]) { @ NUMMSGS = NUMMSGS + 1 ^assign MSGNICKS[$NUMMSGS] 11[11$0 ^assign MSGS[$NUMMSGS] \($1)\11]11 $2- ^assign MSGTIME[$NUMMSGS] $time() } } on -invite * {if ([$AJOININV] == [ON]) {join $1}} on ^invite "% **" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% **" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% *1111*" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% *???*" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% *???*" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% *?11?11?*" {zecho $BINV $0 invites you to channel $1 (FAKE)} on ^invite "% *" {zecho $BINV $0 invites you to join channel $1 (Ctrl-K to join)} ^on ^301 "*" if (newaway.show($*)) {zecho *** 11Away : $0 is away, $1- } ^on ^305 "*" {} ^on ^306 "*" {zecho $BTSX You have been marked as being away} ^on ^311 "*" { zecho $BTSX Whois Information for: 11$1 zecho *** 11Hostname : $2@$3 zecho *** 11Gecos : $5- } ^on ^312 "*" {if ([$EPIC4]==[YES]) {zecho *** 11Server : $2 \($3-\)}{zecho *** 11Server : $1 \($2-\)}} ^on ^313 "*" {zecho *** 11Oper : $1 is an IRC Operator} ^on ^314 "*" { zecho $BTSX Whowas Information for: 11$1 zecho *** 11Hostname : $2@$3 zecho *** 11Gecos : $5- } ^on ^315 "*" {zecho $BTSX End of /WHO list} ^on ^317 "*" { if (isnum($3)==1) { zecho *** 11Idle : $tdiff($2) zecho *** 11Signed on : $stime($3)}{ zecho *** 11Idle : $tdiff($2) } } ^on ^318 "*" {zecho $BTSX End of /WHOIS list} ^on ^319 "*" {if ([$EPIC4]==[YES]) {zecho *** 11Channels : $2-}{zecho *** 11Channels : $1-}} ^on ^321 "*" {} ^on ^322 "*" {zecho $BLIST $1 \($2 users\) - $3-} ^on ^323 "*" {zecho $BTSX End of /LIST} ^on ^324 "*" {zecho $BTSX Modes for $1: $2-} ^on ^329 "*" {zecho $BTSX $1 was created on $mid(4 12 $stime($2)) $3-} ^on ^331 "*" {zecho $BTSX $1: No topic is currently set} ^on ^332 "*" {zecho $BTSX Topic for $1: $2-} ^on ^333 "*" {zecho $BTSX Topic for $1 set by $2 on $mid(4 15 $stime($3))} ^on ^341 "*" {zecho $BTSX Inviting $1 to $2} ^on ^351 "*" {zecho $BVER $2 \($1\) $3-} ^on ^352 "*" {zecho $BWHO $0 $1 $2 \($3\@$4\)} ^on ^366 "*" {zecho $BTSX End of /NAMES list} ^on ^367 "*" {zecho $BBAN $1 $2 \($3\)} ^on ^368 "*" {zecho $BTSX End of $2 ban list} ^on ^369 "*" {zecho $BTSX End of /WHOWAS list} ^on ^381 "*" {zecho $BTSX You are now an IRC Operator} ^on ^382 "*" {zecho $BTSX Rehashing $1} ^on ^401 "% % *such nick/channel*" {zecho $BTSX $1: No such nick/channel} ^on ^402 "% % *such server*" {zecho $BTSX $1: No such server} ^on ^403 "% % *such channel*" {zecho $BTSX $1: No such channel} ^on ^404 "*" { synch $0- zecho $BTSX $1: Cannot send to channel } ^on ^405 "% % *too many channels*" {zecho $BTSX $1: You have joined too many channels} ^on ^406 "% % *no such nickname*" {zecho $BTSX $1: There was no such nick} ^on ^432 "*" {zecho $BTSX $1: Erroneous nick} ^on ^433 "*" {zecho $BTSX $1: Nick already in use} ^on ^436 "*" {zecho $BTSX $1: Collision Kill} ^on ^441 "*" {zecho $BTSX $1 is not in $2} ^on ^442 "*" {zecho $BTSX You aren't in $1} ^on ^443 "*" {zecho $BTSX $1 is already in $2} ^on ^467 "*" {zecho $BTSX The channel key is already set)} ^on ^471 "*" {zecho $BTSX You cannot join $1 (it's full)} ^on ^472 "*" {zecho $BTSX $1: Unknown mode} ^on ^473 "*" {zecho $BTSX You cannot join $1 (it's invite-only)} ^on ^474 "*" {zecho $BTSX You cannot join $1 (you're banned)} ^on ^475 "*" {zecho $BTSX You cannot join $1 (incorrect key)} ^on ^481 "*" {zecho $BTSX You're not an IrcOp} ^on ^482 "*" { synch $0- zecho $BTSX $1: You're not opped } alias genstr { ^assign -AUTOOPSTRS ^assign -AUTOKICKSTRS foreach AUTOOPS XX { if (rmatch($AUTOOPS[$XX] *!*@*)) {^assign AUTOOPSTRS $AUTOOPS[$XX] ${AUTOOPSTRS}} } foreach AUTOKICKS XX { if (rmatch($AUTOKICKS[$XX] *!*@*)) {^assign AUTOKICKSTRS $AUTOKICKS[$XX] ${AUTOKICKSTRS}} } } alias checkauto { if ((rmatch($1 $AUTOOPSTRS))&&(ischanop.tb($N $0))) { //mode $0 +o $nickonly($1) eval ^timer 2 zecho $BAOP $nickonly($1) has been op'ed by your auto-op $2- } if ((rmatch($1 $AUTOKICKSTRS))&&(ischanop.tb($N $0))) { ^eval local rm $rmatch($1 $AUTOKICKSTRS) @ abkhm = word(($rm-1) $AUTOKICKSTRS) //mode $0 -o+b $nickonly($1) $abkhm ^assign -abkhm kick $0 $nickonly($1) $BTSX Auto BanKick eval ^timer 2 zecho $BABK $nickonly($1) has been bkick'ed by your auto-bkick } } on -raw_irc "% PRIVMSG % :OP**" { ^local OPCHAN $strip( $4) if (!ischannel($OPCHAN)) {eval ^local OPCHAN $C} if ((rmatch($0 $AUTOOPSTRS))&&(ischanop.tb($N $OPCHAN))) { //mode $OPCHAN +o $nickonly($0) zecho $BAOP $nickonly($0) has been op'ed on channel $OPCHAN (via CTCP OP) }} on -raw_irc "% PRIVMSG % :**HELP**" { if (rmatch($0 $AUTOOPSTRS)) { ^ctcphelp $nickonly($0) zecho $BTSX $nickonly($0) requested help (via CTCP HELP) } } on -raw_irc "% PRIVMSG % :NAMES**" { if (rmatch($0 $AUTOOPSTRS)) { ^local NAMESCHAN $strip( $4) if (!ischannel($NAMESCHAN)) {eval ^local NAMESCHAN $C} if (!match($NAMESCHAN $MYCHANNELS())) { ^notice $nickonly($0) I am not on channel $NAMESCHAN } { eval ^on ^names "$NAMESCHAN *" {^local THEUSERZ $1-} ^names $NAMESCHAN wait eval ^on names - "$NAMESCHAN *" ^notice $nickonly($0) Users on channel ${NAMESCHAN}: ${THEUSERZ} zecho $BTSX $nickonly($0) requested a list of users on channel $NAMESCHAN (via CTCP NAMES) }}} on -raw_irc "% PRIVMSG % :INVITE**" { ^local INVCHAN $strip( $4) if (!ischannel($INVCHAN)) {eval ^local INVCHAN $C} if (rmatch($0 $AUTOOPSTRS)) { if (!match($INVCHAN $MYCHANNELS())) { ^notice $nickonly($0) I am not on channel $INVCHAN } { //^invite $nickonly($0) $INVCHAN zecho $BTSX $nickonly($0) has been invited to $INVCHAN (via CTCP INVITE) }}} on -raw_irc "% PRIVMSG % :UNBAN**" { ^local UNBANCHAN $strip( $4) if (!ischannel($UNBANCHAN)) {eval ^local UNBANCHAN $C} if (rmatch($0 $AUTOOPSTRS)) { if (ischanop.tb($N $UNBANCHAN)) { unban_nick $nickonly($0) $UNBANCHAN if ([$UNBANNEDTHELAMER] == [NO]) {^notice $nickonly($0) [TextSox] You are not banned on $UNBANCHAN } {^notice $nickonly($0) [TextSox] You have been unbanned on $UNBANCHAN } } {^notice $nickonly($0) [TextSox] I am not op on $UNBANCHAN } zecho $BTSX $nickonly($0) requested to be unbanned on channel $UNBANCHAN (via CTCP UNBAN) } ^assign -UNBANNEDTHELAMER } on ^join * { zecho $BJOIN $0 \($USERHOST()\) has joined channel $1 ^checkauto $1 $0!$USERHOST() } on ^leave * {zecho $BPART $0 \($USERHOST()\) has left channel $1} on ^signoff * {zecho $BSOFF $0 \($1-\)} on ^nick * {zecho $BNICK $0 is now known as $1} on ^kick * {zecho $BKICK $0 has been kicked from $2 by $1 \($3-\)} on ^topic * {zecho $BTOPIC $0 has changed the topic on $1 to "$2-"} alias uban { if (ischanop.tb($N $0)) { if ([$1] != [$N]) { //mode $0 -ob $1 $2 if ([$NOTICES] == [ON]) {eval zecho $BTSX Ban protection activated!}} {//mode $0 -b $2} } } on ^mode "% #% *" { zecho $BMODE $0 sets mode "$2-" on $1 if ([$SERVOPPRO] == [ON]) { if ((rmatch($0 *.*))&&(rmatch($2 *+*o*))) { if (ischanop.tb($N $1)) { if ([$3]) {if (([$3] != [$N])&&(!rmatch($3 *!*@*))) {^local DOPNICKS $3 ${DOPNICKS}}} if ([$4]) {if (([$4] != [$N])&&(!rmatch($4 *!*@*))) {^local DOPNICKS $4 ${DOPNICKS}}} if ([$5]) {if (([$5] != [$N])&&(!rmatch($5 *!*@*))) {^local DOPNICKS $5 ${DOPNICKS}}} if ([$6]) {if (([$6] != [$N])&&(!rmatch($6 *!*@*))) {^local DOPNICKS $6 ${DOPNICKS}}} quote MODE $1 -oooo $DOPNICKS if ([$NOTICES] == [ON]) { if ([$3]) {nnotice $3 [TextSox] Server ops by $0 to you on $1 detected, removed.} if ([$4]) {nnotice $4 [TextSox] Server ops by $0 to you on $1 detected, removed.} if ([$5]) {nnotice $5 [TextSox] Server ops by $0 to you on $1 detected, removed.} } } } } if (([$AUTOUNBAN] == [ON])&&(rmatch($2 *+*b*))) { if (rmatch($MYHOST $3)) {uban $1 $0 $3} if (rmatch($MYHOST $4)) {uban $1 $0 $4} if (rmatch($MYHOST $5)) {uban $1 $0 $5} if (rmatch($MYHOST $6)) {uban $1 $0 $6} } if (rmatch($2 *+k*)) { if ([$KEYPRO] == [ON]) { if (rmatch($3 **)) { ^set status_mode () zecho $BTSX Channel key bomb protection activated! Normal mode display will be restored after key is removed. if (([$0] != [$N])&&(ischanop.tb($N $1))) {//mode $1 -k $3} } if (rmatch($3 *B0*)) { ^set status_mode () zecho $BTSX Channel key bomb protection activated! Normal mode display will be restored after key is removed. if (([$0] != [$N])&&(ischanop.tb($N $1))) {//mode $1 -k $3} } } ^assign CHANKEY $3 } } on -raw_irc "% MODE #% *" { if (([$MASSPRO] == [ON])&&(rmatch($3 *-o*))) { ^local MNICK $nickonly($0) if ((ischanop.tb($N $2))&&([$MNICK] != [$N)) { ^local MMODE $strip(: $3) if ((rmatch($MMODE *-ooo*))&&([$MNICK] != [$LASTMASSDEOP])) { quote MODE $2 -o $MNICK mdopreact $MNICK $2 ^assign LASTMASSDEOP $MNICK ^timer 10 ^assign -LASTMASSDEOP } if ((rmatch($MMODE *-oo*))&&([$MNICK] != [$LASTMASSDEOP)) { if (([$MNICK] == [$LASTDEOPNICK])&&([$2] == [$LASTDEOPCHAN])) { quote MODE $2 -o $MNICK mdopreact $MNICK $2 ^assign LASTMASSDEOP $MNICK ^timer 10 ^assign -LASTMASSDEOP } ^assign LASTDEOPNICK $MNICK ^assign LASTDEOPCHAN $2 ^timer 8 ^assign -LASTDEOPNICK } if ((rmatch($MMODE *-o+o*-o*))&&([$MNICK] != [$LASTMASSDEOP])) { quote MODE $2 -o $MNICK mdopreact $MNICK $2 ^assign LASTMASSDEOP $2 ^timer 10 ^assign -LASTMASSDEOP } if ((rmatch($MMODE *+o-o+o*))&&([$MNICK] != [$LASTMASSDEOP])) { quote MODE $2 -o $MNICK mdopreact $MNICK $2 ^assign LASTMASSDEOP $2 ^timer 10 ^assign -LASTMASSDEOP } } } } on ^mode * {zecho $BMODE $0 sets mode "$2-" on $1} alias mdopreact { if (ischanop.tb($N $1)) { if ([$MASSDEF] != [DEOP]) {kick $1 $0 $BTSX Massdeop detected} } } on -channel_nick * { if ([$NFPRO] == [ON]) { if (([$1] == [$LASTNICKCHANGE])&&([$2] != [$LASTNICKFROM])) {if (ischanop.tb($N $0)) {kick $0 $2 $BTSX Nick flood detected}} if ([$2] != [$N]) {^assign LASTNICKCHANGE $2} ^assign LASTNICKFROM $1 ^timer 3 ^assign -LASTNICKCHANGE } } on -raw_irc "% KICK % %*" { if (([$AJOINKICK] == [ON])&&([$3] == [$N])) {join $2} if ([$MASSPRO] == [ON]) { if (([$0] == [$LASTKICKNICK])&&([$2] == [$LASTKICKCHAN])) { if (([$nickonly($0)] != [$N])&&([$rand(8)] == 2)) {mkickdop $nickonly($0) $2} } } ^assign LASTKICKCHAN $2 ^assign LASTKICKNICK $0 ^timer 10 ^assign -LASTKICKNICK } alias mkickdop { if (ischanop.tb($N $1)) { if ([$MASSDEF] == [DEOP]) {quote MODE $1 -o $0} {kick $1 $0 $BTSX Masskick detected} } } on ^pong "*" {IF ([$0]==[$S]) {^set status_user2 [Lag: $tdiff2(${time() - temp.getlag})]}} on ^raw_irc "% PRIVMSG % :*ECHO**" # on ^raw_irc "% PRIVMSG % :*%INFO**" # on ^raw_irc "% PRIVMSG % :*TIME**" # on ^raw_irc "% PRIVMSG % :**DCC***" {dcctsudetect $0} on ^raw_irc "% NOTICE % :**DCC***" {dcctsudetect $0} alias dcctsudetect { if ([$ICTCPFLOOD] != [Y]) { zecho $BTSX DCC TSUNAMI flood from $nickonly($0) detected! ^assign ICTCPFLOOD Y ^timer 40 ^assign -ICTCPFLOOD } } on ^raw_irc "% PONG **" { if ([$ICTCPFLOOD] != [Y]) { zecho $BTSX PONG flood from $nickonly($0) detected! ^assign ICTCPFLOOD Y ^timer 40 ^assign -ICTCPFLOOD } } on ^raw_irc "% PRIVMSG % :*DCC SEND* 6667**" { if ([$ICTCPFLOOD] != [Y]) { zecho $BTSX DCC AUTOGET bomb from $nickonly($0) detected! ^assign ICTCPFLOOD Y ^timer 40 ^assign -ICTCPFLOOD } } on ^raw_irc "% PRIVMSG % :*****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**OP****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**INVITE****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**HELP****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**NAMES****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**UNBAN****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**PING****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**FINGER****" {stackedflood $0} on ^raw_irc "% PRIVMSG % :**VER****" {stackedflood $0} alias stackedflood { if ([$ICTCPFLOOD] != [Y]) { zecho $BTSX Stacked CTCP flood from $nickonly($0) detected! ^assign ICTCPFLOOD Y ^timer 40 ^assign -ICTCPFLOOD } } on ^raw_irc "% PRIVMSG % :PING**" { if (ischannel($2)) {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) pinged everyone in $2. CTCP responding is $CTRSP}} {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) pinged you. CTCP responding is $CTRSP}} if ([$CTRSP] == [ON]) {^notice $nickonly($0) PING $4} eval ^assign LASTPINGER $right(10 $0) ^timer 10 ^assign -LASTPINGER } on ^raw_irc "% PRIVMSG % :FINGER**" { if (ischannel($2)) {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) requested finger information for everyone in $2}} {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) requested finger information for you.}} if ([$CTRSP] == [ON]) { if ([$LASTFINGERER] != right(10 $0)) { ^notice $nickonly($0) $FINGERMSG eval ^assign LASTFINGERER $right(10 $0) ^timer 10 ^assign -LASTFINGERER } } } on ^raw_irc "% PRIVMSG % :VER**" { if (ischannel($2)) {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) requested the version of everyone in $2. CTCP responding is $CTRSP}} {if ([$CTNOISE] == [ON]) {zecho $BCTCP $nickonly($0) requested your version. CTCP responding is $CTRSP}} if ([$CTRSP] == [ON]) { if ([$LASTVERSIONER] != right(10 $0)) { ^notice $nickonly($0) $VERMSG eval ^assign LASTVERSIONER $right(10 $0) ^timer 1 ^assign -LASTVERSIONER } } } alias userprot { ^assign -AUTOOPSTR if (([$UPROT] == [ON])&&(ischanop.tb($N $1))) { if (rmatch($0 $AUTOOPSTR)) { zecho $BTSX Kicking $2 off $1 for deopping $0 kick $1 $2 That User Was Protected Asswipe! //mode $1 +o $nickonly($0) } } } alias bprot { ^assign -AUTOOPSTR if (([$BPROT] == [ON])&&(ischanop.tb($N $1))) { if (rmatch($0 $AUTOOPSTR)) { zecho $BTSX Banning/kicking $2 off $1 for banning $0 //mode $1 -o+b $2 kick $1 $2 That User Was Protected Asswipe! //mode $1 +o-b $nickonly($0) $0 } } } alias kprot { ^assign -AUTOOPSTR if (([$KPROT] == [ON])&&(ischanop.tb($N $1))) { if (rmatch($0 $AUTOOPSTR) { zecho $BTSX Kicking $2 off $1 for kicking $0 kick $1 $2 That User Was Protected Asswipe! } } } on ^notify_signon * { ^Userhost $0 -CMD if ([$3]) { if ([$3] != []) {zecho $BNOT Signon by $0 [$3@$4] detected at $Z} } } on ^notify_signoff * {zecho $BNOT Signoff by $0 detected at $Z} assign NOTELEVELS KUFNMC on ^server_notice "% *Rec??ved KILL message*" { if ([$index(K $NOTELEVELS)] != -1) { if ([$KILLNOT] == [FULL]) {zecho $1-} { if (rmatch($10 *.*)) {zecho $BTSX Notice -- Received KILL for $strip(. $8) from server $10} {zecho $BTSX Notice -- Received KILL for $strip(. $8) from $10 $13-} } } } on ^server_notice "% *Notice -- Fake:*MODE*" {if ([$index(F $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Hack:*" {if ([$index(F $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Link with*established*" {if ([$index(C $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Rec??ved unauthorized connection*" {if ([$index(U $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- *unauthorized connection*.*" {if ([$index(U $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Server*closed *connection*" {if ([$index(C $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- No response*closing*" {if ([$index(C $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Lost connection*.*" {if ([$index(C $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Write error*.*" {if ([$index(C $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- Nick*collision*" {if ([$index(N $NOTELEVELS)] != -1) {zecho $1-}} on ^server_notice "% *Notice -- *" {if ([$index(M $NOTELEVELS)] != -1) {zecho $1-}} alias querylevels { if ([$index(K $NOTELEVELS)] != -1) {^local LEVS KILLS ${LEVS}} if ([$index(F $NOTELEVELS)] != -1) {^local LEVS FAKES ${LEVS}} if ([$index(N $NOTELEVELS)] != -1) {^local LEVS COLLISIONS ${LEVS}} if ([$index(U $NOTELEVELS)] != -1) {^local LEVS UNAUTHORIZED ${LEVS}} if ([$index(C $NOTELEVELS)] != -1) {^local LEVS CONNECTIONS ${LEVS}} if ([$index(M $NOTELEVELS)] != -1) {^local LEVS MISC ${LEVS}} ^assign FUNCTION_RETURN $LEVS } alias addlevel {if ([$index($0 $NOTELEVELS)] == -1) {^assign NOTELEVELS $0${NOTELEVELS}}} alias rmlevel {^assign NOTELEVELS $strip($0 $NOTELEVELS)} alias setlevels { if (rmatch($0 K*)) {^addlevel K} if (rmatch($0 -K*)) {^rmlevel K} if (rmatch($0 F*)) {^addlevel F} if (rmatch($0 -F*)) {^rmlevel F} if (rmatch($0 COL*)) {^addlevel N} if (rmatch($0 -COL*)) {^rmlevel N} if (rmatch($0 U*)) {^addlevel U} if (rmatch($0 -U*)) {^rmlevel U} if (rmatch($0 CON*)) {^addlevel C} if (rmatch($0 -CON*)) {^rmlevel C} if (rmatch($0 M*)) {^addlevel M} if (rmatch($0 -M*)) {^rmlevel M} if ([$0] == [ALL]) {^assign NOTELEVELS KFNUCM} if ([$1]) {^setlevels $1-} } alias boguspat {^assign isbogus.pats $isbogus.pats $0-;zecho $0- added} alias boguslist {zecho Pats: $isbogus.pats} alias bogusclear {^assign -isbogus.pats;zecho Bogus list clean} ^ON ^CHANNEL_SIGNOFF "% % %.% %.%" { if ([$NSPLIT] == [ON]) { if (isbogus($1-)) {zecho $BTSX Signoff: $1 \($2-\)} {^netbroke $encode($tolower($0)) $encode($1) $encode($2).$encode($3) $2 $3}} {zecho $BTSX Signoff: $1 \($2-\)}} alias netbroke { @ signcross[$2][$0][$1] = 1 @ signoffs[$0][$1] = [$2] @ splittime[$2] = time() ^if ( isbroke[$2] ) { } { zecho $BNSPLIT Netsplit at $Z \($3-\) @ isbroke[$2] = 1 @ splitname[$2] = [$3-] } } alias netjoined { if ( signoffs[$0][$1] ) { ^if ( isbroke[$signoffs[$0][$1]] ) { zecho $BNJOIN Netjoined at $Z \($splitname[$signoffs[$0][$1]]\) } ^assign -isbroke[$signoffs[$0][$1]] ^assign -signcross[$signoffs[$0][$1]][$0][$1] ^assign -signoffs[$0][$1] } {zecho $BJOIN $3 \($4\) has joined channel $2} } ^on #^timer 70 * netclean alias netclean { foreach splittime ii { foreach splittime.$ii jj { if ( time() - splittime[$ii][$jj] > 300 ) { foreach signcross.$(ii).$jj xx { foreach signcross.$(ii).$(jj).$xx yy { ^assign -signcross[$ii][$jj][$xx][$yy] ^assign -signoffs[$xx][$yy] } } ^assign -xx ^assign -yy ^assign -isbroke[$ii][$jj] ^assign -splitname[$ii][$jj] ^assign -splittime[$ii][$jj] } } } ^assign -ii ^assign -jj if ([$LAGOMETER] == [ON]) {getlag}{^set -status_user2} eval assign CURN $N } alias netpurge { purge isbroke purge splitname purge splittime purge signcross purge signoffs } alias showsplit { if ( [$($0)] ) { zecho $0 $($0) } foreach $0 ii { showsplit $0.$ii } ^assign -ii } alias wholeft { foreach signoffs ii { foreach signoffs.$ii jj { zecho $lformat(15 $decode($ii)) $lformat(10 $decode($jj)) $splitname[$signoffs[$ii][$jj]] } } ^assign -ii ^assign -jj } alias wl {wholeft} ^timer 22 eval ^assign MYHOST ${N}!$X ^timer 8 eval ^Userhost $N -CMD if ([$4]) {^assign HOSTROOT $left($index(. $4) $4)} eval ^nick $N eval ^load $TSXRC ^genstr ^statup eval $srand($time()) ^timer 50 ^if ([$HOSTROOT] == []) {^assign HOSTROOT .} ^timer 52 ^if ([$HOSTROOT] == []) {^assign HOSTROOT .} on ^notice "% %<%WallOp%>% *" { zecho \-$0\- $1- } alias notice99 { if (([$[1]0] == [@]) && ([$0] != [@] ## N)) { eval ^notice $strip(@ $0)  $notice1 @ sent = sent ## [ $0] } if ( [$1] ) { notice99 $1- } { zecho $BWALL WallOp sent to: $strip(@ $sent) ^assign -sent ^assign -notice1 ^assign -WALLCH } } alias wall { @ QUIET = 1 @ sent = [] zecho $BWALL Sending WallOp to $C, please wait. @ wallch =[$C] @ notice1 = [$0-] ^on #^353 -10 * notice99 $$3-\;^on #^353 -10 -* names $C wait ^assign -QUIET zecho -11$N11-  $0- } eval on ^public "% % *$N*" { zecho <$0:$1> $2- awaytest $0- } eval on ^public_other "% % *$N*" { zecho <$0:$1> $2- awaytest $0- } eval on ^public "% % *" { zecho <11$0:11$1> $2- } eval on ^public_other "% % *" { zecho <$0:$1> $2- } on ^ctcp_reply "% % *" { zecho $BCTCP $1 reply from $0: $2- } on ^action "*" { if ([$1] == [$C]) {zecho * $0 $2-} if ([$1] == [$N]) {zecho *11> $0 $2-} if ([$1] != [$C]) {if ([$1] != [$N]) {zecho * $0:$1 $2-}} } on ^send_action "*" { if ([$0] == [$C]) {zecho * $N $1-} {zecho -> 11[$011] * $N $1-} ^eval assign LASTOUT $time() } alias pinger {notice $0 PING1111 $1-} alias ponger {notice $0 PONG $1-} alias text {sendmsg $C $encode($0-)" $randcrap(2) -+ TEX1111T +-} alias ptext {sendmsg $0 $encode($1-)" $randcrap(2) -+ TEX1111T +-} alias sstrip {^assign FUNCTION_RETURN $strip(\;\(\)*/\\\{\}$$~`|'\"11 $0-)} # Timestamping stuff on ^timer *:00 {zecho $BTSX The time is: $Z} alias timestamp { if (match($0 ON OFF)) {^assign TS $onoff($0)} zecho $BTSX Timestamping is now $TS statup } alias ts {timestamp $0} # Message scribbling alias scribble { if (match($0 ON OFF)) {^assign SCRIBBLE $onoff($0)} zecho $BTSX Message scribbling is now $SCRIBBLE statup } # Mail notification on ^exec "from *" {zecho $BTSX Mail from: $sstrip($1-)} on ^exec_error "from *" # on ^mail "*" { ^exec -name from frm | tail -$0 zecho $BTSX You have new e-mail! \(Mail waiting: $1\) } # Customizable version reply alias verstring { ^assign VERMSGSTR $0- ^eval assign VERMSG VERSION $TSXLOGO $TSXVER \($J\) -/- $VERSGSTR ^eval zecho $BTSX Version reply changed to: $0- } ^eval assign VERMSG VERSION $TSXLOGO $TSXVER \($J\) -/- $VERMSGSTR # A /sayall alias to say something to all channels you're in at once alias sayall { ^fe ($mychannels()) chan {quote PRIVMSG $chan :$0-} zecho [11${N}=>11*] $0- } # Clears your /away message log alias clearmsg { @ NUMMSGS = 0 if ([$AWAY] == [YES]) {^eval set status_away \(Msgs: $NUMMSGS\)} statup zecho $BTSX Your message log is now empty. } # This keeps /alias with no parameters from making epic explode alias alias { if ([$0]) {//alias $0-} {zecho $BTSX Usage: /alias } } # A /cycle alias (partially stolen from venom.irc) alias cycle { if ([$0]) { zecho $BTSX Cycling on $0 ^local tmpchan $0}{ zecho $BTSX Cycling on $C ^local tmpchan $C} //part $tmpchan wait -CMD /join $tmpchan } alias leavejoin {cycle $0-} alias lj {cycle $0-} # Query aliases alias query { if ([$0]) {//query $0;^assign QUERY ON} {//query;^assign QUERY OFF} statup } alias talkto {query $0} alias endtalk {query} # Windowing stuff alias wnew { ^window double off window new } alias whnew { window new window hide } alias wxnew {window create} alias wkill { window kill setstatus } alias wxkill {window delete} alias wmbind { ^window level msgs zecho $BTSX Binding private messages to this window } alias wbind {window bind $0} alias wubind {window unbind $0} ### End tsx.main ### ### Begin tsx.other ### loadstat tsx.other # Dumb stuff alias slap {me slaps $0 around a bit with a large trout} alias massslap {fe ($onchannel()) nick {me slaps $nick around a bit with a large trout}} alias cookie {me tosses $0 a cookie} alias cookies {fe ($onchannel()) nick {me tosses $nick a cookie}} alias masscookie {cookies} alias sv {eval say $TSXLOGO $TSXVER \($J\) -/- $VERMSGSTR} alias tsx {sv} # Whois handler partially inspired by vassago. alias getlag {@ temp.getlag = time();quote PING $time() $S} alias getsec {@ num = [$0];@ FUNCTION_RETURN = num * 60;^assign -num} alias getmin {@ num = [$0];@ FUNCTION_RETURN = num / 60;^assign -num} alias honly {@ function_return = mid(${index(@ $0)+1} 99 $0)} alias isnum if (index(012345679 $0) != -1) {@ FUNCTION_RETURN = 1}{@ FUNCTION_RETURN = 0} alias tref {^timer -delete $0;^timer -refnum $0-} alias synch { if ([$0]!=[$set.desynch]) { if ([$0]!=[$S]) { zecho $BTSX $0 is desynched from the IRC Network. ^assign set.desynch $0 tref 500 25 ^assign -set.desynch}{zecho *** $1-}} } # kadafi prefers gay-looking /who output. :) alias kadmods {on 352 -"*"} ### End tsx.other ### ### Begin tsx.help ### loadstat tsx.help alias cmd { echo ============================= echo === TextSox Command Menus === echo ============================= echo === /gencmd - General commands echo === /msgcmd - Msg commands echo === /listcmd - User list commands echo === /idlecmd - Idle commands echo === /chopcmd - ChanOp commands echo === /bkcmd - Ban/kick commands echo === /unixcmd - Unix commands echo === /wincmd - Windowing commands echo === /abbrev - Command shortcuts echo === /toggles - Toggle commands echo === /servnote - Help on setting server notes echo === /statline - Status line help echo === /status - Current script settings echo === /saveconf - Save settings to file echo === /singlestat and /doublestat - Toggle single/double status bar echo === /hork - Miscellaneous stupid stuff echo === Ctrl-\\ or Ctrl-X - Switch between multiple channels echo ============================= } alias gencmd { echo ================================ echo === TextSox General Commands === echo ================================ echo === /names [] - Quick user list echo === /chops [] - List channel ops echo === /whois [] - Get info about echo === /nick [] - Change to / random echo === /umode - Change user modes echo === /cycle - Leaves/rejoins echo === /unflash - Fix screen after VT100 bombs echo === /repeatcmd - Repeat a command echo === /massdcc - DCC SEND to everyone echo === /net [] - Create server window echo === /wholeft or /wl - Show who left in a split echo === /idletime or /id - Find someones idle time echo === /hopcount or /hop - Find out how many server hops echo === someone is away from you echo === /dns or /dns - Receive host information for echo === nick or domain. aka nslookup echo === /dccstat - Turn dcc status bar on or off echo === Ctrl-K - Join last channel invited to echo ================================ } alias msgcmd { echo ============================ echo === TextSox Msg Commands === echo ============================ echo === - /msg history echo === /oops - Redirect last sent msg to echo === /talkto - Talk with echo === /endtalk - End current /talkto echo === /text - Send TextBox-style encrypted pubmsg echo === /ptext - Send TextBox-style encrypted privmsg echo === /last or /relm [] - Echo last msg to nick/channel echo === /slast or /relsm - Send last sent message to chan echo === /massmsg - Msgs everyone in the channel echo === /sayall - Says something to all channels echo ============================ } alias listcmd { echo ================================== echo === TextSox User List Commands === echo ================================== echo === /aop - Auto op (wildcards ok) echo === /abkick - Auto bkick (wildcards ok) echo === /listaop - List auto ops echo === /listabkick - List auto bkicks echo === /noaop - Remove auto op echo === /noabkick - Remove auto bkick echo === /clearaop - Clear auto ops echo === /clearabkick - Clear auto bkicks echo === /friend - Add to auto op list echo === /nofriend - Remove from auto op list echo === /enemy - Add to auto bkick list echo === /noenemy - Remove from auto bkick list echo === /ig - Ignore echo === /igf - Ignore last nick that flooded echo === /noig - Remove from ignore list echo ================================== } alias idlecmd { echo ============================= echo === TextSox Idle Commands === echo ============================= echo === /setaway or /gone - Set away status echo === /unaway or /back - Remove away status echo === /playback - Playback saved msgs echo === /clearmsg or Ctrl-T - Clears your message log echo === /maxidle - Set max idle time before /setaway echo ============================= } alias chopcmd { echo ========================================= echo === TextSox Channel Operator Commands === echo ========================================= echo === /op, /deop ... - Op/deop echo === /megaop - When you really mean it echo === /mode [] - Mode change echo === /clearmode - Clear channel modes echo === /nokey - Clear channel key echo === /topic [] - Change topic echo === /massop - Op everyone echo === /megamassdeop - Massdeop 4 at a time echo === /massdeop1 - Massdeop 1 at a time echo === /massvop - +v everyone echo === /massdevop - -v everyone echo === /wall - Send Wallop To All Ops echo === /wallops - Send to all +s people echo === - on , no spaces in echo === /smsg - Send to all +s people echo === - on your server, no spaces in echo ========================================= } alias bkcmd { echo ================================= echo === TextSox Ban/Kick Commands === echo ================================= echo === /kick [] [] - Kick echo === /bk [] - Ban, kick echo === /ban [] - Ban / list bans echo === /megaban [] - Ban with filters echo === /userban [] - Ban username (*!*user@*) echo === /hostban [] - Ban hostname (*!*@host) echo === /unban - Unban echo === /nunban - Unban echo === /clearban - Clear all bans echo === /botban - Ban bots echo === /cloneban - Ban numbered clonebots echo === /lameban - Ban bomb-usernames echo === /masskick [] - Kick everyone echo === /massban - Ban everyone echo === /mkick - Kick everyone matching echo === /mbkick - MKick with bans pause echo === /botkick - Kicks everyone with same echo === - user@host as echo === /kickhost - Kicks all from echo === /rkick - Random kick echo === /lkick - Kick all un-opped people echo ================================= } alias unixcmd { echo ============================= echo === TextSox Unix Commands === echo ============================= echo === /cat - Type a file echo === /pubcat - Type a file into channel echo === /rm - Erase a file echo === /ps - List processes echo === /kps - Kill process echo === /ls - List directory echo === /finger - Finger echo === /mail - Mail to echo === /uumail - UUEncode and mail echo === /fwhois - Get InterNIC info echo ============================= } alias wincmd { echo ================================== echo === TextSox Windowing Commands === echo ================================== echo === Ctrl-W - Switch windows in split-screen mode echo === Ctrl-P - Switch to previous hidden window echo === Ctrl-N - Switch to next hidden window echo === /wnew - Create a new split-screen window echo === /whnew - Create a new hidden window echo === /wxnew - Create a new physical window in X echo === /wkill - Kill the current window echo === /wxkill - Kill the current wserv window in X echo === /wbind - Bind to current window echo === /wubind - Unbind from current window echo === /wmbind - Bind messages to the current window echo ================================== } alias abbrev { echo ================================= echo === TextSox Command Shortcuts === echo ================================= echo === /w [] - List users on channel echo === /t [] [] - Set/show channel topic echo === /wi - Same as /whois echo === /wii - Extended /whois echo === /wl - Show who left in a split echo === /ww [] [] ... - Whowas on nicks echo === /scan or /sc - Get /names for current chan echo === /j [] [] [] .. - Join channel(s) echo === /l [] [] ... - Leave channel(s) echo === /k [] [] ... - Kick echo === /qk [] [] ... - Quick kick 's echo === /qbk [] [] ... - Quick bkick 's echo === /m - /msg echo === /lj - Leaves/rejoins echo === /p - Pings nick/channel echo === /desc - Msg action echo === /chat - DCC chat pause echo === /get - DCC get echo === /send - DCC send echo === /close - DCC close echo ================================= } alias toggles { echo =============================== echo === TextSox Toggle Commands === echo =============================== echo === /servop - Automatic deop on server ops echo === /ajoinkick - Automatic rejoin on kick echo === /ajoininv - Automatic join on invite echo === /lagometer - Toggle lagometer display echo === /floodpro - Filter out possible flood msgs echo === /nfpro - Kick on nick flood echo === /masspro - Mass deop/kick protection echo === /massdef - Toggle deop/kick for mass protect echo === /autounban - Ban defense echo === /keypro - Channel key bomb protection echo === /log - Toggle logging of IRC session echo === /logfile - Set IRC logfile, default is irc.log echo === /autodecode - Toggle -+TEXT+- encryption decoding echo === /netsplit - Auto netsplit detection/tracking echo === /allpro - Toggle all protections on/off echo === /msgbeep - Toggle beep on private messages echo === /notices - Toggle sending of protect notices echo === /ctrespond - Response to PING, VERSION, etc. pause echo === /killnotice - FULL or NORM kill notices echo === /normalping - Standard delay-time ping responses echo === /pauses - Toggle pauses in help output echo === /ctcpnoise - Show CTCP PING's, VERSION's, etc. echo === /rawirc - Show RAW_IRC messages for debugging echo === /scribble - Message scribbling notify when /away echo ========================================================== echo === /status shows commands and current script settings === echo ========================================================== } alias servnote { if ([$0]) { ^setlevels $0- if ([$0] == [1]) {^assign NOTELEVELS KN} if ([$0] == [2]) {^assign NOTELEVELS KMNC} if ([$0] == [3]) {^assign NOTELEVELS KMNCUF} zecho $BTSX Server note display levels: $querylevels() }{ echo ============================================ echo === TextSox Server Notification Controls === echo ============================================ echo === Current Status: echo === Display levels: $querylevels() echo === Kill notice setting (/killnotice): $KILLNOT echo === echo === /servnote 1 - Minimum: show kills and collisions echo === /servnote 2 - Medium: show kills, collisions, connections, misc echo === /servnote 3 - Maximum: show all server message echo === /servnote [] ... echo === echo === Levels: [K]ill [COL]lisions [CON]nections [F]ake modes [M]isc echo === [U]nauthorized connections [ALL] (without braces) echo === /servnote adds, /servnote <-level> removes echo =============================================================== echo === These only affect the notices you receive from being +s === echo =============================================================== }} alias statline { statup echo ================================ echo === TextSox Status Line Help === echo ================================ echo === Capital letters indicate on, lower case indicates off. echo === S - Server ops protection (/servop) echo === O - IRC logging (/log) echo === F - Flood protection (/floodpro) echo === N - Nick flood protection (/nfpro) echo === B - Automatic deop/unban if you are banned (/autounban) echo === M - Automatic deop when mass deop/kick detected (/masspro) echo === A - Away state (/setaway and /unaway) echo === Y - Escape code channel key protection (/keypro) echo === R - Respond to CTCP PING, VERSION, etc. (/ctrespond) echo === I - Raw IRC messages (/rawirc) echo === T - Timestamping (/timestamp or /ts) echo === Q - Msg query (/query) echo ================================ } alias status { echo ===================================================== echo === TextSox Status (most important settings only) === echo ===================================================== echo === Server ops protection (/servop) : $YESNO($SERVOPPRO) echo === Automatic rejoin on kick (/ajoinkick) : $YESNO($AJOINKICK) echo === Automatic join on invite (/ajoininv) : $YESNO($AJOININV) echo === Message flood protection (/floodpro) : $YESNO($FLOODPRO) echo === Nick flood protection (/nfpro) : $YESNO($NFPRO) echo === Mass deop/kick protection (/masspro) : $YESNO($MASSPRO) echo === Mass deop/kick defense mode (/massdef) : $MASSDEF echo === Ban defense (/autounban) : $YESNO($AUTOUNBAN) echo === Channel key bomb protection (/keypro) : $YESNO($KEYPRO) echo === IRC session logging (/log) : $YESNO($LOG) echo === Automatic encryption decoding (/autodecode) : $YESNO($AUTODECODE) echo === Netsplit detection (/netsplit) : $YESNO($NSPLIT) echo === Protection notices (/notices) : $YESNO($NOTICES) echo === CTCP PING, VERSION, etc. responses (/ctrespond) : $YESNO($CTRSP) echo === Pauses in help output (/pauses) : $YESNO($PAUSES) echo === Display CTCP notices (/ctcpnoise) : $YESNO($CTNOISE) echo === Display RAW_IRC messages (/rawirc) : $YESNO($RAWIRC) echo === DCC Autoget (/autoget) : $YESNO($AUTOGET) echo === DCC Autochat (/autochat) : $YESNO($AUTOGET) pause echo === Message scribbling (/scribble) : $YESNO($SCRIBBLE) echo === Timestamping (/timestamp or /ts) : $YESNO($TS) echo === Lagometer (/lagometer) : $YESNO($LAGOMETER) echo === Status Bar Format (/singlestat or /doublestat) : $STATUS_BAR_LENGTH echo === Version Reply String (/verstring) : $VERMSGSTR echo ===================================================== } alias hork { echo =========================== echo === TestSox Misc. Stuff === echo =========================== echo === /slap - mIRC trout slap echo === /massslap - Mass trout slap the channel echo === /cookie - Toss a cookie echo === /cookies - Mass cookie toss echo === /sv - Show TSX version to the channel echo === /verstring - Changes your version reply echo === /kadmods - Loads kadafi's lame /who display :) echo ================================== } ### End tsx.help ### echo 11---------------------------------------------------------11 eval echo  __ TextSox 11$TSXVER loaded echo  / /_______ __ echo  / __/ ___/ |/_/ TSX 8.x by logicbox and kadafi echo / /_(__ )> < TSX 7.99 and earlier by phelix echo \__/____/_/|_| Original version 6.24 by psylark echo Based on textbox.irc by Crypt Keeper echo Type /cmd for a list of commmands echo 11---------------------------------------------------------11 alias zecho {if ([$TS] == [ON]){echo [$Z] $0-}{echo $0-}} umode +i ^alias -loadstat eval set input_prompt +++ $TSXLOGO version $TSXVER loaded timer 1 ^eval set -input_prompt eval window level all ^eval assign CURN $N if (!match(*EPIC4* $J)) {assign EPIC4 NO}{assign EPIC4 YES} @ NUMMSGS = 0 away if ([$STATUS_BAR_LENGTH] == [SINGLE]) {singlestat}{doublestat} ######################## Version History (8.2.4+) ######################### ### TSX-8.2.5 (20020716): Wow, new version every 2 days. Feels just like ### old times! I've further improved the /join alias so that it works ### properly with local server (&) channels, since it was broken before. I ### also took out phelix's old link looker stuff (tsx.servers), since ### irkwarrior days are long gone, and this isn't a war script anymore ### anyway. And the default status bar length is double now instead of ### single, cause it rules and everyone should use it. :) ### ### TSX-8.2.4 (20020714): My first new release in almost two years. Yay! ### I've added in kadafi's various recent mods, including a lagometer ### toggle (/lagometer), an hourly timestamp, and a more convenient /join ### alias (the # is no longer required). Also, /kadmods will output an ### unmodified /who, which kadafi likes better for some reason. :) I fixed ### some issues with the DCC stat bar too. ###########################################################################