on *:text:*:#: { if ($me !isop #) || (!$op_chan(#)) halt if ($nick isop $chan && $op_(ko) == 0) || ($nick isvoice $chan && $op_(kv) == 0) halt if ($op_(c)) { var %a = 1 while $gettok($op_(cusses),%a,44) { if ($v1 isin $1-) { $op_(c.kt) $+ $iif(ban isin $op_(c.kt),$op_(c.bt),) # $nick $op_(c.kmsg) halt } inc %a } } if ($op_(f)) { hinc -u $+ $op_(f.secs) op f. $+ $nick if ($op_($+(f.,$nick)) >= $op_(f.lines)) { $op_(f.kt) $+ $iif(ban isin $op_(f.kt),$op_(f.bt),) # $nick $op_(f.kmsg) halt } } if ($op_(r)) { if ($op_(r.ll. $+ $nick) == $1-) hinc -u $+ $op_(r.secs) op r.l. $+ $nick else hadd op r.ll. $+ $nick $1- if ($op_($+(r.l.,$nick)) >= $calc($op_(r.lines) - 1)) { $op_(r.kt) $+ $iif(ban isin $op_(r.kt),$op_(r.bt),) # $nick $op_(r.kmsg) halt } } } on ^*:join:$($op_(chans)): { if ($me !isop $chan) echo #  $+ $color(join) $+ * $nick has joined # if ($op_(bl)) { var %a = 1 while $gettok($op_(bl.ids),%a,44) { var %t = $hfind(op,bl.#*,$v1,w), %c = $gettok(%t,2,46) if ($chan == %c && $gettok(%t,3-,46) iswm $address($nick,5)) { mode # +b $gettok(%t,3-,46) kick # $nick 4You have been BLACKLISTED from # halt } inc %a } } if ($op_(va) == 1) mode # +v $nick if ($op_(kc) == 1) .timer 1 1 op_clones $nick # if ($op_(tn) == 1) { hinc op $+(j.,$wildsite,.,$chan,.num) if ($op_($+(j.,$wildsite,.,$chan,.last))) echo #  $+ $color(join) $+ * $nick has joined # - Joined $op_($+(j.,$wildsite,.,$chan,.num)) times - Last as $op_($+(j.,$wildsite,.,$chan)) $duration($calc($ctime - $op_($+(j.,$wildsite,.,$chan,.last)))) ago else echo # * $nick has joined # - First join hadd op $+(j.,$wildsite,.,$chan) $nick hadd op $+(j.,$wildsite,.,$chan,.last) $ctime var %a = 1,%n while $op_($+(j.,$wildsite,.nicknum.,%a)) { if ($v1 == $nick) %n = 1 inc %a } if (!%n) hadd op $+(j.,$wildsite,.nicknum.,%a) $nick haltdef } } on *:nick: { var %a = 1 while $comchan($newnick,%a) { if ($me isop $v1) && ($op_chan($v2)) set -u2 %t 1 inc %a } if (%t != 1) halt if ($op_(bl)) { %a = 1 echo -a 1 while $gettok($op_(bl.ids),%a,44) { var %t = $hfind(op,bl.*@*,$v1,w), %c = $gettok(%t,2,46) if ($newnick ison %c && $me isop %c && $gettok(%t,3-,46) iswm $address($newnick,5)) { ban -u600 %c $gettok(%t,3-,46) kick %c $newnick 4You have been BLACKLISTED from %c halt } inc %a } } if ($op_(tn) == 1) { var %a = 1,%n while $op_($+(j.,$wildsite,.nicknum.,%a)) { if ($v1 == $newnick) %n = 1 inc %a } if (!%n) hadd op $+(j.,$wildsite,.nicknum.,%a) $newnick } } alias op_nicks { if ($op_(tn) != 1) halt var %a = 1,%s while $op_($+(j.,$address($1,2),.nicknum.,%a)) { %s = %s $v1 inc %a } echo -a - Op - 12 $1 has had the nicks:4 %s } alias op_clones { if ($1 isop $2 && $op_(ko) == 0) || ($1 isvoice $2 && $op_(kv) == 0) halt var %a = 1 while $nick($2,%a) { if ($v1 != $1 && $address($v1,2) == $address($1,2)) { ban -ku5 $2 $1 You are the clone of $nick($2,%a) ban -ku5 $2 $nick($2,%a) You are the clone of $1 halt } inc %a } } alias op_chan return $istok($op_(chans),$1,44) alias op_ return $hget(op,$1) menu nicklist { $iif($op_(tn) == 1 && $op_chan(#),Previous Nicks,): op_nicks $$1 } menu channel { $iif($me isop #,Operator Control,) $+ : dialog -m op_dlg op_dlg } on *:start: { hmake op 1000 if (!$isfile(op.hsh)) { echo -a 4op.hsh file not found! Restoring defaults! op_restore } else hload op op.hsh .timer 0 600 hsave op op.hsh } dialog op_dlg { title "Operator Control" size -1 -1 125 200 option dbu tab "Options", 3, 0 0 125 183 tab "Flood/Repeat", 20 tab "Cuss/Blacklist", 21 button "Ok", 1, 15 187 37 10, ok button "Help", 2, 70 186 38 10 list 5, 58 30 60 40, tab 3 vsbar button "Add a Channel", 7, 5 32 45 10, tab 3 button "Delete a Channel", 8, 5 47 45 10, tab 3 check "Kick/Ban Operators", 9, 5 80 65 8, tab 3 check "Kick/Ban Voiced users", 10, 5 90 65 8, tab 3 box "Protected Channels", 6, 2 20 120 50, tab 3 box "General", 11, 2 70 120 61, tab 3 check "Voice all users", 12, 5 100 65 8, tab 3 text "Flood Control:", 13, 5 140 40 8, tab 3 text "Repeat Control:", 14, 5 150 50 8, tab 3 text "Cuss Control:", 15, 5 160 50 8, tab 3 text $op_s(c), 16, 89 160 30 8, tab 3 right text $op_s(r), 17, 89 150 30 8, tab 3 right text $op_s(bl), 18, 89 170 30 7, tab 3 right box "Status", 19, 2 132 120 48, tab 3 box "Flood Control", 22, 2 20 121 70, tab 20 check "Enable Flood Control", 23, 5 30 65 8, tab 20 text $op_ktt(f.kt),24, 5 43 22 7, tab 20 right text "a user after typing", 25, 28 43 46 8, tab 20 edit $op_(f.lines), 26, 74 42 13 9, tab 20 center text " lines in", 27, 88 43 23 8, tab 20 edit $op_(f.secs), 28, 15 50 13 9, tab 20 center text "seconds", 29, 30 51 20 8, tab 20 text "Type:", 30, 5 64 15 8, tab 20 combo 31, 22 64 37 9, tab 20 drop text "Ban time:", 32, 61 64 23 8, tab 20 edit $op_(f.bt), 33, 84 64 15 9, tab 20 text "seconds", 34, 100 64 21 8, tab 20 text "Kick Message:", 35, 5 77 34 8, tab 20 edit $op_(f.kmsg), 36, 40 76 80 10, tab 20 box "Repeat Control", 37, 2 100 121 70, tab 20 check "Enable Repeat Control", 38, 5 110 65 8, tab 20 text $op_ktt(r.kt),39, 5 123 22 7, tab 20 result right text "a user after repeating", 40, 28 123 54 8, tab 20 result edit $op_(r.lines), 41, 82 123 13 9, tab 20 result center text " lines in", 42, 96 123 23 8, tab 20 result edit $op_(r.secs), 43, 15 131 13 9, tab 20 result center text "seconds", 44, 29 133 20 8, tab 20 result text "Ban time:", 45, 61 144 23 8, tab 20 result text "Type:", 46, 5 144 15 8, tab 20 result combo 47, 21 144 37 9, tab 20 result drop text "seconds", 48, 99 144 21 8, tab 20 result text "Kick Message:", 49, 5 157 34 8, tab 20 result edit $op_(r.kmsg), 50, 39 156 80 10, tab 20 result edit $op_(r.bt), 51, 84 143 15 9, tab 20 result text "Blacklist:", 52, 5 170 50 7, tab 3 text $op_s(f), 53, 89 140 30 8, tab 3 right check "Kick Clones", 54, 5 110 65 8, tab 3 check "Track previous nicknames", 55, 5 120 70 8, tab 3 box "Cuss Control", 56, 2 20 120 77, tab 21 check "Enable Cuss Control", 57, 5 30 59 8, tab 21 list 58, 66 27 52 42, tab 21 vsbar button "Show Words", 59, 15 40 40 8, tab 21 button "Delete Word", 60, 15 50 40 8, tab 21 button "Add Word", 61, 15 60 40 8, tab 21 box "Blacklist Control", 62, 2 100 120 80, tab 21 check "Enable Blacklist", 63, 4 110 50 8, tab 21 list 64, 4 128 114 42, tab 21 vsbar hsbar text "Channel:", 65, 5 120 23 8, tab 21 text "Address:", 66, 85 120 23 8, tab 21 button "Add user", 67, 6 170 40 8, tab 21 button "Delete user", 68, 76 170 40 8, tab 21 text "Type:", 75, 5 73 15 8, tab 21 combo 69, 19 72 37 8, drop tab 21 text "Ban time:", 70, 58 73 23 8, tab 21 edit $op_(c.bt), 71, 82 73 15 9, tab 21 text "seconds", 72, 98 73 21 8, tab 21 text "Kick Message:", 73, 5 85 34 8, tab 21 edit $op_(c.kmsg), 74, 37 84 81 10, tab 21 } alias op_rp did -o op_dlg $1 1 $2- alias op_p_chans { did -r op_dlg 5 var %a = 1 while $gettok($op_(chans),%a,44) { did -a op_dlg 5 $v1 inc %a } } alias op_p_cusses { did -r op_dlg 58 if (!$op_(sc)) { did -a op_dlg 58 Cusses hidden did -b op_dlg 60 op_rp 59 Show Cusses } else { did -e op_dlg 60 op_rp 59 Hide Cusses var %a = 1 while $gettok($op_(cusses),%a,44) { did -a op_dlg 58 $v1 inc %a } } } alias op_p_bl { did -r op_dlg 64 %a = 1 while $gettok($op_(bl.ids),%a,44) { var %t = $hfind(op,bl.*@*,$v1,w), %c = $gettok(%t,2,46), %ad = $gettok(%t,3-,46) did -a op_dlg 64 %c $str(-,$calc(42 - $len(%c) - $len(%ad))) %ad inc %a } did -z op_dlg 64 } alias op_s return $iif($op_($1),Enabled,Disabled) alias op_ktt return $replace($op_($1),ban -ku,Kick+Ban,ban -u,Ban) alias op_t { var %a = $1,%t while (%a <= $2) { %t = $addtok(%t,%a,44) inc %a } return %t } on *:dialog:op_dlg:init:0: { if (!$hget(op)) { hmake op 1000 if ($isfile(op.hsh)) hload op op.hsh else op_restore dialog -x op_dlg op_dlg .timer 1 1 dialog -m op_dlg op_dlg halt } op_p_chans op_p_bl op_p_cusses if ($op_(f.kt) == ban -ku) { did -ac op_dlg 31 Kick+Ban did -a op_dlg 31 Kick did -a op_dlg 31 Ban Only } elseif ($op_(f.kt) == ban -u) { did -a op_dlg 31 Kick+Ban did -a op_dlg 31 Kick did -ac op_dlg 31 Ban Only did -h op_dlg 35,36 } else { did -a op_dlg 31 Kick+Ban did -ac op_dlg 31 Kick did -a op_dlg 31 Ban Only did -h op_dlg 32,33,34 } if (!$op_(f)) did -b op_dlg $op_t(24,36) else did -c op_dlg 23 if ($op_(r.kt) == ban -ku) { did -ac op_dlg 47 Kick+Ban did -a op_dlg 47 Kick did -a op_dlg 47 Ban Only } elseif ($op_(r.kt) == ban -u) { did -a op_dlg 47 Kick+Ban did -a op_dlg 47 Kick did -ac op_dlg 47 Ban Only did -h op_dlg 49,50 } else { did -a op_dlg 47 Kick+Ban did -ac op_dlg 47 Kick did -a op_dlg 47 Ban Only did -h op_dlg 51,45,48 } if (!$op_(r)) did -b op_dlg $op_t(39,51) else did -c op_dlg 38 if ($op_(c.kt) == ban -ku) { did -ac op_dlg 69 Kick+Ban did -a op_dlg 69 Kick did -a op_dlg 69 Ban Only } elseif ($op_(c.kt) == ban -u) { did -a op_dlg 69 Kick+Ban did -a op_dlg 69 Kick did -ac op_dlg 69 Ban Only did -h op_dlg 73,74 } else { did -a op_dlg 69 Kick+Ban did -ac op_dlg 69 Kick did -a op_dlg 69 Ban Only did -h op_dlg 70,71,72 } if (!$op_(c)) did -b op_dlg 58,59,60,61, $+ $op_t(69,75) else did -c op_dlg 57 if (!$op_(bl)) did -b op_dlg $op_t(64,68) else did -c op_dlg 63 if ($op_(ko) == 1) did -c op_dlg 9 if ($op_(kv) == 1) did -c op_dlg 10 if ($op_(va) == 1) did -c op_dlg 12 if ($op_(kc) == 1) did -c op_dlg 54 if ($op_(tn) == 1) did -c op_dlg 55 } on *:dialog:op_dlg:sclick:2: run notepad $mircdir $+ op_readme.txt on *:dialog:op_dlg:sclick:7: { if ($op_chan($?="What channel would you like to add?")) { echo -a - OP - 4Error: channel " $+ $! $+ " has already been added halt } hadd op chans $addtok($op_(chans),$!,44) echo -a - OP - 3Channel " $+ $! $+ " added to op control list op_p_chans } on *:dialog:op_dlg:sclick:8: { if (!$did(5).seltext) { echo -a - OP - 4Error: Select a channel from the box to delete halt } if (!$?!="Are you sure you want to delete $did(5).seltext $+ ?") halt hadd op chans $remtok($op_(chans),$did(5).seltext,1,44) echo -a - OP - 3Channel " $+ $did(5).seltext $+ " deleted from op control list op_p_chans } on *:dialog:op_dlg:sclick:23: { if ($op_(f)) { did -b op_dlg $op_t(24,36) hdel op f } else { did -e op_dlg $op_t(24,36) hadd op f $true } op_rp 53 $op_s(f) } on *:dialog:op_dlg:sclick:38: { if ($op_(r)) { did -b op_dlg $op_t(39,51) hdel op r } else { did -e op_dlg $op_t(39,51) hadd op r $true } op_rp 17 $op_s(r) } on *:dialog:op_dlg:sclick:31: { hadd op f.kt $replace($did(31),Ban Only,ban -u,Kick+Ban,ban -ku) op_rp 24 $gettok($did(31),1,32) if (ban !isin $did(31)) did -h op_dlg 32,33,34 else did -v op_dlg 32,33,34 if (kick !isin $did(31)) did -h op_dlg 35,36 else did -v op_dlg 35,36 } on *:dialog:op_dlg:sclick:47: { hadd op r.kt $replace($did(47),Ban Only,ban -u,Kick+Ban,ban -ku) op_rp 39 $gettok($did(47),1,32) if (ban !isin $did(47)) did -h op_dlg 51,45,48 else did -v op_dlg 51,45,48 if (kick !isin $did(47)) did -h op_dlg 49,50 else did -v op_dlg 49,50 } on *:dialog:op_dlg:edit:26: { if ($did(26) isnum) hadd op f.lines $did(26) else op_rp 26 $op_(f.lines) } on *:dialog:op_dlg:edit:28: { if ($did(28) isnum) hadd op f.secs $did(28) else op_rp 28 $op_(f.secs) } on *:dialog:op_dlg:edit:33: { if ($did(33) isnum) hadd op f.bt $did(33) else op_rp 33 $op_(f.bt) } on *:dialog:op_dlg:edit:41: { if ($did(41) isnum) hadd op r.lines $did(41) else op_rp 41 $op_(r.lines) } on *:dialog:op_dlg:edit:43: { if ($did(43) isnum) hadd op r.secs $did(43) else op_rp 43 $op_(r.secs) } on *:dialog:op_dlg:edit:51: { if ($did(51) isnum) hadd op r.bt $did(51) else op_rp 51 $op_(r.bt) } on *:dialog:op_dlg:edit:71: { if ($did(71) isnum) hadd op c.bt $did(71) else op_rp 71 $op_(c.bt) } on *:dialog:op_dlg:sclick:69: { hadd op c.kt $replace($did(69),Ban Only,ban -u,Kick+Ban,ban -ku) if (ban !isin $did(69)) did -h op_dlg 70,71,72 else did -v op_dlg 70,71,72 if (kick !isin $did(69)) did -h op_dlg 73,74 else did -v op_dlg 73,74 } on *:dialog:op_dlg:sclick:57: { if ($op_(c)) { did -b op_dlg 58,59,60,61, $+ $op_t(69,75) hdel op c } else { did -e op_dlg 58,59,60,61, $+ $op_t(69,75) hadd op c $true } op_rp 16 $op_s(c) } on *:dialog:op_dlg:sclick:63: { if ($op_(bl)) { did -b op_dlg $op_t(64,68) hdel op bl } else { did -e op_dlg $op_t(64,68) hadd op bl $true } op_rp 18 $op_s(bl) } on *:dialog:op_dlg:edit:74: hadd op c.kmsg $did(74) on *:dialog:op_dlg:edit:50: hadd op r.kmsg $did(50) on *:dialog:op_dlg:edit:36: hadd op f.kmsg $did(36) on *:dialog:op_dlg:sclick:9: hadd op ko $did(9).state on *:dialog:op_dlg:sclick:10: hadd op kv $did(10).state on *:dialog:op_dlg:sclick:12: hadd op va $did(12).state on *:dialog:op_dlg:sclick:54: hadd op kc $did(54).state on *:dialog:op_dlg:sclick:55: hadd op tn $did(55).state on *:dialog:op_dlg:sclick:59: { if (show isin $did(59)) hadd op sc $true else hdel op sc op_p_cusses } on *:dialog:op_dlg:sclick:61: { if (!$?="What cuss word do you want to add?" || $istok($op_(cusses),$!,44)) { echo -a - Op - 4Error: Word already added | halt } hadd op cusses $addtok($op_(cusses),$!,44) op_p_cusses echo -a - Op - 3Added cuss word! } on *:dialog:op_dlg:sclick:60: { if (!$?="What cuss word do you want to add?" || !$istok($op_(cusses),$!,44)) { echo -a - Op - 4Error: Word not added | halt } hadd op cusses $remtok($op_(cusses),$!,1,44) op_p_cusses echo -a - Op - 3Deleted cuss word! } on *:dialog:op_dlg:sclick:67: dialog -m op_ab op_ab on *:dialog:op_dlg:sclick:68: { if (!$did(64).seltext) { echo -a - Op - 4Error: To delete a user, select the channel/blacklist and click "Delete user" halt } var %t = $hfind(op,bl.#*,$gettok($op_(bl.ids),$did(64).sel,44),w) if (!$?!="Are you sure you want to delete the blacklist of $gettok(%t,3-,46) on channel $gettok(%t,2,46) $+ ? ") halt hdel op %t hadd op bl.ids $remtok($op_(bl.ids),$gettok($op_(bl.ids),$did(64).sel,44),1,44) echo -a - Op - 3Address $gettok(%t,3-,46) on channel $gettok(%t,2,46) deleted! op_p_bl } dialog op_ab { title "Add to Blacklist" size -1 -1 170 37 option dbu text "Blacklist by:", 1, 2 2 30 9 combo 2, 31 1 50 9, drop text "Address:", 3, 2 15 24 8 edit "", 4, 27 14 139 9 text "Channel:", 6, 93 2 23 8 combo 7, 117 1 50 9, drop button "Add", 5, 45 25 30 10 button "Cancel",8, 95 25 30 10, cancel } on *:dialog:op_ab:init:0: { var %a = 1 while $gettok($op_(chans),%a,44) { did -a op_ab 7 $v1 inc %a } did -ac op_ab 2 Address did -a op_ab 2 Nickname did -b op_ab 5 } on *:dialog:op_ab:sclick:2: did -o op_ab 3 1 $did(2) $+ : on *:dialog:op_ab:sclick:7: did -e op_ab 5 on *:dialog:op_ab:sclick:5: { if (!$did(4)) { echo -a - Op - 4Error: Please enter the $did(2) to blacklist halt } if ($op_($+(bl.,$did(7),.,$iif($did(2) == Nickname,$did(4) $+ !*@*,$did(4))))) { echo -a - Op - 4Error: That $did(2) has already been added! halt } if ($did(2) == Address && (*?!*?*@?* !iswm $did(4) || $count($did(4),!) > 1 || $count($did(4),@) > 1 || ** isin $did(4))) { echo -a - Op -4 Error, Invalid address. Use the format: *!*@* eg: bearruler!*@*.40E7B703.A8CC573C.IP halt } hinc op bl.id hadd op bl.ids $addtok($op_(bl.ids),$op_(bl.id),44) hadd op $+(bl.,$did(7),.,$iif($did(2) == Nickname,$did(4) $+ !*@*,$did(4))) $op_(bl.id) echo -a - Op - 3 $+ $did(2) " $+ $did(4) $+ " added to blacklist! dialog -x op_ab op_p_bl } alias op_restore { hadd op kv 1 hadd op kc 1 hadd op tn 1 hadd op f.kt ban -ku hadd op f.lines 5 hadd op f.secs 3 hadd op f.bt 30 hadd op f.kmsg Dont Flood! 30 second ban! hadd op r.kt kick hadd op r.lines 3 hadd op r.secs 7 hadd op r.kmsg Repeating! 3 lines in 5 seconds hsave op op.hsh echo -a - Op -3 Restored Op defaults! } alias cpm { if ($me !isop $chan) { echo -a you need +q to perform some of these modes +a +o to perform the rest of the modes | .return } var %all = $nick(#,0),%kick = 0 :start if (%kick > %all) { .return } inc %kick | if ($nick(#,%kick) == $me) { goto start } mode # $1 $nick(#,%kick) | goto start } menu channel { [mass] .[mass+h]:$cpm(+h) .[mass-h]:$cpm(-h) }