[script] n0=alias userlist { n1= if ($script(dialog.ini) == $null) .load -rs sys\dialog.ini n2= dialog -m userlist userlist n3= if ((($1 == +b) || ($1 == +f)) && ($2)) { n4= %mask2add = $2 | %did_1 = $iif($1 == +b,31,6) | %nick2add = $3 n5= } n6= elseif ($1 == +ab) { %mask2add = $3 | %nick2add = $2 | %did_1 = 62 } n7=} n8=alias _pauser userlist +f $2 $1 n9=alias unuser if ($level($1) == 40) { .ruser $1 | iecho Removed $1 from the userlist } n10=alias unshit if ($level($1) == 5) { .ruser $1 | iecho Removed $1 from the shitlist } n11=on *:dialog:userlist:sclick:2:help Userlists n12=on *:dialog:userlist:sclick:62:{ n13= if ($did(62)) { n14= var %n = $ifmatch n15= did -r userlist 73,72,68,67 n16= did -u userlist 70,71 n17= if ($__var(abot.ul.serv.,%n)) { did -a $dname 72 $ifmatch | did -c $dname 70 } n18= if ($__var(abot.ul.chan.,%n)) { did -a $dname 73 $ifmatch | did -c $dname 71 } n19= if ($__var(abot.ul.cmnd.,%n)) did -a $dname 68 $ifmatch n20= if ($__var(abot.ul.mask.,%n)) did -a $dname 67 $ifmatch n21= } n22=} n23=on *:dialog:userlist:sclick:63:{ n24= if ($did(62)) { n25= if (($did(67)) && ($did(68))) { n26= if (($did(70).state) && ($did(72))) .abot -c $did(72) $did(62) $did(67) $did(68) n27= elseif (($did(71).state) && ($did(73))) .abot -j $did(73) $did(62) $did(67) $did(68) n28= else .timer 1 0 s.err Invalid parameters. n29= } n30= else .timer 1 0 s.err Insufficient parameters. n31= } n32=} n33=on *:dialog:userlist:sclick:64:if ($did(62)) .rbot $ifmatch n34=on *:dialog:userlist:sclick:51:{ n35= did -r $dname 57,58,59 n36= if ($did(51)) { n37= var %n = $ifmatch n38= if ($_readini(botlist.ini,%n,channels)) did -a $dname 57 $ifmatch n39= if ($_readini(botlist.ini,%n,password)) did -a $dname 58 $ifmatch n40= if ($_readini(botlist.ini,%n,hostmask)) did -a $dname 59 $ifmatch n41= } n42=} n43=on *:dialog:userlist:sclick:52:{ n44= if (($did(51)) && ($did(57)) && ($did(58)) && ($did(59))) { n45= .addbot $did(51) $did(57) $did(58) $did(59) n46= if ($didwm($dname,51,$did(51)) == 0) did -a $dname 51 $did(51) n47= did -r $dname 57,58,59 n48= } n49= else .timer 1 0 s.err Insufficient parameters. n50=} n51=on *:dialog:userlist:sclick:53:if ($did(51)) .unbot $ifmatch * n52=on *:dialog:userlist:init:*:{ n53= if ($group(#ulist) == on) did -c $dname 27 n54= if ($group(#shitlist) == on) did -c $dname 45 n55= if ($i(main,autobot) == on) did -c $dname 60 n56= if ($_readini(botlist.ini,botnicks,all)) didtok $dname 51 32 $ifmatch n57= var %i = 2 n58= while (%i <= 4) { n59= did -a $dname 47 $mask(!user@tm.net.my,%i) n60= did -a $dname 29 $mask(!user@tm.net.my,%i) n61= inc %i n62= } n63= did -c $dname 47 $_dmask(47) | did -c $dname 29 $_dmask n64= var %i = 1, %l = 40, %n = 6 n65= :a | while ($ulist(*,%l,%i)) { did -a $dname %n $ifmatch | inc %i } n66= if (%l == 40) { var %i = 1, %l = 5, %n = 31 | goto a } n67= var %x = 1, %t = $_readini(botlist.ini,abot.count,total) n68= if ((%t == $null) || (%t < 0)) { n69= writeini -n sys\botlist.ini abot.count total 0 n70= var %t = 0 n71= } n72= if (%t) { n73= while (%x <= %t) { n74= if ($_readini(botlist.ini,%x,nick)) { n75= var %nick = $ifmatch n76= did -a $dname 62 %nick n77= set %abot.ul.chan. $+ %nick $_readini(botlist.ini,%x,chan) n78= set %abot.ul.cmnd. $+ %nick $_readini(botlist.ini,%x,cmnd) n79= set %abot.ul.evnt. $+ %nick $_readini(botlist.ini,%x,evnt) n80= set %abot.ul.serv. $+ %nick $_readini(botlist.ini,%x,serv) n81= set %abot.ul.mask. $+ %nick $_readini(botlist.ini,%x,mask) n82= } n83= inc %x n84= } n85= } n86= .timer -m 1 0 ulist.initc $dname n87=} n88=alias -l ulist.initc { n89= if ((%mask2add) && ((%did_1 == 6) || (%did_1 == 31))) { n90= var %-tmp = $didwm($1,%did_1,%mask2add) n91= if (%-tmp == 0) did -a $1 %did_1 %mask2add n92= else did -c $1 %did_1 %-tmp n93= if (%did_1 == 31) did -f $1 4 n94= if (%nick2add) did -a $1 14 $ifmatch n95= .timer 1 0 ulist.initc² $1 n96= } n97= elseif (%mask2add) { n98= did -a $1 67 $ifmatch n99= if (%did_1 == 62) { did -f $1 49 | if (%nick2add) did -a $1 62 $ifmatch } n100= .timer 1 0 did -c $1 62 $didwm($1,62,%nick2add) n101= } n102=} n103=alias -l ulist.initc² { n104= if ($didwm($1,%did_1,%mask2add)) did -c $1 %did_1 $ifmatch n105= unset %nick2add %mask2add %did_1 n106=} n107=on *:dialog:userlist:sclick:60:_set main autobot $iif($did(60).state,on,off) n108=on *:dialog:userlist:edit:6:uclear n109=on *:dialog:userlist:edit:31:uclear -s n110=on *:dialog:userlist:sclick:33:{ n111= if ($did(31)) { .ruser $ifmatch | uclear -s $ifmatch | did -u $dname 31 } n112=} n113=on *:dialog:userlist:sclick:8:{ n114= if ($did(6)) { .ruser $ifmatch | uclear $ifmatch | did -u $dname 6 } n115=} n116=on *:dialog:userlist:sclick:45:$iif($did(45).state,.enable,.disable) #shitlist n117=on *:dialog:userlist:sclick:27:$iif($did(27).state,.enable,.disable) #ulist n118=on *:dialog:userlist:sclick:7:if ($did(6)) cf 1 n119=on *:dialog:userlist:sclick:32:if ($did(31)) cf n120=on *:dialog:userlist:sclick:6:{ n121= var %m = $did(6) n122= if ($level($ulist(%m)) == 40) { n123= did -r $dname 12,13,14 n124= did -a $dname 12 $_user(%m).chan n125= did -a $dname 13 $_user(%m).pass n126= if ($_user(%m).nick) did -a $dname 14 $ifmatch n127= var %f = oOvVxcsuiI, %of = $_user(%m).flag, %i = 1 n128= while ($mid(%f,%i,1)) { n129= did $iif($ifmatch isincs %of,-c,-u) $dname $add(%i,15) n130= inc %i n131= } n132= } n133=} n134=on *:dialog:userlist:sclick:31:{ n135= var %m = $did(31) n136= if ($level($ulist(%m)) == 5) { n137= did -r $dname 36,37 n138= mdid² -u $dname 39 43 n139= did -a $dname 36 $_user(%m).chan n140= did -a $dname 37 $_user(%m).info n141= did -c $dname $add($_user(%m).flag,38) n142= } n143=} n144=on *:dialog:userlist:sclick:1:{ n145= unset %abot.ul.* %mask2add %nick2add n146= _set userlist shitmask $add($did(47,1).sel,1) n147= _set userlist defaultmask $add($did(29,1).sel,1) n148=} n149=alias -l getf { if ($2 == u) return $mid(oOvVxcsuiI,$sub($1,15),1) | return $sub($1,38) } n150=alias -l cf { n151= if ($1 == 1) { n152= if ($did(userlist,12) == $null) { .timer -m 1 1 s.err No channels specified. | halt } n153= var %i = 16, %.flags n154= while (%i <= 25) { n155= if ($did(userlist,%i).state) %.flags = %.flags $+ $getf(%i,u) | inc %i n156= } n157= if (%.flags == $null) { .timer -m 1 1 s.err No flags specified. | halt } n158= var %mask = $did(userlist,6) | .ruser %mask n159= .adduser + $+ %.flags %mask $did(userlist,12) $& n160= $iif($did(userlist,13),$did(userlist,13),changeme) $did(userlist,14) n161= uclear %mask | did -u userlist 6 n162= if ($didwm(userlist,6,%mask) == 0) did -a userlist 6 %mask n163= } n164= else { n165= if ($did(userlist,36) == $null) { .timer -m 1 1 s.err No channels specified. | halt } n166= var %i = 39, %level = 0 n167= while (%i <= 43) { if ($did(userlist,%i).state) { %level = $getf(%i) | break } | inc %i } n168= if (%level == 0) { .timer -m 1 1 s.err No flags specified. | halt } n169= var %mask = $did(userlist,31) n170= .ruser %mask | .addshit %level %mask $did(userlist,36) $did(userlist,37) n171= uclear -s %mask | if ($didwm(userlist,31,%mask) == 0) did -a userlist 31 %mask n172= } n173=} n174=; /uclear [-s] - clears specific id's for dialog [-s] for shitlist n175=alias -l uclear { n176= if ($1 == -s) { n177= did -r userlist 36,37 | mdid² -u userlist 39 43 n178= if ($2) { if ($didwm(userlist,31,$2-)) did -d userlist 31 $ifmatch } n179= } n180= else { n181= did -r userlist 12,13,14 | mdid² -u userlist 16 25 n182= if ($1) { if ($didwm(userlist,6,$1-)) did -d userlist 6 $ifmatch } n183= } n184=} n185=alias -l _dmask { n186= var %a = $iif($1 == 47,shitmask,defaultmask) n187= if ($i(userlist,%a)) return $sub($ifmatch,1) | return 2 n188=} n189=alias _ulist { n190= var %nick = $gettok($1,1,33) $+ !*@* n191= if ($ulist(%nick)) return $ifmatch n192= var %ident = $gettok($gettok($1,1,33),1,64) n193= var %ident.1 = *! $+ %ident $+ @*, %ident.2 = *!* $+ %ident $+ @* n194= if ($ulist(%ident.1)) return $ifmatch n195= if ($ulist(%ident.2)) return $ifmatch n196= var %_ulist.num = 1 n197= while ($ulist($1,%_ulist.num)) { n198= var %ifmatch = $ifmatch n199= if ((%ifmatch iswm $1) || (%ifmatch == $1)) return %ifmatch n200= inc %_ulist.num n201= } n202= return $ulist($1) n203=} n204=alias -l ctcp.help { n205= if ( %basic.help.request. [ $+ [ $1 ] ] ) var %bd1 = 3, %bd2 = 5 n206= else var %bd1 = 1, %bd2 = 3 n207= if ($2 == PASS) { n208= .timer 1 %bd1 .notice $1 Usage: /CTCP $me PASS n209= .timer 1 %bd2 .notice $1 - This sets a password, which lets $& n210= you use other commands, like INVITE. n211= .timer 1 $calc(%bd2 + 2) .notice $1 - /CTCP $me PASS n212= .timer 1 $calc(%bd1 + 4) .notice $1 - This is how you change your password. n213= } n214= elseif ($2 == IDENT) { n215= .timer 1 %bd1 .notice $1 Usage: /CTCP $me IDENT [hostmask] n216= .timer 1 %bd2 .notice $1 - Allows you to add your current hostmask $& n217= or [hostmask] you gave to my userlist. n218= } n219= elseif ($2 == HELP) { n220= .timer 1 %bd1 .notice $1 Usage: /CTCP $me HELP [topic] n221= .timer 1 %bd2 .notice $1 - Shows help for [topic] or all topics. n222= } n223= else { n224= .timer 1 %bd1 .notice $1 Usage: /CTCP $me $2 <#channel1,#channel2..|*> n225= .timer 1 %bd2 .notice $1 - $MatchCtcp($2) <#channel1,#channel2..|*> - use * for $& n226= all channels. n227= } n228= set -u5 %basic.help.request. [ $+ [ $1 ] ] 1 n229=} n230=alias -l MatchCtcp { n231= if ($1 == UNBAN) return Unbans you from n232= if ($1 == INVITE) return Invites you to n233= if ($1 == OP) return Ops you in n234= if ($1 == VOICE) return Voices you in n235=} n236=; /_uctcp_parse NICKNAME FULL_ADDRESS CTCP_REQUEST CHANNELS PASSWORD n237=; nick address HELP BLAH n238=; $1 $2 $3 $4 $5 n239=alias _uctcp_parse { n240= ; using $gettok instead of $_user().prop to make it faster n241= var %_user = $_user($2) n242= var %flag = $gettok(%_user,1,32), %chan = $gettok(%_user,2,32), %pass = $gettok(%_user,3,32) n243= var %nick = $gettok(%_user,4,32), %info = $gettok(%_user,5-,32) n244= if (($3 == HELP) || ($4 == $null) || ($5 == $null)) goto $3 n245= if (%pass === $5) goto $3 n246= halt n247= :HELP n248= if (($4 == UNBAN) && (u isincs %flag)) ctcp.help $1 $4 n249= elseif (($4 == INVITE) && (i isincs %flag)) ctcp.help $1 $4 n250= elseif (($4 == OP) && (o isincs %flag)) ctcp.help $1 $4 n251= elseif (($4 == VOICE) && (v isincs %flag)) ctcp.help $1 $4 n252= elseif (($4 == IDENT) && (I isincs %flag)) ctcp.help $1 $4 n253= elseif (($4 == PASS) || ($4 == HELP)) ctcp.help $1 $4 n254= elseif ($4 == $null) { n255= var %com = HELP PASS n256= if (o isincs %flag) %com = %com OP n257= if (v isincs %flag) %com = %com VOICE n258= if (u isincs %flag) %com = %com UNBAN n259= if (i isincs %flag) %com = %com INVITE n260= if (I isincs %flag) %com = %com IDENT n261= .notice $1 Available CTCP Commands: n262= .timer 1 2 .notice $1 -  $+ %com $+  n263= .timer 1 3 .notice $1 - Use: /CTCP $me HELP for info on  n264= } n265= halt n266= :INVITE n267= if (i isincs %flag) { n268= if (%chan == *) g +o $1 n269= else { n270= if ($left($4,1) !isin &%#) { ctcp.help $1 INVITE | halt } n271= var %_chan = $_uchan(%chan,$4), %i = 1 n272= if (%_chan == $null) { .notice $1 You do not have access in $4 | halt } n273= while ($gettok(%_chan,%i,44)) { _invite $1 $ifmatch | inc %i } n274= } n275= } n276= halt n277= :OP n278= if (o isincs %flag) { n279= if (($4 == $null) || (($4 != *) && ($left($4,1) !isin &%#))) { n280= .timer 1 0 _uctcp_parse $1 $2 HELP OP n281= halt n282= } n283= if ($_uchan(%chan,$4)) { n284= var %_chan = $ifmatch n285= if (($me isop %_chan) && ($1 ison %_chan) && ($1 !isop %_chan)) mode %_chan +o $1 n286= elseif ($chr(44) isin %_chan) { n287= var %x = 1 n288= while ($gettok(%_chan,%x,44)) { n289= var %tmp = $ifmatch n290= if (($me isop %tmp) && ($1 ison %tmp) && ($1 !isop %tmp)) mode %tmp +o $1 n291= inc %x n292= } n293= } n294= elseif (($4 == *) && (%_chan == *)) g +o $1 n295= } n296= else .notice $1 You do not have access in $4 n297= } n298= halt n299= :UNBAN n300= if (u isincs %flag) { n301= if ($4 == *) { n302= var %_chans = $_uchan(%chan,*) n303= if (%_chans == *) { n304= var %loop = 1 | while ($chan(%loop)) { _unban $1-2 $ifmatch | inc %loop } n305= } n306= else { n307= var %_loop = 1 n308= while ($gettok(%_chans,%_loop,44)) { _unban $1-2 $ifmatch | inc %_loop } n309= } n310= } n311= else { n312= var %_chans = $_uchan(%chan,$4), %z = 1 n313= if (%_chans == $null) { .notice $1 You do not have access in $4 | halt } n314= while ($gettok(%_chans,%z,44)) { _unban $1-2 $ifmatch | inc %z } n315= } n316= } n317= halt n318= :VOICE n319= if (v isincs %flag) { n320= if (($4 == $null) || (($4 != *) && ($left($4,1) !isin &%#))) { n321= .timer 1 0 _uctcp_parse $1 $2 HELP VOICE n322= halt n323= } n324= if ($_uchan(%chan,$4)) { n325= var %_chan = $ifmatch n326= if (($me isop %_chan) && ($1 ison %_chan) && ($1 !isvo %_chan)) mode %_chan +v $1 n327= elseif ($chr(44) isin %_chan) { n328= var %x = 1 n329= while ($gettok(%_chan,%x,44)) { n330= var %tmp = $ifmatch n331= if (($me isop %tmp) && ($1 ison %tmp) && ($1 !isvo %tmp)) mode %tmp +v $1 n332= inc %x n333= } n334= } n335= elseif (($4 == *) && (%_chan == *)) g +v $1 n336= } n337= else .notice $1 You do not have access in $4 n338= } n339= halt n340=} n341= n342=; $_uchan(channels,channel) n343=; returns valid channels for a user n344=alias _uchan { n345= if (($1 == $2) || ($1 == *) || ($istok($1,$2,44))) return $2 n346= if ($chr(44) isin $2) { n347= var %l = 1, %result n348= while ($gettok($2,%l,44)) { n349= var %_temp = $ifmatch n350= if ($istok($1,%_temp,44)) %result = $addtok(%result,%_temp,44) n351= inc %l n352= } n353= return %result n354= } n355=} n356=; /_unban nick fulladdress channel n357=alias -l _unban { n358= if ($left($3,1) !isin &%#) { ctcp.help $1 UNBAN | halt } n359= if ($me !ison $3) { .notice $nick I am not in $3 right now | halt } n360= if ($me !isop $3) { .notice $nick I am not opped in $3 | halt } n361= if ($ibl($3,0) == 0) { .notice $1 You are not banned in $3 | halt } n362= var %found = $false, %temp, %i = 1 n363= while ($ibl($3,%i)) { n364= if ($ifmatch iswm $2) { %found = $true | mode $3 -b $ifmatch } n365= inc %i n366= } n367= if (%found) .notice $1 You have been unbanned from $3 n368=} n369= n370=; /_invite nick channel n371=alias -l _invite { n372= if ($left($2,1) !isin &%#) { ctcp.help $1 INVITE | halt } n373= if (($me isop $2) && ($1 !ison $2) && (i isin $chan($2).mode)) .timer 1 3 .raw INVITE $1 $2 n374= if ($me !ison $2) { .notice $1 I'm not in $2 right now | halt } n375= if ($me !isop $2) { .notice $1 Sorry, I do not have Channel Operator status in $2 | halt } n376= if (i !isin $chan($2).mode) { .notice $1-2 is not Invite only | halt } n377= .raw INVITE $1-2 n378=} n379=#ulist off n380=ctcp +40:HELP:?:_uctcp_parse $nick $fulladdress $1- n381=ctcp +40:INVITE:?:_uctcp_parse $nick $fulladdress $1-4 n382=ctcp +40:OP:?:_uctcp_parse $nick $fulladdress $1-4 n383=ctcp +40:UNBAN:?:_uctcp_parse $nick $fulladdress $1-4 n384=ctcp +40:VOICE:?:_uctcp_parse $nick $fulladdress $1-4 n385=ctcp +40:PASS:?:{ n386= if ($2 == $null) .notice $nick Insufficient parameters. Try /CTCP $me HELP PASS n387= else { n388= if ($len($2) < 4) .notice $nick Password not accepted. It must be 4 characters or longer. n389= else { n390= var %addr = $_ulist($fulladdress) n391= if (($3 == $null) && ($_user(%addr).pass == changeme)) { n392= .adduser + $+ $_user(%addr).flag %addr $_user(%addr).chan $2 $nick n393= .notice $nick Your password is successfully set to ' $+ $2 $+ ' n394= } n395= elseif ($left($3,1) != $null) { n396= if ($2 === $_user(%addr).pass) { n397= if ($len($3) < 4) .n $nick Password not accepted. It must be 4 characters or longer. n398= else { n399= .adduser + $+ $_user(%addr).flag %addr $_user(%addr).chan $3 $nick n400= .notice $nick Your password is successfully set to ' $+ $3 $+ ' n401= } n402= } n403= } n404= } n405= } n406= halt n407=} n408=ctcp 1:IDENT:?:{ n409= if ($2 == $null) { .ctcp.help $nick IDENT | halt } n410= var %tf = sys\ident.txt n411= if ($_isfile(%tf)) { n412= var %tr = $read -ns $nick %tf n413= if ($gettok(%tr,1,32) === $2) { n414= var %n = $_mask($fulladdress,3) | var %a = $gettok(%tr,2,32), %n = $iif($3,$3,%n) n415= if ($ulist(%a) == $null) halt n416= .adduser + $+ $_user(%a).flag %n $_user(%a).chan $_user(%).pass $nick n417= .notice $nick Your hostmask ' $+ %n $+ ' is now recognised. n418= } n419= } n420= halt n421=} n422=on @+40:JOIN:#:{ n423= var %f = $_user($fulladdress).flag n424= if ($_uchan($_user($fulladdress).chan,$chan)) { n425= if (V isincs %f) mode $chan +v $nick n426= } n427=} n428=#ulist end n429=alias _user { n430= var %_user = $ulist($1).info , %_level = $level($_ulist($1)) n431= if ($prop == flag) return $gettok(%_user,1,32) n432= if ($prop == chan) return $gettok(%_user,2,32) n433= if ($prop == pass) return $gettok(%_user,3,32) n434= if ($prop == nick) return $gettok(%_user,4,32) n435= if ($prop == info) return $_user²($1) n436= return %_user n437=} n438=alias _user² return $gettok($ulist($1).info,$iif($level($_ulist($1)) == 5,3-,5-),32) n439=alias -l aebx if ($1) editbox $iif(@* iswm $active,-s,-a) /adduser $2- n440=; Usage: /adduser <+|-flags> [nick] n441=; Available flags: n442=; o ctcp op n443=; O auto op n444=; v ctcp voice n445=; V auto voice n446=; c accept chats n447=; s accept sends n448=; u ctcp unban n449=; i ctcp invite n450=; I ctcp ident n451=; x exempt user from channel protections n452=; Reserved flags: (not used) n453=; p if user is kicked, kick offender n454=; P if user is kicked, kickban offender n455=; r reop if deopped n456=; R reop user, deop offender n457=; k reop user, kick offender n458=; K reop user, bankick offender n459=; b unban user if banned n460=; B unban user if banned and bankick offender n461=alias adduser { n462= if ($left($1,1) !isin +-) { if ($show) bhelp adduser | halt } n463= if (+* iswm $1) { n464= if ((($3 == $null) || ($left($3,1) !isin &#)) && ($3 != *)) { n465= s.err Error: no channels specified. | aebx $show $1- | halt n466= } n467= if ((I isincs $1) && ($5 == $null)) { n468= s.err You must specify a nickname to allow CTCP IDENT for users. n469= aebx $show $1- | halt n470= } n471= } n472= var %flags, %i = 1 n473= while ($mid($remove($1,+,-),%i,1)) { n474= if ($ifmatch isincs oOvVcsuiIx) %flags = %flags $+ $ifmatch n475= inc %i n476= } n477= if (%flags == $null) { s.err Error: invalid flags. | halt } n478= if (*!*@* iswm $2) var %hostmask = $2 n479= elseif ($address($2,$i(userlist,defaultmask))) var %hostmask = $ifmatch n480= else { n481= if ($server == $null) %hostmask = $2 $+ !*@* n482= else { n483= set %adduser. $+ $2 $+ .nick $true n484= set %adduser. $+ $2 $+ .info $1- n485= .enable #userlist | .raw USERHOST $2 | halt n486= } n487= } n488= ; 2:*!*@*.tm.net.my o #mirc password n489= var %flags = $remove($1,+,-), %channels = $3 n490= var %pass = $iif( $4 , $4 , changeme ) n491= var %nick = $iif( $4 == %pass , $iif( $5 , $5 ) , $4 ) n492= var %info = %flags %channels %pass %nick n493= var %level = $level($ulist(%hostmask)) n494= if (O isincs %flags) { n495= if (+* iswm $1) .auto %hostmask $iif(%channels != *,%channels) n496= else .auto -r %hostmask n497= } n498= if (%level == 40) { n499= var %oldinfo = $ulist(%hostmask).info n500= if (($gettok(%oldinfo,2,32) == *) || (%channels == *)) var %newchannels = %channels n501= else { n502= var %c = 1, %newchannels n503= while ($gettok(%channels,%c,44)) { n504= %newchannels = $addtok($gettok(%oldinfo,2,32),$ifmatch,44)) n505= inc %c n506= } n507= } n508= if ((%pass == changeme) && ($gettok(%oldinfo,3,32) != $null)) %newpass = $& n509= $gettok(%oldinfo,3,32) n510= elseif (%pass !== $gettok(%oldinfo,3,32)) %newpass = %pass n511= else %newpass = %pass n512= if (+* iswm $1) { n513= ; add ident info first n514= if (I isincs $1) { n515= var %tmpfile = $scriptdir $+ ident.txt n516= if ($_isfile(%tmpfile)) { n517= var %tmpread = $read -ns $5 %tmpfile n518= if ($readn) write -l $+ $ifmatch %tmpfile $5 $4 %hostmask n519= else write %tmpfile $5 $4 %hostmask n520= } n521= else write %tmpfile $5 $4 %hostmask n522= } n523= var %u = 1, %newflags, %oldflags = $gettok(%oldinfo,1,32) n524= while ($mid(%flags,%u,1)) { n525= if ($ifmatch !isincs %oldflags) %newflags = %oldflags $+ $mid(%flags,%u,1) n526= inc %u n527= } n528= if (%newflags == $null) %newflags = %oldflags n529= var %info = %newflags %newchannels %newpass %nick n530= .iuser %hostmask %info n531= if ($show) iecho Updated userlist info for %hostmask n532= } n533= else { n534= var %u = 1, %newflags, %oldflags = $gettok(%oldinfo,1,32) n535= while ($mid(%flags,%u,1)) { n536= if ($ifmatch isincs %oldflags) %newflags = $removecs(%oldflags,$ifmatch) n537= inc %u n538= } n539= if (%newflags == $null) { n540= .ruser %hostmask n541= if ($show) iecho Removed %hostmask from the userlist. n542= } n543= else { n544= var %i = 1, %oldchannels = $gettok(%oldinfo,1,32) n545= while ($gettok(%channels,%i,44)) { n546= %oldchannels = $remtok(%oldchannels,$ifmatch,44) n547= inc %i n548= } n549= if (%oldchannels == $null) { n550= .ruser %hostmask n551= if ($show) iecho Removed %hostmask from the userlist. n552= } n553= else { n554= var %newinfo = %newflags %oldchannels %newpass %nick n555= .iuser %hostmask %newinfo n556= if ($show) iecho Updated userlist info for %hostmask n557= } n558= } n559= } n560= } n561= else { n562= if (%level == 5) .ruser %hostmask n563= .auser 40 %hostmask %info n564= if ($show) { n565= iecho Added %hostmask to userlist. n566= iecho Flags: %flags n567= iecho Channels: %channels n568= iecho Passwords: %pass n569= } n570= } n571=} n572=#botlist off n573=raw 302:*:{ n574= var %_user.mask = $remove($replace($2-,=-,!,=+,!),*,~) n575= var %_user.nick = $gettok(%_user.mask,1,33) n576= var %h = $__var(abot_onconn.mask.,%_user.nick), %c = $__var(abot_onconn.comm.,%_user.nick) n577= if (%c) { n578= if ((%h iswm %_user.mask) || (%h == %_user.mask) || (%h == $gettok(%_user.mask,2,33))) %c n579= } n580= .timer.blist 1 4 .disable #botlist | halt n581=} n582=#botlist end n583=#userlist off n584=raw 302:*:{ n585= var %_user.mask = $remove($replace($2-,=-,!,=+,!),*,~) n586= var %_user.nick = $gettok(%_user.mask,1,33) n587= if ($__var(adduser.,%_user.nick,.nick)) { n588= if ($__var(adduser.,%_user.nick,.info)) adduser $ifmatch n589= unset $_var(adduser.,%_user.nick,.*) n590= } n591= elseif ($__var(addshit.,%_user.nick,.nick)) { n592= if ($__var(addshit.,%_user.nick,.info)) shit $ifmatch n593= unset $_var(addshit.,%_user.nick,.*) n594= } n595= .disable #userlist | halt n596=} n597=#userlist end n598=; /addshit [reason] n599=; 1 - Offender will be deopped if opped. n600=; 2 - Automatically kick offender on join. n601=; 3 - Automatically ban/kick offender on join. n602=; 4 - Permanently ban offender at all times. n603=; 5 - Ignores nick permanently. n604=alias addshit { n605= if ($2 == $null) { s.err No nickname or hostmask given. | halt } n606= if ($1 !isnum 1-5) { s.err Invalid shitlevel. | halt } n607= if ($3 == $null) { s.err You must specify a channel | halt } n608= if (($left($3,1) !isin &%#) && ($3 != *)) { s.err Invalid channelname given. | halt } n609= if (*!*@* iswm $2) var %shitmask = $2 n610= elseif ($address($2,$i(userlist,shitmask))) var %shitmask = $ifmatch n611= else { n612= if ($server == $null) var %shitmask = $2 $+ !*@* n613= else { n614= set %addshit. $+ $2 $+ .nick $true n615= set %addshit. $+ $2 $+ .info $1- n616= .enable #userlist n617= .raw USERHOST $2 n618= halt n619= } n620= } n621= var %reason = $iif($4,$4-,Shitlisted) n622= .auser 5 %shitmask $1 $3 %reason n623= if ($show) { n624= iecho Added %shitmask to shitlist n625= iecho Channels: $3 n626= iecho Reason: %reason n627= iecho $_shitinfo($1) n628= } n629=} n630=alias _shitinfo { n631= goto $1 n632= :1 | return Offender will be deopped if opped. n633= :2 | return Automatic kick offender on join. n634= :3 | return Automatic ban/kick offender on join. n635= :4 | return Permanent ban on offender at all times. n636= :5 | return Permanent ignore. n637=} n638=#shitlist off n639=on @*:OP:#:{ n640= var %mask = $address($opnick,5) n641= if ($level(%mask) == 5) { n642= var %flag = $_user(%mask).flag, %chan = $_user(%mask).chan n643= if (%chan == *) var %chan = $chan n644= if ((%flag == 1) && ($istok(%chan,$chan,44))) mode $chan -o $opnick n645= elseif ((%flag == 2) && ($istok(%chan,$chan,44))) kick $chan $opnick $_user(%mask).info n646= elseif ((%flag > 2) && ($istok(%chan,$chan,44))) _shitkick $chan %mask $opnick n647= } n648=} n649=on *:OP:#:{ n650= if ($opnick == $me) { n651= var %i = 1, %slist, %s = $servmod, %mode = + $+ $servmod(b) n652= while ($ulist(*,5,%i)) { n653= var %_s = $ifmatch n654= if (($_user(%_s).flag >= 4) && ($_uchan($_user(%_s).chan,#))) %slist = %slist %_s n655= if (%s // %i) { mode # %mode %slist | %slist = "" } n656= inc %i n657= } n658= if (%slist) mode # %mode %slist n659= } n660=} n661=on @+5:JOIN:#:{ n662= var %mask = $fulladdress n663= var %flag = $_user(%mask).flag, %chan = $_user(%mask).chan n664= if ($istok(%chan,$chan,44)) { n665= if (%flag == 2) kick $chan $nick $_user(%mask).info n666= elseif (%flag >= 3) _shitkick $chan %mask $nick n667= } n668=} n669=on +5:ACTION:*:#:_shitignore $nick $fulladdress $chan n670=on +5:TEXT:*:#:_shitignore $nick $fulladdress $chan n671=on +5:NOTICE:*:#:_shitignore $nick $fulladdress $chan n672=ctcp +5:*:*:_shitignore $nick $fulladdress $chan n673=#shitlist end n674=alias _shitignore { n675= var %_level = $_user($2).flag n676= if ((%_level > 3) && ($me isop $3)) _shitkick $3 $2 $1 n677= elseif (%_level == 5) .ignore $ulist($2) n678= elseif ((%_level == 2) && ($me isop $3)) kick $3 $1 $_user($2).info n679=} n680=alias _shitkick .raw MODE $1 +b $ulist($2) $+ $lf $+ KICK $1 $3 : $+ $_user($2).info n681=on *:CONNECT:{ n682= var %i = 1 n683= while ($_readini(botlist.ini,%i,nick)) { n684= var %n = $ifmatch, %s = $_readini(botlist.ini,%i,serv) n685= if ((%s iswm $server) || (%s == $server)) { n686= if ($_readini(botlist.ini,%i,cmnd)) { n687= set -u180 %abot_onconn.comm. $+ %n $ifmatch n688= set -u180 %abot_onconn.mask. $+ %n $_readini(botlist.ini,%i,mask) n689= .enable #botlist n690= .raw USERHOST %n n691= } n692= } n693= inc %i n694= } n695=} n696=on me:*:JOIN:#:{ n697= var %i = 1 n698= while ($_readini(botlist.ini,%i,nick)) { n699= var %n = $ifmatch, %s = $_readini(botlist.ini,%i,chan) n700= if ((%s == $chan) || ($istok(%s,$chan,44))) { n701= if ($_readini(botlist.ini,%i,cmnd)) { n702= set -u180 %autobot.cmnd. $+ %n $+ . $+ $chan $ifmatch n703= set -u180 %autobot.chan. $+ %n $+ . $+ $chan $true n704= set -u180 %autobot.mask. $+ %n $+ . $+ $chan $_readini(botlist.ini,%i,mask) n705= } n706= } n707= inc %i n708= } n709=} n710=; /_botdo channel nickname fulladdress $7 n711=alias _botdo { n712= var %bc = $__var(autobot.cmnd.,$2,.,$1) n713= if (($__var(autobot.chan.,$2,.,$1)) && (%bc)) { n714= if ((@ isin $4) && ($__var(autobot.mask.,$2,.,$1) iswm $3)) %bc n715= } n716=} n717=; eof