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