All pastes #194556 Raw Edit

Something

public text v1 · immutable
·published 2006-10-08 01:13 UTC
rendered paste body
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)
}