Basic — File Browser
Basicv09272000 / Basicv09272000 / SYS / users.ini
users.ini — 28.79 KB — Download this file
[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 <password>
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 <password> <newpass>
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 <password> [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..|*> <password>
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 <command> for info on <command>
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> <host> <channels> <pass> [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 <level> <hostmask> <channels|*> [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