Basic — File Browser

Basicv09272000 / Basicv09272000 / SYS / channel.ini

channel.ini — 33.79 KB — Download this file

[script]
n0=alias chanset {
n1=  dialog.check
n2=  %Edit_Channel = main
n3=  dialog -m cset cset
n4=  did -c cset 3 1
n5=}
n6=on *:dialog:cset:init:*:{
n7=  did -a $dname 3 Default
n8=  did -c $dname 3 1
n9=  var %ProtectedChannels = $i(protected_channels,all), %Counter = 1
n10=  while ($gettok(%ProtectedChannels,%Counter,44)) {
n11=    did -a $dname 3 $ifmatch
n12=    inc %Counter
n13=  }
n14=  did -a $dname 104 kick
n15=  did -a $dname 104 warn
n16=  did -a $dname 104 kickban
n17=  did -a $dname 114 - Select -
n18=  did -a $dname 114 Lenient
n19=  did -a $dname 114 Normal
n20=  did -a $dname 114 Strict
n21=  did -c $dname 114 1
n22=  var %m = 0
n23=  while (%m <= 12) {
n24=    did -a $dname 112 $mask($_pdisp,%m)
n25=    inc %m
n26=  }
n27=  did -a $dname 112 $screw($_mask($_pdisp,3))
n28=  init_c main $dname
n29=}
n30=alias -l addchannel {
n31=  if ($inputbox(Enter channel name to add)) addchannel² $ifmatch
n32=  dialog -v cset
n33=}
n34=alias -l addchannel² {
n35=  if ($istok($i(protected_channels,all),$$1,44)) return
n36=  did -a cset 3 $$1
n37=  did -c cset 3 $did(cset,3).lines
n38=  %Edit_Channel = $$1
n39=  did -e cset 108
n40=  init_c main cset
n41=}
n42=on *:dialog:cset:sclick:114:{
n43=  var %Item = $did(114,$did(114).sel)
n44=  if (Select isin %Item) halt
n45=  init_c %Item cset
n46=  if (%Item != Lenient) did -c $dname 107
n47=  did -e cset 108
n48=}
n49=on *:dialog:cset:sclick:7:{
n50=  var %Selected = $did(3,$did(3).sel)
n51=  %Edit_Channel = $iif(%Selected == Default,main,%Selected)
n52=  .timer -m 1 1 addchannel
n53=}
n54=on *:dialog:cset:sclick:9:.timer -m 1 0 _remch $did(3,$did(3).sel)
n55=on *:dialog:cset:sclick:8:{
n56=  unset %Edit_Channel %Temp.ChannelSetup
n57=  flushini sys\main.ini
n58=  .timer 1 0 .unload -rs $script(dialog.ini)
n59=}
n60=on *:dialog:cset:sclick:3:{
n61=  var %Selected = $did(3,$did(3).sel)
n62=  %Edit_Channel = $iif(%Selected == Default,main,%Selected)
n63=  init_c %Edit_Channel cset
n64=}
n65=on *:dialog:cset:sclick:1:{
n66=  if ($did(108).enabled) {
n67=    var %Temp = $did(3,$did(3).sel)
n68=    %Edit_Channel = $iif(%Temp == Default,main,%Temp)
n69=    apply $dname
n70=  }
n71=  .timer 1 0 unset %Edit_Channel %Temp.ChannelSetup
n72=  .timer 1 0 .unload -rs $script(dialog.ini)
n73=}
n74=on *:dialog:cset:sclick:108:apply $dname | unset %Temp.ChannelSetup | did -b $dname 108
n75=on *:dialog:cset:sclick:109:help Channel_Setup
n76=on *:dialog:cset:sclick:*:if ($did(108).enabled == $false) did -e cset 108
n77=on *:dialog:cset:edit:*:if ($did(108).enabled == $false) did -e cset 108
n78=; /ifnum <dname> <id> <variable>
n79=alias -l ifnum did -r $1 $2 | did -a $1 $2 $iif($3 isnum,$3,0)
n80=alias init_c {
n81=  did $iif($i($1,nethack),-c,-u) $2 56
n82=  did -c $2 104 $replace($i($1,clonepenalty),kick,1,warn,2,kban,3)
n83=  did $iif(($i($1,DefBanType) isnum 0-13),-c,-u) $2 112 $calc($i($1,DefBanType) + 1)
n84=  did $iif(($i($1,clonejoin) == on),-c,-u) $2 100
n85=  did $iif(($i($1,nickkick) == on),-c,-u) $2 4
n86=  did $iif(($i($1,wordkick) == on),-c,-u) $2 5
n87=  did $iif(($i($1,bankickeduser) == on),-c,-u) $2 46
n88=  did $iif(($i($1,kickonban) == on),-c,-u) $2 95
n89=  did $iif(($i($1,capskick) == on),-c,-u) $2 96
n90=  did $iif(($i($1,longword) == on),-c,-u) $2 28
n91=  did $iif($istok($i(no_spam,list),$1,44),-c,-u) $2 107
n92=  ifnum $2 47 $i($1,maxkicked) | did -r $2 49
n93=  if ($i($1,kickedmaxtime) isnum) did -a $2 49 $calc($ifmatch / 60) | else did -a $2 49 0
n94=  ifnum $2 29 $i($1,maxlength)
n95=  ifnum $2 98 $i($1,maxcaps)
n96=  ifnum $2 102 $i($1,maxclones)
n97=  ifnum $2 58 $i($1,maxrepeat)
n98=  ifnum $2 59 $i($1,maxctcp)
n99=  ifnum $2 60 $i($1,maxtext)
n100=  ifnum $2 61 $i($1,maxnick)
n101=  ifnum $2 62 $i($1,maxnotices)
n102=  ifnum $2 63 $i($1,maxjoins)
n103=  ifnum $2 64 $i($1,maxdeop)
n104=  ifnum $2 65 $i($1,maxkick)
n105=  ifnum $2 66 $i($1,maxban)
n106=  ifnum $2 76 $i($1,repeat_time)
n107=  ifnum $2 77 $i($1,ctcp_time)
n108=  ifnum $2 78 $i($1,text_time)
n109=  ifnum $2 79 $i($1,nick_time)
n110=  ifnum $2 80 $i($1,notices_time)
n111=  ifnum $2 81 $i($1,joins_time)
n112=  ifnum $2 82 $i($1,deop_time)
n113=  ifnum $2 83 $i($1,kick_time)
n114=  ifnum $2 84 $i($1,ban_time)
n115=  did $iif($istok($i(no_spam,list),$1,44),-c,-u) $2 107
n116=  var %ExemptedUsers = $i($1,exempted.users), %x = 1
n117=  while ($gettok(%ExemptedUsers,%x,46) != $null) {
n118=    did $iif($ifmatch,-c,-u) $2 $calc(%x + 51)
n119=    inc %x
n120=  }
n121=  var %x = 9, %y = 18
n122=  :z
n123=  inc %x
n124=  if (%x <= %y) {
n125=    var %bantime = $i($1,$_bt2(%x))
n126=    if ((%bantime isnum) && (%bantime >= 0)) { did -r $2 %x | did -a $2 %x $calc(%bantime / 60) }
n127=    goto z
n128=  }
n129=  if (%y == 18) { var %x = 35, %y = 40 | goto z }
n130=}
n131=alias -l val { return $iif($did($1,$2).state,on,off) }
n132=alias _isnum { return $iif(($1 != $null) && ($1 isnum) && ($1 >= 0),$1) }
n133=alias _isnum² return $iif($_isnum($1),$1,0)
n134=alias apply {
n135=  if (%Edit_Channel == $null) %Edit_Channel = $did(cset,$did(cset,3).sel)
n136=  if ((%Edit_Channel == $null) || (%Edit_Channel == Default)) %Edit_Channel = main
n137=  var %.cmd = _set %Edit_Channel, %NoInviteZones = $i(no_spam,list)
n138=  if (%Edit_Channel != main) _set protected_channels all $addtok($i(protected_channels,all),%Edit_Channel,44)
n139=  if ($did($1,107).state) _set no_spam list $addtok(%NoInviteZones,%Edit_Channel,44)
n140=  else {
n141=    if (%NoInviteZones == main) _unset no_spam list
n142=    elseif ($istok(%NoInviteZones,main,44)) _set no_spam list $remtok(%NoInviteZones,$1,44)
n143=    else {
n144=      if ($gettok(%NoInviteZones,2,44)) _set no_spam list $remtok(%NoInviteZones,$1,44)
n145=      else _unset no_spam list
n146=    }
n147=  }
n148=  %.cmd DefBanType $calc($did($1,112).sel - 1)
n149=  %.cmd nethack $did($1,56).state
n150=  %.cmd longword $val($1,28)
n151=  %.cmd kickonban $val($1,95)
n152=  %.cmd capskick $val($1,96)
n153=  %.cmd clonejoin $val($1,100)
n154=  %.cmd clonepenalty $replace($did($1,104),kickban,kban)
n155=  %.cmd nickkick $val($1,4)
n156=  %.cmd wordkick $val($1,5)
n157=  %.cmd kickonban $val($1,95)
n158=  %.cmd wordkick $val($1,5)
n159=  %.cmd nickkick $val($1,4)
n160=  %.cmd clonejoin $val($1,100)
n161=  %.cmd bankickeduser $val($1,46)
n162=  %.cmd exempted.users $did($1,52).state $+ . $+ $did($1,53).state $+ . $+ $did($1,54).state $+ . $+ $did($1,55).state
n163=  if ($_isnum($did($1,98)) != $null) %.cmd maxcaps $ifmatch
n164=  if ($_isnum($did($1,29)) != $null) %.cmd maxlength $ifmatch
n165=  if ($_isnum($did($1,102)) != $null) %.cmd maxclones $ifmatch
n166=  if ($_isnum($did($1,47)) != $null) %.cmd maxkicked $ifmatch
n167=  if ($_isnum($did($1,49)) != $null) %.cmd kickedmaxtime $calc($ifmatch * 60)
n168=  var %x = 58
n169=  while (%x <= 84) {
n170=    if (($_n(%x)) && ($_isnum($did($1,%x)) != $null)) %.cmd $_n(%x) $did($1,%x)
n171=    inc %x
n172=  }
n173=  var %x = 10, %y = 18
n174=  :z
n175=  while (%x <= %y) {
n176=    if (($_bt2(%x)) && ($_isnum($did($1,%x)) != $null)) %.cmd $_bt2(%x) $calc($did($1,%x) * 60)
n177=    else %.cmd $_bt2(%x) 0
n178=    inc %x
n179=  }
n180=  if (%y == 18) { var %x = 36, %y = 40 | goto z }
n181=  flushini sys\main.ini
n182=}
n183=alias _bt1 return $i($1, [ [ $2 ] $+ .bantime ] )
n184=alias _bt2 {
n185=  goto $1
n186=  :10 | return repeat.bantime
n187=  :11 | return ctcp.bantime
n188=  :12 | return text.bantime
n189=  :13 | return nick.bantime
n190=  :14 | return notices.bantime
n191=  :15 | return joins.bantime
n192=  :16 | return deop.bantime
n193=  :17 | return kick.bantime
n194=  :18 | return ban.bantime
n195=  :36 | return nickkick.bantime
n196=  :37 | return wordkick.bantime
n197=  :38 | return invite.bantime
n198=  :39 | return capskick.bantime
n199=  :40 | return longword.bantime
n200=}
n201=alias _n {
n202=  var %r = return, %1 = $1
n203=  goto $1
n204=  :58 | %r maxrepeat
n205=  :59 | %r maxctcp
n206=  :60 | %r maxtext
n207=  :61 | %r maxnick
n208=  :62 | %r maxnotices
n209=  :63 | %r maxjoins
n210=  :64 | %r maxdeop
n211=  :65 | %r maxkick
n212=  :66 | %r maxban
n213=  :76 | %r repeat_time
n214=  :77 | %r ctcp_time
n215=  :78 | %r text_time
n216=  :79 | %r nick_time
n217=  :80 | %r notices_time
n218=  :81 | %r joins_time
n219=  :82 | %r deop_time
n220=  :83 | %r kick_time
n221=  :84 | %r ban_time 
n222=  :98 | %r maxcaps
n223=  :102 | %r maxclones
n224=  :112 | %r maxbotpublic
n225=  :113 | %r maxbotnotice
n226=  :114 | %r maxbotnick
n227=  :115 | %r maxbotjoin
n228=  :154 | %r maxbotctcp
n229=  :155 | %r maxbotinvite
n230=  :164 | %r public.botnetignoretime
n231=  :165 | %r notice.botnetignoretime
n232=  :166 | %r nick.botnetignoretime
n233=  :167 | %r join.botnetignoretime
n234=  :168 | %r ctcp.botnetignoretime
n235=  :169 | %r invite.botnetignoretime
n236=  :176 | %r maxinvite
n237=  :178 | %r IALmax
n238=  :%1
n239=}
n240=alias -l _remch {
n241=  if ($1 == Default) return
n242=  if ($_cnfrm(Remove [ $$1 ] from protected channels?) == $false) goto end
n243=  var %ProtList = $i(protected_channels,all), %NoSpamList = $i(no_spam,list)
n244=  if ($istok(%ProtList,$1,44)) {
n245=    if ($sub($numtok(%ProtList,44),1) > 0) _set protected_channels all $remtok(%ProtList,$1,44)
n246=    else remini sys\main.ini protected_channels
n247=  }
n248=  if (($numtok(%NoSpamList,44) == 1) && (%NoSpamList == $1)) remini sys\main.ini no_spam list
n249=  elseif ($numtok(%NoSpamList,44)) _set no_spam list $remtok(%NoSpamList,$1,44)
n250=  _unset $1
n251=  unset %Temp.ChannelSetup
n252=  %EditChannel = main
n253=  did -c cset 3 1
n254=  var %i = 1
n255=  while ($did(cset,3,%i)) {
n256=    if ($ifmatch == $1) { did -d cset 3 %i | init_c main cset | break }
n257=    inc %i
n258=  }
n259=  dialog -v cset
n260=}
n261=; EOF

[aliases]
n0=aban {
n1=  if (*!*@* iswm $1) { .raw MODE # + $+ $str(b,$numtok($1-,32)) $1- | halt }
n2=  var %a = 1, %b = $servmod, %mode = $bind(+,$servmod(b)), %.aban
n3=  while ($gettok($1-,%a,32)) {
n4=    %.aban = %.aban *!*@* $+ $ifmatch
n5=    if (%b // %a) { .raw MODE # %mode %.aban | var %.aban }
n6=    inc %a
n7=  }
n8=  if (%.aban) .raw MODE # + $+ $str(b,$numtok(%.aban,32)) %.aban
n9=}
n10=addtopic if ($1) .raw TOPIC # : $+ $chan(#).topic $chr(124) $1- | else bhelp addtopic
n11=amode {
n12=  var %x = 1
n13=  while ($chan(%x)) {
n14=    if ($me isop $chan(%x)) mode $chan(%x) $1-
n15=    inc %x
n16=  }
n17=}
n18=atopic {
n19=  var %x = 1
n20=  while ($chan(%x)) {
n21=    if ($me isop $chan(%x)) topic $chan(%x) $1-
n22=    inc %x
n23=  }
n24=}
n25=autocycle {
n26=  if ($i(main,autocycle)) {
n27=    if ($1) _autocycle $1
n28=    else {
n29=      var %c = 1
n30=      while ($chan(%c)) {
n31=        _autocycle $ifmatch
n32=        inc %c
n33=      }
n34=    }
n35=  }
n36=}
n37=_autocycle if (($me !isop $1) && ($nick($1,0,a) == 1) && ($nick($1,1,a) == $me)) .raw PART $1 $+ $lf $+ JOIN $1
n38=b {
n39=  if ($me isop #) {
n40=    %unbanning = TRUE
n41=    if ($me isop $1) ban $$1-
n42=    elseif (*!*@* iswm $1) mode # + $+ $str(b,$numtok($1-,32)) $1-
n43=    else ban $bind(-u,$iif(($3 isnum) && ($3 > 0),$mult($3,60),60)) # $1 $iif(($2 isnum) && ($2 >= 0),$2,3)
n44=  }
n45=}
n46=boot multi $1-
n47=checkbans {
n48=  var %f = 0, %v = 1
n49=  while ($address($nick(#,%v,a),5)) {
n50=    %.mask = $ifmatch
n51=    if ($banned(%.mask)) {
n52=      %.mask = ( $+ $ifmatch $+ )
n53=      iecho  $+ $c3 $+ $nick(#,%v) %.mask is banned in channels $+ $c3 $_user(%.mask).chan for reason $+ $c3 $_user(%.mask).info
n54=      inc %f
n55=    }
n56=    inc %v
n57=  }
n58=  iecho Total shitlisted users in # $+ : $+ $c3 %f
n59=}
n60=ck clonekick $1-
n61=ckb clonekickban $1-
n62=clearbans cbans $1-
n63=clone clones $1-
n64=clonekick _ckk -k $1-
n65=clonekickban _ckk -b $1-
n66=clones cc. $+ $iif($i(display,clonescan) == echo,echo,win) $1-
n67=cc.check {
n68=  if ($active !ischan) halt | if (($__var(ticks,#)) || ($chan(#).ial == $inwho) || ($__var(ial.,#))) { iecho Still updating IAL for # $+ . | halt }
n69=  if ($chan(#).ial == $false) { iecho IAL for # not updated. $fcom(/mc) $fkey(/mc) to update it. | unset %.font.adjust %clone.siteban | set -u30 %ctrlf2 ial.upd # | halt }
n70=  iecho Scanning for clones in # .. $iif($nick(#,100),this might take a while)
n71=}
n72=cc.win {
n73=  cc.check | window -sknlh -t1,30,40 +stn @Clones $winpos(@Clones,175 130 440 215) @Clones $winfont(@Clones,Arial 11)
n74=  var %c.total = $nick(#,0,a), %c.type = $iif($1 isnum 0-19,$1,2), %c.chan = #, %c.1 = 1
n75=  while (%c.1 <= %c.total) {
n76=    var %c_site = $address($nick(#,%c.1,a),%c.type)
n77=    if (%clone.scanned. [ $+ [ %c_site ] ]) { inc %c.1 | continue }
n78=    if (%clscan. [ $+ [ %c_site ] ]) {
n79=      var %clone.scanned. [ $+ [ %c_site ] ] = 1, %clone.i = 1, %.nick
n80=      while ($ialchan(%c_site,%c.chan,%clone.i).nick) {
n81=        %.nick = $ifmatch
n82=        aline @Clones $chr(9) %c_site $chr(9) %.nick $chr(9) $address(%.nick,5)
n83=        inc %clone.i
n84=      }
n85=    }
n86=    else var %clscan. [ $+ [ %c_site ] ] = 1 | inc %c.1
n87=  }
n88=  if ($line(@Clones,0)) {
n89=    iecho End of clone scan for %c.chan | insert.x @Clones | titlebar @Clones - Right click for menu
n90=    iline @Clones 1 $chr(9) Host $chr(9) Nick $chr(9) Fulladdress | iline @Clones 2 $x | window -arwb @Clones
n91=  }
n92=  else { iecho No clones found in %c.chan | close -@ @Clones }
n93=}
n94=cc.echo {
n95=  cc.check | var %start = $ticks, %.formatclone = 1
n96=  var %n = $iif($1 isnum 0-19,$1,2), %c = #, %y = $nick(#,0,a), %t = $nick(#,0,a), %s, %i, %u, %f = 0, %com = echo -tli14 #
n97=  while (%t) {
n98=    %s = $address($nick(%c,%t,a),%n)
n99=    if ( %.found. [ $+ [ %s ] ] ) { dec %t | continue }
n100=    if ( %.scanned. [ $+ [ %s ] ] ) {
n101=      if (%f == 0) {
n102=        %.fhead = $format(clone_head,#)
n103=        if (%.fhead == NULL) return
n104=        elseif (%.fhead) %com $ifmatch
n105=        else %com  $+ $c1 $+ Ú $+ $str(Ä,4) - $+ $c3 $+ Ä $+ $c1 - $+ ( $+ $c3 Host  $+ $c1 $+ ) $+ $str(Ä,25) $+ Â $+ Ä( $+ $c3 Nick  $+ $c1 $+ ) $+ $str(Ä,7) $+ ¿
n106=      }
n107=      inc %f | %i = 1 | set -u %.found. $+ %s 1
n108=      while ($ialchan(%s,%c,%i).nick) {
n109=        %u = $ifmatch
n110=        if ($format(clone_mid,#,%s,%u)) { %com $ifmatch | %.formatclone = 0 }
n111=        else {
n112=          if (%i == 1) %com  $+ $c1 $+ | $+ $colour(text) $replace($align(40,%s),@,$bind(,$c4,@,,$colour(text)))  $+ $c1 $+ ³ $+ $c3 $align(14,%u)  $+ $c1 $+ ³
n113=          else %com  $+ $c1 $+ ³ $+ $colour(back) $x(40)  $+ $c1 $+ ³ $+ $c3 $align(14,%u)  $+ $c1 $+ $iif($r(1,100) < 50,:,|) $+ 
n114=        }
n115=        inc %i
n116=      }
n117=      if (%.formatclone) %com  $+ $c1 $+ Ã $+ $str(Ä,42) $+ Å $+ $str(Ä,16) $+ ´
n118=    }
n119=    else set -u %.scanned. $+ %s 1
n120=    dec %t
n121=  }
n122=  if (%f) {
n123=    var %.ftemp = $format(clone_end,#,%f)
n124=    if (%.ftemp == NULL) return
n125=    elseif (%.ftemp) %com $ifmatch
n126=    else {
n127=      var %text = %y $+ u/ $+ %f $+ h/ $+ $calc(($ticks - %start) / 1000) $+ s
n128=      %com  $+ $c1 $+ ³ $align(40,%text)  $+ $c1 $+ ³ $+ $x(16) $+  $+ $c1 $+ |
n129=      %com  $+ $c1 $+ À $+ $str(Ä,32) $+  $+ $c3 $+ --  - $+ $c4 $+ Ä $+ $c2 $+ Ä- - $+ $c1 $+ Ä $+ Á $+ $str(Ä,10) $+ - $+ $c2 $+ - $+ $c1 ÄÄ- $+ Ù
n130=    }
n131=  }
n132=  else iecho No clones found in # $+ .
n133=}
n134=cmod if ($me isop #) mode # $1-
n135=cycall {
n136=  var %i = 1
n137=  while ($chan(%i)) {
n138=    cycle $ifmatch
n139=    inc %i
n140=  }
n141=}
n142=cycle {
n143=  var %cycle = $iif($1,#$1,$active)
n144=  if (%cycle ischan) {
n145=    var %.cycle = .raw PART %cycle $+ $lf $+ JOIN %cycle $chan(%cycle).key , %modes = $gettok($chan(%cycle).mode,1,32)
n146=    if (i isin %modes) {
n147=      if (($nick(%cycle,0,a) == 1) && ($nick(%cycle,1,a) == $me)) %.cycle
n148=      else echo -t %cycle $pre Unable to /cycle +i channels.
n149=    }
n150=    elseif ((l isin %modes) && ($nick(%cycle,0) >= $chan(%cycle).limit)) echo -t %cycle $pre Unable to cycle %cycle $+ : channel limit reached.
n151=    else %.cycle
n152=  }
n153=}
n154=deop if ($2 == $null) mode # -o $1 | else m.mode -o $1-
n155=dop if ($2 == $null) mode # -o $1 | else m.mode -o $1-
n156=dv if ($2 == $null) mode # -v $1 | else m.mode -v $1-
n157=; /filterkick +b -uov [channel] <mask> [comment]
n158=; -u exempts known users, -o exempts ops, -v exempts voiced users
n159=; +b means ban also, if [channel] is not given, defaults to active channel
n160=filterkick {
n161=  if ($1 == $null) { bhelp filterkick | halt }
n162=  unset %filter.list.*
n163=  %filter.count = 1
n164=  ; filterkick and ban with exemptions
n165=  if (($1 == +b) && (-* iswm $2)) {
n166=    if ($3 ischan) { %filtermask = $4 | %filterchan = $3 | %filterkickmessage = $5- }
n167=    else { %filtermask = $3 | %filterchan = $chan | %filterkickmessage = $4- }
n168=    if (u isin $2) && ($level($_ulist(%filtermask)) > 5) goto end
n169=    %filter.exemptions = $2
n170=    %filter.ban = $true
n171=    goto execute.1
n172=  }
n173=  ; filterkick and ban without exemptions
n174=  elseif ($1 == +b) {
n175=    if ($2 ischan) { %filterchan = $2 | %filtermask = $3 | %filterkickmessage = $4- }
n176=    else { %filterchan = $chan | %filtermask = $2 | %filterkickmessage = $3- }
n177=    unset %filter.ban %filter.exemptions
n178=    %filter.ban = $true
n179=    goto execute.1
n180=  }
n181=  ; filterkick only with exemptions
n182=  elseif (-* iswm $1) {
n183=    if ($2 ischan) { %filtermask = $3 | %filterchan = $2 | %filterkickmessage = $4- }
n184=    else { %filtermask = $2 | %filterchan = $chan | %filterkickmessage = $3- }
n185=    if (u isin $1) && ($level($_ulist(%filtermask)) > 5) goto end
n186=    %filter.exemptions = $1
n187=    unset %filter.ban
n188=    goto execute.1
n189=  }
n190=  ; filterkick only without exemptions
n191=  else {
n192=    if ($1 ischan) { %filterchan = $1 | %filtermask = $2 | %filterkickmessage = $3- }
n193=    else { %filterchan = $active | %filtermask = $1 | %filterkickmessage = $2- }
n194=    unset %filter.ban %filter.exemptions
n195=  }
n196=  :execute.1
n197=  if ($me !isop %filterchan) { iecho You need ops to do that. | unset %filter* | halt }
n198=  if (%filtermask == $null) { iecho No hostmask specified. | unset %filter* | halt }
n199=  if (* !isin %filtermask) %filtermask = * $+ %filtermask $+ *
n200=  if (%filterkickmessage == $null) %filterkickmessage = .
n201=  %i = 0
n202=  :loop.1
n203=  inc %i
n204=  if ($ialchan(%filtermask,%filterchan,%i).nick) {
n205=    %filter.temp = $ifmatch
n206=    if (%filter.temp == $me) goto loop.1
n207=    if ((%filter.exemptions) && (((o isin %filter.exemptions) && (%filter.temp isop %filterchan)) || ((v isin %filter.exemptions) && (%filter.temp isvo %filterchan)))) goto end
n208=    %filter.temp2 = %filter.list. [ $+ [ %filter.count ] ]
n209=    if ($maxvl(%filter.temp2)) inc %filter.count
n210=    %filter.list. [ $+ [ %filter.count ] ] = %filter.list. [ $+ [ %filter.count ] ] $+ KICK %filterchan %filter.temp : $+ %filterkickmessage $+ $lf
n211=    goto loop.1     
n212=  }
n213=  if (%filter.ban) .raw MODE %filterchan +b %filtermask
n214=  %filter.inc = -249
n215=  :loop.2
n216=  inc %filter.inc 250
n217=  if (%filter.list. [ $+ [ %filter.count ] ] ) {
n218=    .timer -m 1 %filter.inc .raw $ifmatch
n219=    dec %filter.count
n220=    goto loop.2
n221=  }
n222=  :end
n223=  unset %filter*
n224=  if ($show) iecho Filter kick complete.
n225=}
n226=fk {
n227=  if ($left($1,1) isin +-) { filterkick $1- | return }
n228=  var %1 = $iif(($1 ischan) || ($left($1,1) isin &#),1,0)
n229=  var %fk.chan = $iif(%1,$1,#), %fk.mask = $iif(%1,$2,$1), %fk.msg = $iif(%1,$3-,$4-)
n230=  if (* !isin %fk.mask) var %fk.mask = * $+ %fk.mask $+ *
n231=  if (%fk.msg == $null) var %fk.msg = Filterkick of %fk.mask
n232=  filterkick -o %fk.chan %fk.mask %fk.msg
n233=}
n234=; /fka <hostmask> [reason]
n235=fka {
n236=  var %a = 1, %message = : $+ $iif($2-,$2-,Filter kick of [ $1 ] )
n237=  while ($chan(%a)) {
n238=    if ($me isop $ifmatch) {
n239=      var %b = 1, %chan = $chan(%a)
n240=      while ($ialchan($1,%chan,%b).nick) {
n241=        var %nick = $ifmatch
n242=        if ((%nick != $me) && (%nick !isop %chan)) kick %chan %nick %message
n243=        inc %b
n244=      }
n245=    }
n246=    inc %a
n247=  }
n248=}
n249=; /fkba <hostmask> [reason]
n250=; filterkickbans all users with matching <hostmask> from all channels with [reason]
n251=fkba {
n252=  var %a = 1, %message = : $+ $iif($2-,$2-,Filter kick of [ $1 ] )
n253=  while ($chan(%a)) {
n254=    if ($me isop $ifmatch) {
n255=      mode $chan(%a) +b $1
n256=      var %b = 1, %chan = $chan(%a)
n257=      while ($ialchan($1,%chan,%b).nick) {
n258=        var %nick = $ifmatch
n259=        if ((%nick != $me) && (%nick !isop %chan)) kick %chan %nick %message
n260=        inc %b
n261=      }
n262=    }
n263=    inc %a
n264=  }
n265=}
n266=fkb if (($$1 ischan) || ($left($1,1) isin &#)) { var %fk.chan = $1, %fk.mask = $_redomask($2), %fk.msg = $3- } | else { var %fk.chan = #, %fk.mask = $_redomask($1), %fk.msg = $2- } | .raw MODE %fk.chan +b %fk.mask | fk %fk.chan %fk.mask %fk.msg
n267=fkn var %filter = $address($1,$iif($2 isnum,$2,2)) | if (%filter) fk %filter Filter kick of %filter | else iecho Unable to grab $$1's address
n268=fuck .raw MODE $chan -o+b $1 $address($1,3) $+ $lf $+ KICK $chan $1 : $+ $iif($2-,$2-,Shitlisted) | addshit $address($1,3) $chan $iif($2-,$2-,Shitlisted)
n269=; /g +|-stnimlkp|bovh [nick]
n270=g {
n271=  set -u %_mode $iif($left($1,1) isin +-,$left($1,1),+) | set -u %_char $remove($1,+,-)
n272=  if (%_char isin stnmpi) set -u %_com %_mode $+ $ifmatch
n273=  elseif (%_char == k) set -u %_com %_mode $+ $ifmatch $iif(%_mode == +,$iif($2 != $null,$2-,ChangeMe))
n274=  elseif (%_char == l) { if ((%_mode == +) && ($2 isnum) && ($2 > 0)) set -u %_com %_mode $+ %_char $2- | else set -u %_com %_mode $+ %_char }
n275=  elseif ((%_char isin bovh) && ($2)) set -u %_com %_mode $+ %_char $2-
n276=  else { iecho Usage: /g <+|-stnimlkp|bovh> [target] | return }
n277=  unset %_Global
n278=  %_l = 1
n279=  while ($chan(%_l)) {
n280=    if ($me !isop $chan(%_l)) continue
n281=    if ($gettok(%_com,1,32) == -k) set %_Global %_Global $+ MODE $chan(%_l) %_com $chan($chan(%_l)).key $+ $lf
n282=    elseif ($gettok(%_com,1,32) == +l) { 
n283=      if (($gettok(%_com,2,32) !isnum) || ($gettok(%_com,2,32) < $chan($chan(%_l)).limit)) set %_Global %_Global $+ MODE $chan(%_l) %_com $calc( [ $chan($chan(%_l)).limit ] + 5) $+ $lf
n284=      else set %_Global %_Global $+ MODE $chan(%_l) %_com $+ $lf
n285=    }
n286=    else set %_Global %_Global $+ MODE $chan(%_l) %_com $+ $lf
n287=    inc %_l
n288=  }
n289=  if (%_Global) .raw $ifmatch | unset %_Global
n290=}
n291=gb {
n292=  unset %_banchan
n293=  var %g, %x = 1
n294=  while ($chan(%x)) {
n295=    if ($me isop $chan(%x)) %g = %g $+ MODE $chan(%x) + $+ $str(b,$numtok($1-,32)) $1- $+ $lf
n296=    inc %x     
n297=  }
n298=  if (%g) .raw %g
n299=}
n300=gk {
n301=  var %x = 1
n302=  while ($comchan($1,%x).op) {
n303=    .raw KICK $comchan($1,%x) $1 : $+ $iif($2,$2-,bye)
n304=    inc %x
n305=  }
n306=}
n307=gkb {
n308=  var %x = 1
n309=  while ($comchan($1,%x).op) {
n310=    .raw MODE $comchan($1,%x) +b $address($1,3) $+ $lf $+ KICK $comchan($1,%x) $1 : $+ $iif($2-,$2-,bye)
n311=    inc %x
n312=  }
n313=}
n314=ircop {
n315=  if (($chan(#).ial == $inwho) || ($__var(ial.,#))) iecho Still updating IAL for #
n316=  elseif ($chan(#).ial == $false) iecho IAL for # not updated
n317=  else { write -c oscan.$$$ | set %oper.scan. [ $+ [ $chan ] ] 1 | iecho Scanning for IRC Ops in # | who # }
n318=}
n319=join {
n320=  if (($server == $null) || ($1 == $null)) halt
n321=  if ($1 == -i) join -i
n322=  elseif (($1 == -n) || ($1 == -x)) { if ($2) join $1 $rechan($2) $3- }
n323=  else join $rechan($1) $2-
n324=}
n325=hop {
n326=  if ($1 == $null) { cycle | halt }
n327=  var %hop = $1
n328=  if ($left($1,1) !isin &%#) %hop = $chr(35) $+ $1
n329=  if ($active ischan) part $active
n330=  join %hop $2-
n331=}
n332=j join $1-
n333=k .raw KICK # $1 : $+ $iif($2,$2-,$_kickmsg($1,#))
n334=kb .raw MODE # -o+b $1 $address($1,3) $+ $lf $+ KICK # $1 : $+ $iif($2,$2-,$_kickmsg($1,#))
n335=m.mode {
n336=  var %.ms = $left($1,1), %.mm = $remove($1,+,-)
n337=  if ((%.ms isin +-) && (%.mm isin ov) && ($2)) {
n338=    var %mode.m = %.ms $+ $servmod(%.mm), %mode.x = $servmod, %mode.i = 1, %mode.t = $numtok($2-,32)
n339=    while (%mode.i <= %mode.t) {
n340=      var %mode.tmp = $gettok($2-,%mode.i,32)
n341=      if ((%mode.tmp != $me) && ($nc(%mode.tmp) != $me)) {
n342=        var %mode.nicks = %mode.nicks $nc(%mode.tmp)
n343=        if (%mode.x // %mode.i) { .raw MODE # %mode.m %mode.nicks | var %mode.nicks }
n344=      }
n345=      inc %mode.i  
n346=    }
n347=    if (%mode.nicks) .raw MODE # %mode.m %mode.nicks
n348=  }
n349=}
n350=masskick {
n351=  if ($1 == $null) iecho Usage: /masskick <-a|-o|+o|-v|+v>
n352=  elseif ($left($1,1) !isin +-) iecho Usage: /masskick <-a|-o|+o|-v|+v>
n353=  elseif ($remove($1,+,-) !isin aov) iecho Usage: /masskick <-a|-o|+o|-v|+v>
n354=  else {
n355=    if ($1 == -a) var %mass.n = a, %mass.x
n356=    if ($1 == -o) var %mass.n = r, %mass.x = o
n357=    if ($1 == +o) var %mass.n = o, %mass.x = r
n358=    if ($1 == -v) var %mass.n = r, %mass.x = ohv
n359=    if ($1 == +v) var %mass.n = v, %mass.x = orh
n360=    var %mass.i = 1, %mass.total = $iif(%mass.x,$nick(#,0,%mass.n,%mass.x),$nick(#,0,%mass.n))
n361=    while (%mass.i <= %mass.total) {
n362=      if ($iif(%mass.x,$nick(#,%mass.i,%mass.n,%mass.x),$nick(#,%mass.i,%mass.n)) != $me) .raw KICK # $ifmatch :Mass kick
n363=      inc %mass.i
n364=    }
n365=    iecho Mass kick complete.
n366=  }
n367=}
n368=masskickban {
n369=  if ($1 == $null) iecho Usage: /masskickban <-a|-o|+o|-v|+v>
n370=  elseif ($left($1,1) !isin +-) iecho Usage: /masskickban <-a|-o|+o|-v|+v>
n371=  elseif ($remove($1,+,-) !isin aov) iecho Usage: /masskickban <-a|-o|+o|-v|+v>
n372=  else {
n373=    if ($1 == -a) { %mass.nicks = a | unset %mass.x }
n374=    if ($1 == +o) { %mass.nicks = o | set %mass.x rv }
n375=    if ($1 == -o) { %mass.nicks = r | set %mass.x o }
n376=    if ($1 == +v) { %mass.nicks = v | set %mass.x r }
n377=    if ($1 == -v) { %mass.nicks = r | set %mass.x vo }
n378=    %mass.b = + $+ $servmod(b)
n379=    %mass.i = $iif(%mass.x,$nick(#,0,%mass.nicks,%mass.x),$nick(#,0,%mass.nicks))
n380=    while (%mass.i) {
n381=      %mass.tmp = $iif(%mass.x,$nick(#,%mass.i,%mass.nicks,%mass.x),$nick(#,%mass.i,%mass.nicks))
n382=      if (%mass.tmp != $me) {
n383=        if ($maxvl(%mass.do1)) { .raw %mass.do1 | unset %mass.do1 }
n384=        if ($maxvl(%mass.do2)) { .raw %mass.do2 | unset %mass.do2 %mass.add }
n385=        if ((%mass.b // %mass.i) || ($maxvl(%mass.add))) {
n386=          %mass.do2 = %mass.do2 $+ MODE # %mass.b %mass.add $+ $lf
n387=          %mass.add = ""
n388=        }
n389=        %mass.do1 = %mass.do1 $+ KICK # %mass.tmp :Mass kickban $+ $lf
n390=        %mass.add = %mass.add $address(%mass.tmp,3)
n391=      }
n392=      dec %mass.i
n393=    }
n394=    if (%mass.add) %mass.do2 = %mass.do2 $+ MODE # + $+ $str(b,$numtok(%mass.add,32)) %mass.add
n395=    if (%mass.do1) %mass.do = %mass.do1 $+ %mass.do2
n396=    if (%mass.do) .raw %mass.do
n397=    unset %mass.*
n398=  }
n399=}
n400=massmode {
n401=  var %mass.mod = $left($1,1) $+ $servmod($right($1,1))
n402=  var %mass.p = $iif(+* iswm $1,r,$iif($1 == -o,o,v)), %mass.m = $servmod, %mass.i = 1
n403=  while ($nick(#,%mass.i,%mass.p)) {
n404=    var %mass.tmp = $ifmatch
n405=    if (%mass.tmp != $me) {
n406=      %mass.a = %mass.a %mass.tmp
n407=      if ($numtok(%mass.a,32) == %mass.m) { %mass.do = %mass.do $+ MODE # %mass.mod %mass.a $+ $lf | unset %mass.a }
n408=      if ($maxvl(%mass.do)) { .raw %mass.do | unset %mass.do }
n409=    }
n410=    inc %mass.i
n411=  }
n412=  if (%mass.a) %mass.do = %mass.do $+ MODE # %mass.mod %mass.a
n413=  if (%mass.do) .raw %mass.do | unset %mass.*
n414=}
n415=mdop massmode -o
n416=mdv massmode -v
n417=mk masskick -a
n418=mkb masskickban $1
n419=mkbl masskickban -o
n420=mknv masskick -v
n421=mkv masskick +v
n422=mlk masskick -o
n423=mok masskick +o 
n424=mop massmode +o
n425=multi {
n426=  var %multi.m = 1
n427=  while ($nc($gettok($1-,%multi.m,32))) {
n428=    var %multi.tmp = $ifmatch
n429=    if ((%multi.tmp !isop #) && ($nc(%multi.tmp) != $me)) .raw KICK # %multi.tmp : $+ $_kickmsg(%multi.tmp,#)
n430=    inc %multi.m
n431=  }
n432=}
n433=mv massmode +v
n434=n notice $1-
n435=names if ($server) { %names = n/a | if ($1) names $1 | elseif ($active ischan) names $chan | else iecho /names - Insufficient parameters }
n436=notice {
n437=  var %n = $nc($1)
n438=  set %last.relsn %n $2-
n439=  .raw NOTICE %n : $+ $2-
n440=  if ($show) {
n441=    var %b = $iif($active == @Notices,aline -p @Notices,_echo)
n442=    if ($format(mnotice,%n,$2-)) %b $ifmatch
n443=    else %b  $+ $c1 $+ [notice: $+ $c3 $+ %n $+  $+ $c1 $+ ] $+ $c3 $2-
n444=  }
n445=}
n446=op if ($2 == $null) mode # +o $1 | else m.mode +o $1-
n447=ovn {
n448=  if ($_network != DALNet) { iecho This command works for DALNet only. | halt }
n449=  notice @+ $+ # $1-
n450=}
n451=p part #$1-
n452=pa partall
n453=pab {
n454=  var %cchans, %except = $iif($1,$replace($1-,$chr(32),$chr(44)),$chan), %i = 1
n455=  while ($chan(%i)) {
n456=    if ($istok(%except,$chan(%i),44) == $false) %cchans = $addtok(%cchans,$chan(%i),44)
n457=    inc %i
n458=  }
n459=  if (%cchans) .raw PART %cchans
n460=}
n461=part part #$1 $2-
n462=partall if ($chan(0)) .partall
n463=q query $$1-
n464=rejoin {
n465=  if ($1 ischan) { set %rejoin. $+ $1 1 | var %c = $1, %partmsg = $2- }
n466=  elseif ($active ischan) { set %rejoin. $+ $active 1 | var %c = $active, %partmsg = $1- }
n467=  else { bhelp rejoin | halt }
n468=  if (i isin $chan(%c).mode) { iecho Unable to rejoin invite only channels. | halt }
n469=  if (k isin $chan(%c).mode) set %ReJoinKey. $+ %c $chan(%c).key
n470=  if ($me ison %c) { part %c %partmsg | echo -s $pre Rejoining %c in 5 seconds }
n471=}
n472=rejoin² .timer 1 5 j $1 $__var(ReJoinKey.,$1) | unset %rejoin. [ $+ [ $1 ] ] %ReJoinKey. [ $+ [ $1 ] ]
n473=sb if ($me isop #) .raw MODE # +b $screw($address($1,3)) $+ $lf $+ KICK # $1 : $+ $iif($2,$2-,$_kickmsg($1,#))
n474=sc if ($iif($1,$rechan($1),$active) ischan) names $ifmatch
n475=topic if ($left($1,1) isin &%#) .raw TOPIC $1 : $+ $2- | elseif ($active ischan) .raw TOPIC # : $+ $1-
n476=uban {
n477=  if (*!*@* iswm $1) { .raw MODE # $bind(+,$str(b,$numtok($1-,32))) $1- | halt }
n478=  %userid.cmd = ""
n479=  %userid.do = + $+ $servmod(b)
n480=  %userid.uid = ""
n481=  %userid.u = 1
n482=  %userid.t = $numtok($1-,32)
n483=  while (%userid.u <= %userid.t) {
n484=    %userid.uid = %userid.uid *!* $+ $gettok($1-,%userid.u,32) $+ @*
n485=    if ($servmod // %userid.u) {
n486=      %userid.cmd = %userid.cmd $+ MODE # %userid.do %userid.uid $+ $lf
n487=      %userid.uid = ""
n488=    }
n489=    inc %userid.u
n490=  }
n491=  if (%userid.uid) %userid.cmd = %userid.cmd $+ MODE # + $+ $str(b,$numtok(%userid.uid,32)) %userid.uid
n492=  if (%userid.cmd) .raw %userid.cmd
n493=  unset %userid.* 
n494=}
n495=v if ($2 == $null) mode # +v $1 | else m.mode +v $1-
n496=w {
n497=  if (($active !ischan) || ($server == $null)) halt
n498=  if (($opnick(#,0) == 1) && ($opnick(#,1) == $me)) iecho No other ops
n499=  else {
n500=    if ($format(wall,#,$1-)) echo -alti14 $ifmatch
n501=    else echo -alti14 -> $bind([,$c3,Wallops:,$c3,#,]) $1-
n502=    if ((undernet isin $server) || (dal.net isin $server)) .raw NOTICE @ $+ # [Wallops: $+ # $+ ] $1-
n503=    else {
n504=      var %x = 1
n505=      while (%x <= $opnick(#,0)) {
n506=        if ($opnick(#,%x) != $me) .timer -m 1 $calc(500 * %x) .raw NOTICE $opnick(#,%x) :[Wallops: $+ # $+ ] $1-
n507=        inc %x
n508=      }
n509=    }
n510=  }
n511=}
n512=wall w $1-
n513=wallex wx $1-
n514=wx {
n515=  if ($opnick(#,0) == 1) { iecho No other ops | return }
n516=  if ($1 !isop #) { iecho $1 is not opped in # | return }
n517=  if ($1 == $null) { bhelp wx | return }
n518=  var %wallex = :[wall-x( $+ $1 $+ ): $+ # $+ ] $2-, %x = 1, %t = $opnick(#,0)
n519=  while (%x <= %t) {
n520=    var %.opnick = $opnick(#,%x)
n521=    if ((%.opnick != $me) && (%.opnick != $1)) .timer -m 1 $mult(%x,500) .raw NOTICE %.opnick %wallex
n522=    inc %x
n523=  }
n524=  if ($format(wallex,#,$1-)) echo -alti14 $ifmatch
n525=  else echo -alti14 [ $+ $c3 $+ wall-x( $+ $1 $+ ): $+ $c3 $+ # $+ ] $2-
n526=}
n527=_ckk {
n528=  var %c.com = $iif($1 == -b,fkb,$iif($1 == -k,fka)), %c.type = $iif($2 isnum,$2,2), %c.found, %c.var = 1
n529=  while ($address($nopnick(#,%c.var),%c.type)) {
n530=    var %c.mask = $address($nopnick(#,%c.var),%c.type)
n531=    if (($ialchan(%c.mask,#,2)) && ($istok(%c.found,%c.mask,32) == $false)) {
n532=      var %c.found = %c.found %c.mask
n533=      %c.com %c.mask No clones allowed in here
n534=    }
n535=    inc %c.var
n536=  }
n537=}
n538=_clonedo {
n539=  var %_clone.m = $gkm(clone_offence, clones from [ $2 ] ), %_clone.d = $i($1,clonepenalty)
n540=  if (%_clone.d == kban) filterkick +b -o $1- %_clone.m
n541=  elseif (%_clone.d == kick) filterkick -o $1- %_clone.m
n542=  elseif (%_clone.d == warn) {
n543=    %clone.siteban = $2
n544=    var %.ck = 1
n545=    while ($ialchan($2,$1,%.ck).nick) {
n546=      .timer -m 1 $mult(%.ck,450) .notice $ifmatch WARNING: You have exceeded the allowed number of clones in $1 $+ . Please remove the rest.
n547=      inc %.ck
n548=    }
n549=    unset %.font.adjust %ctrlf2
n550=    iecho Clones detected in $1 from $+ $c3 $2 $+ . $fcom(/mc)  $+ $c3 $+ $fkey(/mc) $+  to kickban.
n551=  }
n552=}
n553=;EOF