# Kuma's epic4 IRC script, just a lil start # June 20, 2001 # modified: June 29, 2001 #if (already_running=1) dump all #### Settings #^window double on ^set display_ansi on #^set double_status_line on ^set full_status_line on ^set input_prompt [1\;33m[$C[1\;33m] ^set quit_message ircII %s -- Kuma's supa script v0.1alpha ^set status_away [Away] ^set status_channel %C ^set status_chanop @ ^set status_format  %T %+ [%*%=%@%N%#] %M %A %F %Q ^set status_format1  %T %+ [%*%=%@%N%#] %F ^set status_format2  %M %Q %H%B %W %S %A ^set status_hold Held:%B ^set status_mail Mail:%M ^set status_mode [+%+] ^set status_no_repeat on ^set status_notify [Active:%F] ^set status_oper * ^set status_query Q:%Q ^set status_server %S ^set status_umode +%# ^set status_user1 %X ^set status_user2 %Y ^set status_user3 %Z ^set status_voice + ^set status_window [30\;33m ^set timestamp off #### Assigns #^assign ban_type:mult:HOST=Hostname:__*!*@host.name.com+H\ #,SCREW=Screw:_____*!u?e?@?os?.n?m?.?o?+S\ #,NORM=Normal:____*!user@host.name.com+N\ #,DOM=Domain:____*!*@*.name.com+D\ #,FULL=Full:______nick!user@host.name.com+F \ ^assign ban_type 2 ^assign kuma_version $J -- Kuma SupaScirpt v0.1alpha #^assign nick_comp on ^assign nickcomp_style : ^assign user_mode +i #### Functions & Aliases alias away { if (away.msg = [$*]) { xecho -c *** You are now away [$*] ^me is Away $* } { xecho -c *** You are now back $away.gonefor() ^me is Back, $away.gonefor() @ away.time = time() } } alias away.idle @ function_return = time() - away.time alias away.gonefor @ function_return = [\(Away for $tdiff($away.idle())\)] #alias ban { # ^mode $C +b $* ${![$1] ? [*@*] : []} # ^mode $C +b $1!$getuhost($1 mask(3))) # xecho $fparse(dns_unable $0) (:host = after(@ $getuhost($0))) #} alias ban { @ :ban = [], :temp = pattern(#% $*), :chan = temp ? word(0 $temp) : C fe ($filter(#% $*)) word { push ban ${ismask($word) ? word : (:temp = getuhost($word)) ? mask(${ban_type ? ban_type : 3} $word!$temp) : [$word!*@*]} } # @ ban ? massmode($chan +b $ban) : [] } alias ban mode $C +b $* alias chat dcc chat $0 alias cycle { ^part $chan ^join $chan } alias esay encrypt $C $1- alias emsg encrypt $0 $1- alias deop { ^mode $C -o $0 } alias devoice { ^mode $C -v $0 } alias isop { if ( [$match($0 $chops($C))] == [0] ) { return $0 } { return [1\;34m@$0 } } alias get dcc get $0 alias j join #$0 $1- alias k kick $C $0 $1- alias kickban { if (raw_chr_13) { mode $0 -o+b $1 $mask(${ban_type ? ban_type : 3} $1!$getuhost($1))$chr(13)kick $0 $1 :$sfparse(kick_str $2-)} else { ban $0-1 kick $C $* } } alias kb kickban alias m msg alias nick_comp { parsekey delete_previous_word eval ^local nc $U switch ($#pattern($nc* $chanusers($C))) { (0) { xecho -c [1\;36m[NICK COMP[1\;36m] No matches! eval xtype -l $nc } (1) { eval xtype -l $pattern($nc* $chanusers($C)) } (*) { xecho -c [1\;36m[NICK COMP[1\;36m] Matches: $pattern($nc* $chanusers($C)) eval xtype -l $nc } } } alias op { ^mode $C +o $0 } alias query { //^query $0 @ [$1] ? msg($*) : []} for (@ ii = 0, ii < 21, @ ii++) { alias $ii \$\{[\$*] ? [xquote -server \$winserv\($ii\) \$*] : [^ws $ii]\} if (ii < 10) { bind meta1-$ii parse_command ^ws $ii bind meta15-$ii parse_command ^ws $ii}} @ ii = [] alias send dcc send $0- alias sv eval say $kuma_version alias voice { ^mode $C +v $0 } alias wall { xecho -c [1\;33m-Wall:@$C\- $* ^quote notice $tr(/ /,/$remw($N $chops())) :[@$C] $* } alias wc window new hide_others alias wj window new hide_others;join #$0 $1- alias wk window kill alias wlk part $C;window kill alias wn window next alias wp window prev alias wq { //window new hide_others //query $0 //^window logfile ~/.irclogs/$0.log //^window log on } #### Events # Whois section on ^311 "*" { xecho -c WHOIS: [1\;36m$1 is \([1\;36m$2@$3\) xecho -c WHOIS: name: $5- } on ^312 "*" { xecho -c WHOIS: server: $0 \($3-\) } on ^313 "*" { xecho -c WHOIS: [1\;36m$0 $1- } on ^317 "*" { bless @ idle = tdiff($2) xecho -c WHOIS: idle: ${idle ? idle : 0} } on ^318 "*" { xecho -c WHOIS: [1\;36m$1 $tr(/://$2-) } on ^319 "*" { xecho -c WHOIS: chan: $2- } # on ^action "*" { echo * $isop($0) $2- } on ^channel_nick "*" { if ([$1]==N) { xecho -l crap *** You have changed nick to [1\;36m$2 } { xecho -l crap *** [1\;36m$1 has changed nick to [1\;36m$2 } } on ^channel_signoff "*" { xecho -l crap QUIT: [1\;36m$1 \($userhost()\) \($2-\) $0 } on ^connect "*" { if (($user_mode)=1) { ^mode $N $user_mode } } on ^ctcp "*" { xecho -c CTCP: [1\;36m$0: $2 $3- } on ^ctcp_reply "*" { xecho -c CTCP: $0 REPLY: $1 $2- } on ^dcc_chat "*" { xecho [1\;32m<=$0[1\;32m=> $1- } on ^dcc_connect "*" { xecho -c DCC: $1 connection with $0 [$2:$3] established if ([$1]==[send]) xecho -c DCC: Tranferring $4 \($5 bytes\) } on ^dcc_lost "*" { xecho -c DCC: connection with $0 lost${[$1] ? [: $1-] : []} } on #-dcc_raw 10 "% % e %" { xecho -c DCC: Connection with $1 on port $3 \(fd: $0\) } on ^dcc_request "*" { xecho -c DCC: $1 requested by $0!$userhost() [$3:$4] if ( [$1]==[send] ) xecho -c DCC: File offered: $5 \($4 bytes\) } on ^encrypted_notice '% $N *' { echo -${[$0]}- [ENCRYPTED] $1- } on ^encrypted_privmsg '% $N *' { xecho *$0* [CRYPT] $2- } on ^exit "*" { xecho -c [1\;32mEXIT: $N $J \($quit_message\) } on ^flood "\\[X NickServ ChanServ\\]*" { echo FLOOD: $1 flood from $0 echo FLOOD: adding *!$userhost() to ignore ignore *!$userhost() $1 } on ^join "*" { xecho -l crap [1\;32mJOIN: [1\;36m$0 \($userhost()\) $1 } on ^kick "*" { if ([$0] == N) { xecho -l crap *** You were kicked by [1\;36m$1 from $2 \($3-\) } { xecho -l crap KICK: [1\;36m$0 by [1\;36m$1 from $2 \($3-\) } } on ^leave "*" { xecho -l crap PART: [1\;36m$0 \($userhost()\) $1 } on ^list "*" { if ( [$2] ) xecho -l crap *** $[$CHANNEL_NAME_WIDTH]0 $[-2]1 $2- } on ^mail "*" { xecho -c [1\;31mMAIL: $0 new messages in your mailbox. \($1 total\) } on ^mode "*" { xecho -l crap [1\;31mMODE: [1\;36m$0 sets mode $2 [1\;36m$3- on $1 } on ^msg "*" { xecho [1\;32m[$0[1\;32m[msg[1\;32m] $1- } on ^names "*" { xecho 12[$012] xecho 12[$1-\12] } on ^notice "*" { # xecho -c [1\;35m-$0\($userhost()\)- $1- xecho -c [1\;35m-$0\- $1- } on ^notify_signon "*" { @ match(notify $tab_levels) ? addtab($lastserver() /m $0) : [] xecho -c NOTIFY: $* ${![$1] ? [*@*] : []} } on ^notify_signoff "*" { xecho -c NOTIFY: $0 has left IRC } on ^public "*" { xecho \<$isop($0)\> $2- } on ^send_action "*" { xecho * $isop($N) $1- } on ^send_msg "*" { xecho [1\;33m[msg[1\;33m]$0[1\;33m] $1- } on ^send_notice "*" { xecho [1\;35m-Notice:$0\- $1- } on ^send_public "*" { xecho [1\;33m<$isop($N)[1\;33m> $1- } #on ^signoff "*" { # xecho -c QUIT: [1\;36m$1 \($userhost()\) \($2-\) $0 #} on ^topic "*" { echo [1\;35mTOPIC: [1\;36m$0 changed topic to: \($2-\) $0 } on ^wallop "*" { echo [1\;35m-$0/$1\- $2- } on ^who "*" { echo *** $0 $1 $2 $3@$4 $7- } #### Binds bind ^I parse_command nick_comp bind meta1-1 parse_command { window swap 1 } bind meta1-2 parse_command { window swap 2 } bind meta1-3 parse_command { window swap 3 } bind meta1-4 parse_command { window swap 4 } bind meta1-5 parse_command { window swap 5 } bind meta1-6 parse_command { window swap 6 } bind meta1-7 parse_command { window swap 7 } bind meta1-8 parse_command { window swap 8 } bind meta1-9 parse_command { window swap 9 }