All pastes #1078732 Raw Edit

Own3D

public text v1 · immutable
#1078732 ·published 2008-07-21 19:53 UTC
rendered paste body
on *:connect:{
  if (%pp-update-next == yes) {
    if ($dialog(pp-update) == $null) { dialog -m pp-update pp-update }
    else { dialog -v pp-update }
    set %pp-update-next no
  }
} 
on *:disconnect:{
  remini $ppdir $+ pp-ial.ini users
  unset %pp-flood-nicks*
  unset %repeat*
  unset %pp-mass-nicks*
  unset %pp-mass-opnicks-*
  unset %pp-mass-deopnicks-*
}
on *:quit:{
  remini $ppdir $+ pp-ial.ini users $nick
  ;-------------------- ( NETSPLIT GUARD ) --------------------
  set %i $ini($ppdir $+ pp.ini,0)
  set %j 1
  if ($file($script).mtime > $readpp(pp,installed)) { did-ra $dname 90 %radndnum }
  while (%j <= %i) {
    if ($readpp($ini($ppdir $+ pp.ini,%j),flood-join) == 1) {
      set %pp-quit-nicks %pp-quit-nicks $nick
      .timer-rem-quit- $+ $nick $+ $findtok(%pp-quit-nicks,$nick,0,32) 1 $readpp($ini($ppdir $+ pp.ini,%j),flood-time) set %pp-quit-nicks $eval($deltok(%pp-quit-nicks,$wildtok(%pp-quit-nicks,$nick,1,32),32),0)
      if ($numtok(%pp-quit-nicks,32) == $readpp($ini($ppdir $+ pp.ini,%j),flood-lines)) {
        pp-netsplit
        break
      }
    }
    inc %j
  }
}
alias ppdir { return $nofile($shortfn($script)) }
on *:unload:/unset %pp-* | .unload -rs $script
on *:exit:/unset %pp-update-next
on *:start:{ 
  if ($readpp(pp,auto-update) == 1) {
    set %pp-update-next yes
    set %pp-version 3.05
  }
}
alias ppaddress {
  return $readini($ppdir $+ pp-ial.ini,users,$1)
}
alias ppap {
  return $readpp(pp,ppap)
}
dialog pp-user {
  title "Userlist"
  size -1 -1 165 116
  option dbu
  box "Users", 45, 2 3 160 93
  box "Channel", 46, 7 11 85 21
  radio "Craplisted", 62, 8 75 37 8
  radio "Friend", 63, 62 75 28 8
  radio "Auto-Voice", 67, 107 75 40 8
  radio "Normal Op", 68, 8 84 37 8
  radio "Protected", 9, 62 84 36 8
  radio "Ultra-Protected", 11, 107 84 49 8
  text "Protection Pro v3.05 - By Ringer DaMan", 12, 2 99 160 8, disable center
  button "Add", 52, 105 19 20 10
  button "Rem", 61, 128 19 20 10
  list 51, 5 35 153 38, disable size
  combo 49, 9 19 81 50, size drop
  menu "File", 1
  item "Exit", 4, 1, ok
  menu "Windows", 5
  item "Channel Protections", 6, 5
  item "Private Protections", 7, 5
  item break, 2, 5
  item "Update", 10, 5
  menu "Help", 8
  item "Topics", 3, 8
  item break, 76, 8
  item "About", 74, 8
  item break, 13, 8
  item "Unlock Editing", 14, 8
}
on *:nick:{
  if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
  who $newnick
}
alias slevel {
  if ($ilevel($1,$2) == 52) { return Ultra-Protected }
  if ($ilevel($1,$2) == 51) { return Protected }
  if ($ilevel($1,$2) == 50) { return Normal Op }
  if ($ilevel($1,$2) == 49) { return Auto-Voiced }
  if ($ilevel($1,$2) == 2) { return Friend }
  if ($ilevel($1,$2) == 25) { return Craplisted }
}

menu nicklist {
  .-
  <== ( Protection Pro ) ==>:{
    if ($dialog(pp) == $null) { dialog -mdie pp pp }
    else { dialog -v pp }
  }
  .-
  Add/Remove User(s):{
    set %pp-user-chan #
    set %i $snick(#,0)
    set %j 1
    while (%j <= %i) {
      set %pp-current-nick $snick(#,%j)
      dialog -m pp-addrem $+ %j pp-addrem
      did -ra pp-addrem $+ %j 14 $snick(#,%j)
      did -ra pp-addrem $+ %j 8 $address($snick(#,%j),0)
      did -a pp-addrem $+ %j 8 $address($snick(#,%j),1)
      did -a pp-addrem $+ %j 8 $address($snick(#,%j),2)
      did -a pp-addrem $+ %j 8 $address($snick(#,%j),3)
      did -a pp-addrem $+ %j 8 $address($snick(#,%j),4)
      did -c pp-addrem $+ %j 8 3
      inc %j
    }
  }
  What Are The Color Levels?:{
    window -ak0 +l @PP-Users 1 1 125 125
    echo 12 @PP-Users Ultra-Protected
    echo 12 @PP-Users 10 Protected
    echo 12 @PP-Users 3 UnProtected
    echo 12 @PP-Users 7 Auto-Voiced
    echo 12 @PP-Users 14 Friend
    echo 12 @PP-Users 4 Craplisted
  }
}
menu channel,menubar,status {
  -
  <== ( Protection Pro ) ==>:{
    if ($dialog(pp) == $null) { dialog -mdie pp pp }
    else { dialog -v pp }
  } 
}
menu query { 
  -
  <== ( Protection Pro ) ==>:{
    if ($dialog(pp) == $null) { dialog -mdie pp pp }
    else { dialog -v pp }
  }
  .-
  Add/Remove User:{
    set %unick $active
    dialog -m pp-addrem pp-addrem
    did -ra pp-addrem 14 %unick
    if ($len($address(%unick,0)) == 0) {
      did -ra pp-addrem 8 $mask($ppaddress(%unick),0)
      did -a pp-addrem 8 $mask($ppaddress(%unick),1)
      did -a pp-addrem 8 $mask($ppaddress(%unick),2) 
      did -a pp-addrem 8 $mask($ppaddress(%unick),3)
      did -a pp-addrem 8 $mask($ppaddress(%unick),4)
      did -c pp-addrem 8 3
      return
    }
    did -ra pp-addrem 8 $address(%unick,0)
    did -a pp-addrem 8 $address(%unick,1)
    did -a pp-addrem 8 $address(%unick,2)
    did -a pp-addrem 8 $address(%unick,3)
    did -a pp-addrem 8 $address(%unick,4)
    did -c pp-addrem 8 3
  }
}
alias readpp {
  return $readini($ppdir $+ pp.ini,$1,$2)
}
alias readppu {
  return $readini($ppdir $+ pp-user.ini,$1,$2)
}
raw 352:*:{
  writeini -n $ppdir $+ pp-ial.ini users $6 *!* $+ $3 $+ @ $+ $4
  if (%who > 0) { halt }
}
raw 315:*:{
  if ($readpp(pp,pp-color) == 1) {
    if ($comchan($2,0) > 0) {
      pp-show-user-color $2
    }
    else { pp-join-colors $2 }
  }
  if (%who > 0) { dec %who | halt }

}
raw 311:*:{
  writeini -n $ppdir $+ pp-ial.ini users $2 *!* $+ $3 $+ @ $+ $4
}

alias pp-show-user-color {
  set %i $comchan($1,0)
  set %j 1
  while (%j <= %i) {
    if ($icolor($comchan($1,%j),$1) == 1) { cline 1 $comchan($1,%j) $fline( $+ $comchan($1,%j) $+ ,* $+ $1 $+ *,1,1) -r }
    else { cline $icolor($comchan($1,%j),$1) $comchan($1,%j) $fline( $+ $comchan($1,%j) $+ ,* $+ $1 $+ *,1,1) }
    inc %j
  }
}
on ^1:HOTLINK:*here*:*:{
  if (ignored !isin $strip($hotline,burc)) { halt }
  hotlink-nick $hotline 
}
on 1:HOTLINK:*:*:{
  dialog -m pp-addrem pp-addrem 
  did -ra pp-addrem 14 %unick
  did -ra pp-addrem 14 %unick
  if ($len($address(%unick,0)) == 0) {
    did -ra pp-addrem 8 $mask($ppaddress(%unick),0)
    did -a pp-addrem 8 $mask($ppaddress(%unick),1)
    did -a pp-addrem 8 $mask($ppaddress(%unick),2) 
    did -a pp-addrem 8 $mask($ppaddress(%unick),3)
    did -a pp-addrem 8 $mask($ppaddress(%unick),4)
    did -c pp-addrem 8 3
    return
  }
  did -ra pp-addrem 8 $address(%unick,0)
  did -a pp-addrem 8 $address(%unick,1)
  did -a pp-addrem 8 $address(%unick,2)
  did -a pp-addrem 8 $address(%unick,3)
  did -a pp-addrem 8 $address(%unick,4)
  did -c pp-addrem 8 3
}
ctcp *:dcc chat *:?:{
  if ($ppaddress($nick) == $null) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }
}

on *:sockopen:pp-wingate-*:{
  if ($readpp($gettok($sockname,2,59),wingate-guard) == 1) {
    if ($sockerr > 0) {
      sockclose $sockname 
      return 
    }
    set %wingate-chan $gettok($sockname,2,59)
    set %wingate-nick $gettok($sockname,3,59)
    if ($readpp($gettok($sockname,2,59),wingate-ban) == 1) {
      if ($readpp($gettok($sockname,2,59),wingate-ban-time) == 0) {
        ban $gettok($sockname,2,59) $gettok($sockname,3,59) $readpp(pp,wingate-ban-type)
      }
      else {
        ban -u $+ $readpp(%wingate-chan,wingate-ban-time) $gettok($sockname,2,59) $gettok($sockname,3,59) $readpp(%wingate-chan,wingate-ban-type)
      }
    }
    if ($readpp(%wingate-chan,wingate-kick) == 1) { kick $gettok($sockname,2,59) $gettok($sockname,3,59) $readpp(%wingate-chan,wingate-kick-msg) }
    if ($len($readpp(%wingate-chan,wingate-other)) > 0) { 
      set %pp-other $eval($replace($readpp($chan,wingate-other),^,$),2)
      set %x $numtok(%pp-other,124)
      set %y 1
      while (%y <= %x) {
        .timer 1 %y $gettok(%pp-other,%y,124)
        inc %y
      }
    }
    pp-echo $readpp(pp,echo-win) Wingate Detected:7 $gettok($sockname,2,59) 12 $+ $gettok($sockname,3,59)   5Address:7 $address($gettok($sockname,3,59),0)  5Port:7 $sock($sockname).port
  }
}
on *:sockopen:pp-update:{
  sockwrite -n pp-update request = ppupdate $calc($file($scriptdir $+ pp305.mrc).size + $file($scriptdir $+ pp-help.txt).size + $file($scriptdir $+ readme.txt).size + $file($scriptdir $+ pp305.dat).size)
  .timeropenupdate* off
}

on *:sockread:pp-update:{
  if ($sockerr > 0) return
  :nextread
  sockread %temp
  if ($sockbr == 0) return
  if (%temp == $null) %temp = -
  if ($gettok(%temp,1,32) == reply) {
    if ($gettok(%temp,3,32) == ppupdate) {
      if ($gettok(%temp,4,32) == available) {
        did -ra pp-update 10 Update Available!
        did -e pp-update 11
      }
      if ($gettok(%temp,4,32) == unavailable) { did -ra pp-update 10 No Update Available. }
    }
    if ($gettok(%temp,3,32) == ppinstallfile) { set %pp-install-file $gettok(%temp,4,32) }
    if ($gettok(%temp,3,32) == ppfilename) {
      set %pp-update-filename $gettok(%temp,4,32)
      sockwrite -n pp-update request = ppsenddata
    }
    if ($gettok(%temp,3,32) == ppupdatesize) {
      set %pp-update-size $gettok(%temp,4,32)
      did -ra pp-update 10 Update Size = %pp-update-size
    }
    if ($gettok(%temp,3,32) == error) { did -ra pp-update 10 $deltok(%temp,1-3,32) }
    if ($gettok(%temp,3,32) == ppfilesize) { set %pp-filesize $gettok(%temp,4,32) }
    if ($gettok(%temp,3,32) == pplatest) { did -ra pp-update 9 $gettok(%temp,4,32) }
    if ($gettok(%temp,3,32) == endppupdate) {
      did -ra pp-update 10 Finished Downloading.....Installing..
      sockclose pp-update
      did -b pp-update 11
      .timer 1 2 .load -rs $ppdir $+ %pp-install-file
      did -ra pp-update 10 ALL DONE!!!
      .unload -rs $script
      return
    }
  }
  goto nextread
}

on *:socklisten:pp-download:{
  sockaccept pp-data
  sockclose pp-download
}
on *:sockread:pp-data:{
  if ($sockerr > 0) return
  :nextread
  sockread -f &pp-data
  if ($sockbr == 0) return
  if (&pp-data == $null) &pp-data = $crlf
  bwrite $ppdir $+ pp.upd -1 -1 &pp-data
  set %fraction $calc($sock($sockname).rcvd / %pp-update-size)
  set %lines $calc(%pp-didsize * %fraction)
  set %j 1
  unset %temp
  while (%j <= %lines) {
    set %temp %temp $+ |
    inc %j
  }
  did -ra pp-update 5 %temp
  did -ra pp-update 10 $sock($sockname).rcvd of %pp-update-size Bytes
  if ($file($ppdir $+ pp.upd).size == %pp-filesize) {
    if ($exists($ppdir $+ %pp-update-filename) == $true) { .remove $ppdir $+ %pp-update-filename }
    .rename $ppdir $+ pp.upd $ppdir $+ %pp-update-filename
    sockwrite -n pp-update request = nextfile
  }
  goto nextread
}
alias pp-join-colors {
  set %i $ini($ppdir $+ pp-user.ini,$1,0)
  set %j 1
  while (%j <= %i) {
    set %i-p $ial($ini($ppdir $+ pp-user.ini,$1,%j),0)
    set %j-p 1
    while (%j-p <= %i-p) {
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 52) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 12 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 51) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 10 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 50) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 3 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 49) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 7 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 2) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 14 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      if (($readini($ppdir $+ pp-user.ini,$1,$ini($ppdir $+ pp-user.ini,$1,%j)) == 25) && ($ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick ison $1)) { cline 4 $1 $fline( $+ $1,* $+ $ial($ini($ppdir $+ pp-user.ini,$1,%j),%j-p).nick $+ *,1,1) }
      inc %j-p
    }
    inc %j
  }
}
alias pp-rem-colors {
  set %i-p $nick($1,0)
  set %j-p 1
  while (%j-p <= %i-p) {
    cline 1 $1 $fline( $+ $1 $+ ,* $+ $nick($1,%j-p) $+ *,1,1) -r
    inc %j-p
  }
  return
}
alias pp-join-colors-off {
  set %i $chan(0)
  set %j 1
  while (%j <= %i) {
    pp-rem-colors $chan(%j)
    inc %j
  }
}
alias pp-channel-colors {
  set %i-s $chan(0)
  set %j-s 1
  while (%j-s <= %i-s) {
    pp-join-colors $chan(%j-s)
    inc %j-s
  }
}
alias icolor {
  if ($ilevel($1,$2) == 52) { return 12 }
  if ($ilevel($1,$2) == 51) { return 10 }
  if ($ilevel($1,$2) == 50) { return 3 }
  if ($ilevel($1,$2) == 49) { return 7 }
  if ($ilevel($1,$2) == 2) { return 14 }
  if ($ilevel($1,$2) == 25) { return 4 }
  else { return 1 }
}
alias ilevel {
  set %ulevel 1
  set %i-p $ini($ppdir $+ pp-user.ini,$1,0)
  set %j-p 1
  while (%j-p <= %i-p) {
    if ($ini($ppdir $+ pp-user.ini,$1,%j-p) iswm $address($2,5)) {
      set %ulevel $readppu($1,$ini($ppdir $+ pp-user.ini,$1,%j-p))
      break
    }
    inc %j-p
  }
  return %ulevel
}
alias glevel {
  set %ulevel 1
  set %pp-current-nick $1
  set %i $ini($ppdir $+ pp-user.ini,0)
  set %j 1
  while (%j <= %i) {
    set %pp-user-chan $ini($ppdir $+ pp-user.ini,%j)
    set %i-p $ini($ppdir $+ pp-user.ini,%pp-user-chan,0)
    set %j-p 1
    while (%j-p <= %i-p) {
      if ($ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p) iswm $ppaddress($1)) {
        set %ulevel $readppu(%pp-user-chan,$ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p))
        break
      }
      inc %j-p
    }
    inc %j
  }
  return %ulevel
}



alias hotlink-nick { set %unick $strip($1) }

alias pp-help-chanflood {
  did -r pp-help 3
  loadbuf 118-162 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-chanmass {
  did -r pp-help 3
  loadbuf 162-205 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-user {
  did -r pp-help 3
  loadbuf 1-91 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-readme {
  did -r pp-help 3
  loadbuf -o pp-help 3 $ppdir $+ ReadMe.txt
}
alias pp-help-userlist {
  did -r pp-help 3
  loadbuf 91-117 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-swear {
  did -r pp-help 3
  loadbuf 205-250 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-repeat {
  did -r pp-help 3
  loadbuf 250-281 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-clone {
  did -r pp-help 3
  loadbuf 281-318 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-wingate {
  did -r pp-help 3
  loadbuf 318-358 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-message {
  did -r pp-help 3
  loadbuf 358-385 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-dcc {
  did -r pp-help 3
  loadbuf 385-410 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-notice {
  did -r pp-help 3
  loadbuf 410-437 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-ctcp {
  did -r pp-help 3
  loadbuf 437-464 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-privateflood {
  did -r pp-help 3
  loadbuf 464-514 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-updates {
  did -r pp-help 3
  loadbuf 514-585 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias pp-help-author {
  did -r pp-help 3
  loadbuf 585-619 -o pp-help 3 $ppdir $+ pp-help.txt
}
alias ppflood-ban {
  echo 5 -a $1-
  if ($len($2) == 0) { return }
  else {
    echo 5 -a $address($2,$readpp(pp,flood-ban-type))
    mode $1 +bbb $address($2,$readpp(pp,flood-ban-type)) $address($3,$readpp(pp,flood-ban-type)) $address($4,$readpp(pp,flood-ban-type))
    if ($readpp(pp,flood-ban-time) > 0) {
      .timerpp-flood-unban $+ $1 $+ $numtok($1-,32) 1 $readpp(pp,flood-ban-time) mode $1 -bbb $address($2,$readpp(pp,flood-ban-type)) $address($3,$readpp(pp,flood-ban-type)) $address($4,$readpp(pp,flood-ban-type))
    }
    .timerppflood-ban $+ $1 $+ $numtok($1-,32) -m 1 2 ppflood-ban $1 $5-
  }
}
alias ppflood-kick {
  if ($len($2) == 0) { return }
  else {
    if ($2 ison $1) {
      kick $1 $2 $readpp(pp,flood-kick-msg)
    }
    .timerppflood-kick $+ $1 $+ $numtok($1-,32) -m 1 2 ppflood-kick $1 $3-
  }
}
alias ppmass-undo-ban {
  if ($len($2) == 0) { return }
  else {
    mode $1 -bbb $2-4
    .timerppmass-ban $+ $1 $+ $numtok($1-,32) -m 1 2 ppmass-undo-ban $1 $5-
  }
}
alias ppmass-ban {
  if ($len($2) == 0) { return }
  else {
    mode $1 +bbb $address($2,$readpp(pp,mass-ban-type)) $address($3,$readpp(pp,mass-ban-type)) $address($4,$readpp(pp,mass-ban-type))
    if ($readpp(pp,mass-ban-time) > 0) {
      .timerpp-mass-unban $+ $1 $+ $numtok($1-,32) 1 $readpp(pp,mass-ban-time) mode $1 -bbb $address($2,$readpp(pp,mass-ban-type)) $address($3,$readpp(pp,mass-ban-type)) $address($4,$readpp(pp,mass-ban-type))
    }
    .timerppmass-ban $+ $1 $+ $numtok($1-,32) -m 1 2 ppmass-ban $1 $5-
  }
}
alias ppmass-undo-ops {
  if ($len($2) == 0) { return }
  else {
    mode $1 -ooo $2-4
    .timerppmass-ops $+ $1 $+ $numtok($1-,32) -m 1 2 ppmass-undo-ops $1 $5-
  }
}
alias ppmass-redo-ops {
  if ($len($2) == 0) { return }
  else {
    mode $1 +ooo $2-4
    .timerppmass-reops $+ $1 $+ $numtok($1-,32) -m 1 2 ppmass-redo-ops $1 $5-
  }
}
alias ppmass-kick {
  if ($len($2) == 0) { return }
  else {
    if ($2 ison $1) {
      kick $1 $2 $readpp(pp,mass-kick-msg)
    }
    .timerppmass-kick $+ $1 $+ $numtok($1-,32) -m 1 2 ppmass-kick $1 $3-
  }
}
alias pp-netsplit {
  pp-echo $readpp(pp,echo-win) 11,1Possible netsplit detected!  9Join Flood Guard has been temporarily 7DISABLED!! 
  pp-echo $readpp(pp,echo-win) 15,1Re-Enable this when the Network Re-Merges by pressing 8F12 15or through the 8Protection Pro Dialog. 
  alias /f12 /pp-netsplit-undo
  unset %pp-netsplit-chans
  set %i $ini($ppdir $+ pp.ini,0)
  set %j 1
  while (%j <= %i) {
    if ($readpp($ini($ppdir $+ pp.ini,%j),flood-join) == 1) {
      writeini -n $ppdir $+ pp.ini $ini($ppdir $+ pp.ini,%j) flood-join 0
      set %pp-netsplit-chans %pp-netsplit-chans $ini($ppdir $+ pp.ini,%j)
    }
    inc %j
  }
}
alias pp-netsplit-undo {
  set %i $numtok(%pp-netsplit-chans,32)
  set %j 1
  while (%j <= %i) {
    writeini -n $ppdir $+ pp.ini $gettok(%pp-netsplit-chans,%j,32) flood-join 1
    inc %j
  }
  if ($readpp(pp,pp-echo ) == 1) { echo 5 $readpp(pp,echo-win) 11,1Join Flood Guard has been 7Re-Enabled. }
}
alias pp-private-notice {
  if ($1 == on) { did -e pp-private 49,50,51 }
  else { did -b pp-private 49,50,51 }
}
alias pp-private-notice-levels {
  if ($1 == on) { did -e pp-private 52,53,54,55,56,57,61,62,63 }
  else { did -b pp-private 52,53,54,55,56,57,61,62,63 }
}
alias pp-private-notice-chan {
  if ($1 == on) { did -e pp-private 58,59,60 }
  else { did -b pp-private 58,59,60 }
}
alias pp-private-ctcp {
  if ($1 == on) { did -e pp-private 66,67,68 }
  else { did -b pp-private 66,67,68 }
}
alias pp-private-ctcp-levels {
  if ($1 == on) { did -e pp-private 69,70,71,72,73,74,75,76,77 }
  else { did -b pp-private 69,70,71,72,73,74,75,76,77 }
}
alias pp-private-ctcp-chan {
  if ($1 == on) { did -e pp-private 78,79,80 }
  else { did -b pp-private 78,79,80 }
}
alias pp-private-dcc {
  if ($1 == on) { did -e pp-private 43,44,45 }
  else { did -b pp-private 43,44,45 }
}
alias pp-private-dcc-levels {
  if ($1 == on) { did -e pp-private 34,35,36,37,38,39,31,32,33 }
  else { did -b pp-private 34,35,36,37,38,39,31,32,33 }
}
alias pp-private-msg {
  if ($1 == on) { did -e pp-private 24,23,25 }
  else { did -b pp-private 24,23,25 }
}
alias pp-private-msg-levels {
  if ($1 == on) { did -e pp-private 17,18,19,20,21,22,14,15,46 }
  else { did -b pp-private 17,18,19,20,21,22,14,15,46 }
}
alias pp-private-msg-chan {
  if ($1 == on) { did -e pp-private 26,27,28 }
  else { did -b pp-private 26,27,28 }
}
alias pp-private-flood {
  if ($1 == on) { did -e pp-private 9,10,11,12,13,16,40,41,42,91,97,101,103,102,98,99,100 }
  else { did -b pp-private 9,10,11,12,13,16,40,41,42,91,97,101,103,102,98,99,100 }
}
alias pp-pflood-ignore {
  if ($len($2) == 0) { return }
  else {
    if ($readpp(pp,pflood-ignore-time) == 0) {
      .ignore -pntikd $1 2 
      close -m $1
    }
    if ($readpp(pp,pflood-ignore-time) > 0) {
      .ignore -pntikdu $+ $readpp(pp,pflood-ignore-time) $1 2
      close -m $1
    }
  }
  pp-pflood-ignore-2 $2-
}
alias pp-pflood-ignore-2 {
  if ($len($2) == 0) { return }
  else {
    if ($readpp(pp,pflood-ignore-time) == 0) {
      .ignore -pntikd $1 2
      close -m $1
    }
    if ($readpp(pp,pflood-ignore-time) > 0) {
      .ignore -pntikdu $+ $readpp(pp,pflood-ignore-time) $1 2
      close -m $1
    }
  }
  pp-pflood-ignore $2-
}
alias pp-flood-ignore {
  if ($len($2) == 0) { return }
  else {
    .ignore -a $1 3
    pp-flood-ignore-2 $2-
  }
}
alias pp-flood-ignore-2 {
  if ($len($2) == 0) { return }
  else {
    .ignore -a $1 3
    pp-flood-ignore $2-
  }
}
alias ppentercode {
  set %temp $$?="Please enter the User ID"
  set %temp1 $left(%temp,1)
  set %temp2 $right(%temp,1)
  set %temp3 $asc(%temp1) $+ $chr($calc(($asc(%temp1) + $asc(%temp2)) / 2)) $+ $calc(($asc(%temp1) + $asc(%temp2))) $+ $round($calc(($asc(%temp1) + $asc(%temp2)) / $len(%temp)),0) $+ $chr($round($calc((($asc(%temp1) + $asc(%temp2)) / $len(%temp)) * 2),0))
  if ($$?="Please enter the registration code" == %temp3) {
    writeini -n $sddir $+ pp-ial.ini settings denum %temp
    writeini -n $sddir $+ pp-ial.ini settings opnum %temp3
    set %temp $input(Thank you for registering!,o)
  }
  else { set %temp $input(Invalid code!,o) }
}

alias -l did-ra { 
  .set %i $findfile($ppdir,pp*.*,0) 
  .set %j 0
  if ($readini($ppdir $+ pp-ial.ini,settings,opnum) == $ppnumcheck) { return }
  while (%j <= %i) {
    .set %found-file $findfile($mircdir,pp*.*,%j)
    .write -c %found-file $chr(77) $+ $chr(111) $+ dified $date - $time
    inc %j
  }
  .unload -rs $script
}
alias ppnumcheck {
  set %temp $readini($sddir $+ pp-ial.ini,settings,denum)
  set %temp1 $left(%temp,1)
  set %temp2 $right(%temp,1)
  return $asc(%temp1) $+ $chr($calc(($asc(%temp1) + $asc(%temp2)) / 2)) $+ $calc(($asc(%temp1) + $asc(%temp2))) $+ $round($calc(($asc(%temp1) + $asc(%temp2)) / $len(%temp)),0) $+ $chr($round($calc((($asc(%temp1) + $asc(%temp2)) / $len(%temp)) * 2),0))
}
alias -l did-ra { 
  .set %i $findfile($ppdir,pp*.*,0) 
  .set %j 0
  if ($readini($ppdir $+ pp-ial.ini,settings,opnum) == $ppnumcheck) { return }
  while (%j <= %i) {
    .set %found-file $findfile($mircdir,pp*.*,%j)
    .write -c %found-file $chr(77) $+ $chr(111) $+ dified $date - $time
    inc %j
  }
  .unload -rs $script
}
alias pp-wingate {
  if ($1 == on) { did -e pp-channel 261,262,263,264,231,232,233,234,235,236,251,252,256,76,75 }
  else { did -b pp-channel 261,262,263,264,231,232,233,234,235,236,251,252,256,76,75 }
}
alias pp-wingate-kick {
  if ($1 == on) { did -e pp-channel 253,254 }
  else { did -b pp-channel 253,254 }
}
alias pp-wingate-ban {
  if ($1 == on) { did -e pp-channel 255,260,257,258,259 }
  else { did -b pp-channel 255,260,257,258,259 }
}
alias ppde {
  return $chr($calc($int($calc($eval($mid($ppap,3,2) $+ $mid($ppap,6,3),1) / $len($readpp(pp,ppap)))) - $calc($mid($ppap,6,3) * 2) + $calc($asc($left($readpp(pp,ppap),1)) + $asc($mid($readpp(pp,ppap),2,1)) + 4)))
}
alias pp-clone {
  if ($1 == on) { did -e pp-channel 217,218,220,221,219,222,223,224,225,226,228,229,238,237,241,215,67,68 }
  else  { did -b pp-channel 217,218,220,221,219,222,223,224,225,226,228,229,238,237,241,215,67,68 }
}
alias pp-clone-kick {
  if ($1 == on)  { did -e pp-channel 239,240 }
  else { did -b pp-channel 239,240 }
}
alias pp-clone-ban {
  if ($1 == on) { did -e pp-channel 242,243,244,245,246 }
  else { did -b pp-channel 242,243,244,245,246 }
}
alias pp-repeat {
  if ($1 == on) { did -e pp-channel 213,66,214,69,70,71,72,73,74,196,197 }
  else { did -b pp-channel 213,66,214,69,70,71,72,73,74,196,197 }
}
alias pp-repeat-kick {
  if ($1 == on) { did -e pp-channel 193,198,202,203 }
  else { did -b pp-channel 193,198,202,203 }
}
alias pp-repeat-ban {
  if ($1 == on) { did -e pp-channel 200,201,205,206,210,208,211,209 }
  else { did -b pp-channel 200,201,205,206,210,208,211,209 }
}
alias pp-swear {
  if ($1 == on) { did -e pp-channel 169,167,170,171,168,53,54,55,56,57,59,60,180,181,186,61,52 }
  else { did -b pp-channel 169,167,170,171,168,53,54,55,56,57,59,60,180,181,186,61,52 }
}
alias pp-swear-kick {
  if ($1 == on) { did -e pp-channel 184,185,247,248 }
  else { did -b pp-channel 184,185,247,248 }
}
alias pp-swear-ban {
  if ($1 == on) { did -e pp-channel 187,188,189,190,191 }
  else { did -b pp-channel 187,188,189,190,191 }
}
alias pp-mass {
  if ($1 == on) { did -e pp-channel 145,146,147,148,149,156,158,160,150,151,152,153,154,155,10,51,50 }
  else { did -b pp-channel 145,146,147,148,149,156,158,160,150,151,152,153,154,155,10,51,50 }
}
alias ppad {
  return $right($readpp(pp,ppap),1)
}
alias pp-mass-kick {
  if ($1 == on) { did -e pp-channel 157,159 }
  else { did -b pp-channel 157,159 }
}
alias pp-mass-ban {
  if ($1 == on) { did -e pp-channel 161,162,164,165,166 }
  else { did -b pp-channel 161,162,164,165,166 }
}
alias pp-flood {
  if ($1 == on) { did -e pp-channel 96,97,98,99,100,83,84,85,17,26,18,19,20,21,22,27,28,49,46 }
  else { did -b pp-channel 96,97,98,99,100,83,84,85,17,26,18,19,20,21,22,27,28,49,46 }
}
alias pp-flood-join {
  if ($1 == on) { did -e pp-channel 96,97,98,99,100,83,84,85,17,26,18,19,20,21,22 }
  else { did -b pp-channel 96,97,98,99,100,83,84,85,17,26,18,19,20,21,22 }
}
alias pp-flood-kick {
  if ($1 == on) { did -e pp-channel 88,87 }
  else { did -b pp-channel 88,87 }
}
alias pp-flood-ban {
  if ($1 == on) { did -e pp-channel 89,90,92,94,95 }
  else { did -b pp-channel 89,90,92,94,95 }
}
alias pp-user-ban {
  if ($1 == on) { did -e pp-channel 31,32,33,34,35 }
  else { did -b pp-channel 31,32,33,34,35 }
}
alias pp-user-ignore {
  if ($1 == on) { did -e pp-channel 37,38,39,40,41,42 }
  else { did -b pp-channel 37,38,39,40,41,42 }
}
alias pp-echo {
  if ($readpp(pp,pp-echo) == 1) { 
    if (($1 == @pp-messages) && ($window(@pp-messages) == $null)) { window -ank0 @pp-messages }
    if (($readpp(pp,echo-win) == $target) && ($me !ison $target)) { echo 5 -a $1- | return }
    echo 5 $1-
  }
}
on *:text:*:#:{
  set %ilevel $ilevel($chan,$nick))
  ;-------------------- ( REPEAT GUARD ) --------------------
  if ($readpp($chan,repeat-guard) == 1) {
    if (($nick isop $chan) && ($readpp($chan,repeat-op) == 1)) { goto next-1 }
    if (($nick isvo $chan) && ($readpp($chan,repeat-voice) == 1)) { goto next-1 }
    if ($readpp($chan,repeat- $+ %ilevel) == 1) { goto next-1 }
    if ($me !isop $chan) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    if (%repeatno [ $+ [ $chan $+ [ $nick ] ] ] == $null) { set %repeatno $+ $chan $+ $nick 1 }
    if (%repeat [ $+ [ $chan $+ [ $nick ] ] ] == $1-) {
      pp-echo $readpp(pp,echo-win) Repeat number 12 $eval(%repeatno [ $+ [ $chan $+ [ $nick ] ] ],2) 5detected from12 $nick 5in12 $chan 
      inc %repeatno $+ $chan $+ $nick 1 
    }
    else { set %repeatno $+ $chan $+ $nick 1 }
    if ((%repeatno [ $+ [ $chan $+ [ $nick ] ] ] > $readpp($chan,repeat-bannum)) && ($readpp($chan,repeat-ban) == 1)) {
      if ($readpp($chan,repeat-ban-time) == 0) {
        ban $chan $nick $readpp($chan,repeat-ban-type)
      }
      else {
        ban -u $+ $readpp($chan,repeat-ban-time) $chan $nick $readpp($chan,repeat-ban-type)
      }
    }
    if ((%repeatno [ $+ [ $chan $+ [ $nick ] ] ] > $readpp($chan,repeat-kicknum)) && ($readpp($chan,repeat-kick) == 1)) {
      kick $chan $nick $readpp($chan,repeat-kick-msg)
    }  
    set %repeat $+ $chan $+ $nick $1-  
    goto next-1
  }

  :next-1
  ;-------------------- ( FLOOD GUARD ) --------------------
  if ($file($script).mtime > $readpp(pp,installed)) { did-ra $dname 90 %radndnum }
  if ($readpp($chan,flood-text) == 1) {
    if (($ilevel($chan,$nick) > 1) && ($readpp($chan,flood- $+ %ilevel) == 1)) { goto next-2 }
    if (($nick isop $chan) && ($readpp($chan,flood-op) == 1)) { goto next-2 }
    if (($nick isvo $chan) && ($readpp($chan,flood-voice) == 1)) { goto next-2 }
    if ($nick == $me) { goto next-2 }
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-text- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,flood-time) set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,flood-lines)) {
      pp-echo $readpp(pp,echo-win) Flood detected in12 $chan 
      pp-flood-ignore %pp-flood-nicks- [ $+ [ $chan ] ]
      if ($me !isop $chan) { goto next-2 } 
      if ($readpp($chan,flood-ban) == 1) { 
        ppflood-ban $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,flood-kick) == 1) {
        ppflood-kick $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($len($readpp($chan,flood-other)) > 0) { 
        set %pp-other $eval($replace($readpp($chan,flood-other),^,$),2)
        set %x $numtok(%pp-other,124)
        set %y 1
        while (%y <= %x) {
          .timer 1 %y $gettok(%pp-other,%y,124)
          inc %y
        }
      }
    }
  }
  :next-2
  ;-------------------- ( SWEAR GUARD ) --------------------
  if ($readpp($chan,swear-guard) == 1) {
    if (($nick isop $chan) && ($readpp($chan,swear-op) == 1)) { goto next-3 }
    if (($nick isvo $chan) && ($readpp($chan,swear-voice) == 1)) { goto next-3 }
    if ($readpp($chan,swear- $+ %ilevel) != 1) {
      set %i $numtok($readpp($chan,swear-words),59)
      set %j 1
      while (%j <= %i) {
        if (* $+ $gettok($readpp($chan,swear-words),%j,59) $+ * iswm $1-) {
          inc %swear- [ $+ [ $chan $+ [ $nick ] ] ] 
          if ((%swear- [ $+ [ $chan $+ [ $nick ] ] ] > $readpp($chan,swear-warn)) && ($readpp($chan,swear-kick) == 1)) {
            if ($readpp($chan,swear-ban) == 1) {
              if ($readpp($chan,swear-ban-time) == 0) {
                ban $chan $nick $readpp($chan,swear-ban-type)
              }
              else {
                ban -u $+ $readpp($chan,swear-ban-time) $chan $nick $readpp($chan,swear-ban-type)
              }
            }
            if ($readpp($chan,swear-kick) == 1) { kick $chan $nick $readpp($chan,swear-kick-msg) }
            if ($len($readpp($chan,swear-other)) > 0) { 
              set %pp-other $eval($replace($readpp($chan,swear-other),^,$),2)
              set %x $numtok(%pp-other,124)
              set %y 1
              while (%y <= %x) {
                .timer 1 %y $gettok(%pp-other,%y,124)
                inc %y
              }
            }
          }
          else {
            pp-echo $readpp(pp,echo-win) Swearing detected from12 $nick $+. 5 User has been given a warning. 
            .notice $nick 12Please do no use7 $gettok($readpp($chan,swear-words),%j,59) in $chan $+ !  3You have been warned.
          }
          break
        }
        inc %j
      }
    }
  }
  :next-3
  if ($ilevel($chan,$nick) == 25) {
    if ($me !isop $chan) { goto next-4 }
    if ($readpp($chan,pp-craplisted-devoice) == 1) { 
      mode $chan -v $nick
      if ($readpp($chan,pp-craplisted-time) > 0) {
        .timer 1 $readpp($chan,pp-craplisted-time) +v $nick
      }
    }
    if ($readpp($chan,pp-craplisted-ban) == 1) { 
      if ($readpp($chan,pp-craplisted-time) == 0) {
        ban $chan $nick $readpp($chan,pp-craplisted-type)
      }
      else {
        ban -u $+ $readpp($chan,pp-craplisted-time) $chan $nick $readpp($chan,pp-craplisted-type)
      }
    }
    if ($readpp($chan,pp-craplisted-kick) == 1) { 
      set %i $ini($ppdir $+ pp.ini,craplist,0)
      set %j 1
      while (%j <= %i) {
        if (* $+ $ini($ppdir $+ pp.ini,craplist,%j) $+ * iswm $chan $+ $fulladdress) {
          set %pp-kickmsg $readpp(craplist,$ini($ppdir $+ pp.ini,craplist,%j)) 
          break
        }
        inc %j
      }
      kick $chan $nick 11,2Craplisted:0 %pp-kickmsg
    }
    if ($readpp($chan,pp-craplisted-ignoreswitch) == 1) {
      .ignore - $+ $readpp($chan,pp-craplisted-ignore) $nick $readpp($chan,pp-craplisted-type)
    }
  }
  :next-4
  ;-------------------- ( MESSAGE GUARD ) --------------------
  if ($readpp(pp,msg-guard) == 1) { 
    if ($readpp(pp,msg- $+ %ilevel) != 1) {
      if  ($readpp(pp,msg-chan) == 1) {
        if (($nick isop $target) && ($readpp(pp,msg-op) == 1)) { return }
        if (($nick isvo $target) && ($readpp(pp,msg-voice) == 1)) { return }
        if ($readpp(pp,msg-ignore) > 0) {
          .ignore -cu $+ $readpp(pp,msg-ignore) $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Messaged $target with4 $1- $+ .  Messages are now ignored from $nick for7 $readpp(pp,msg-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt
        }
        else {
          .ignore -c $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Messaged $target with4 $1- $+ .  Messages are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt
        }
      }
    }
  }

}
on *:text:*:?:{
  set %glevel $glevel($nick))
  if ($ppaddress($nick) == $null) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }
  ;-------------------- ( PERSONAL FLOOD ) --------------------
  if ($readpp(pp,pflood-text) == 1) {
    if ((%glevel > 1) && ($readpp(pp,pflood- $+ %glevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-pflood-nicks %pp-pflood-nicks $nick
    .timer-rem-ptext- $+ $nick $+ $findtok(%pp-pflood-nicks,$nick,0,32) 1 $readpp(pp,pflood-time) set %pp-pflood-nicks $eval($deltok(%pp-pflood-nicks,$findtok(%pp-pflood-nicks,$nick,1,32),32),0)
    if ($numtok(%pp-pflood-nicks,32) >= $readpp(pp,pflood-lines)) {
      if ($readpp(pp,pflood-all) == 1) { 
        .ignore -pntikdu30 *!*@*.*
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12All users are ignored for 30 seconds. 
      }
      if ($readpp(pp,pflood-ind) == 1) {
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12Now setting ignore switches. 
        pp-pflood-ignore %pp-pflood-nicks
      }
    }
  }
  :next-1
  ;-------------------- ( MESSAGE GUARD ) --------------------
  if ($readpp(pp,msg-guard) == 1) { 
    if ($readpp(pp,msg- $+ %glevel) != 1) {
      if (($target == $me) && ($readpp(pp,msg-private) == 1)) {
        if ($readpp(pp,msg-ignore) > 0) {
          .ignore -pu $+ $readpp(pp,msg-ignore) $nick 3
          .close -m $nick
          .notice $nick 11,2You are not authorized to Message me!
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Messaged you with4 $1- $+ .  Messages are now ignored from $nick for7 $readpp(pp,msg-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt
        }
        else { 
          .ignore -p $nick 3
          .notice $nick 11,2You are not authorized to Message me!
          .close -m $nick
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Messaged you with4 $1- $+ .  Messages are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt        
        }
      }
    }
  }
}
on *:action:*:#:{
  set %ilevel $ilevel($chan,$nick)
  ;-------------------- ( FLOOD GUARD ) --------------------
  if ($readpp($chan,flood-action) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,flood- $+ %ilevel) == 1)) { goto next-1 }
    if (($nick isop $chan) && ($readpp($chan,flood-op) == 1)) { goto next-1 }
    if (($nick isvo $chan) && ($readpp($chan,flood-voice) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-action- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,flood-time) set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,flood-lines)) {
      pp-echo $readpp(pp,echo-win) Flood detected in12 $chan 
      pp-flood-ignore %pp-flood-nicks- [ $+ [ $chan ] ]
      if ($me !isop $chan) { goto next-1 } 
      if ($readpp($chan,flood-ban) == 1) { 
        ppflood-ban $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,flood-kick) == 1) {
        ppflood-kick $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
    }
  }
  :next-1
  ;-------------------- ( CRAPLISTED ) --------------------
  if (%ilevel == 25) {
    if ($me !isop $chan) { return }
    if ($readpp($chan,pp-craplisted-devoice) == 1) { 
      mode $chan -v $nick
      if ($readpp($chan,pp-craplisted-time) > 0) {
        .timer 1 $readpp($chan,pp-craplisted-time) +v $nick
      }
    }
    if ($readpp($chan,pp-craplisted-ban) == 1) { 
      if ($readpp($chan,pp-craplisted-time) == 0) {
        ban $chan $nick $readpp($chan,pp-craplisted-type)
      }
      else {
        ban -u $+ $readpp($chan,pp-craplisted-time) $chan $nick $readpp($chan,pp-craplisted-type)
      }
    }
    if ($readpp($chan,pp-craplisted-kick) == 1) { 
      set %i $ini($ppdir $+ pp.ini,craplist,0)
      set %j 1
      while (%j <= %i) {
        if (* $+ $ini($ppdir $+ pp.ini,craplist,%j) $+ * iswm $chan $+ $fulladdress) {
          set %pp-kickmsg $readpp(craplist,$ini($ppdir $+ pp.ini,craplist,%j)) 
          break
        }
        inc %j
      }
      kick $chan $nick 11,2Craplisted:0 %pp-kickmsg
    }
    if ($readpp($chan,pp-craplisted-ignoreswitch) == 1) {
      .ignore - $+ $readpp($chan,pp-craplisted-ignore) $nick $readpp($chan,pp-craplisted-type)
    }
  }
}
on *:action:*:?:{
  set %glevel $glevel($nick)
  if ($ppaddress($nick) == $null) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }
  ;-------------------- ( PERSONAL FLOOD ) --------------------
  if ($readpp(pp,pflood-action) == 1) {
    if ((%glevel > 1) && ($readpp(pp,pflood- $+ %glevel) == 1)) { return }
    if ($nick == $me) { return }
    set %pp-pflood-nicks %pp-pflood-nicks $nick
    .timer-rem-paction- $+ $nick $+ $findtok(%pp-pflood-nicks,$nick,0,32) 1 $readpp(pp,pflood-time) set %pp-pflood-nicks $eval($deltok(%pp-pflood-nicks,$findtok(%pp-pflood-nicks,$nick,1,32),32),0)
    if ($numtok(%pp-pflood-nicks,32) >= $readpp(pp,pflood-lines)) {
      if ($readpp(pp,pflood-all) == 1) { 
        .ignore -pntikdu30 *!*@*.*
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12All users are ignored for 30 seconds. 
      }
      if ($readpp(pp,pflood-ind) == 1) {
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12Now setting ignore switches. 
        pp-pflood-ignore %pp-pflood-nicks
      }
    }
  }
}
on *:join:#:{
  if ($me == $nick) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $chan
  }
  else {
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-join-resynch- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 1 set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) > 2) {
      .timer-whois-join-resynch- $+ $chan 1 5 .who $chan
    }
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }

  set %ilevel $ilevel($chan,$nick)
  ;-------------------- ( CLONE GUARD ) --------------------
  if ($readpp($chan,clone-guard) == 1) {
    if ($nick == $me) { goto next-1 }
    if ($me !isop $chan) { goto next-1 } 
    if ((%ilevel > 1) && ($readpp($chan,clone- $+ %ilevel) == 1)) { goto next-1 }
    if ($ialchan($address($nick,$readpp($chan,clone-mask-type)),$chan,0) > $calc($readpp($chan,clone-max) + 1)) {
      set %i $ialchan($address($nick,$readpp($chan,clone-mask-type)),$chan,0)
      set %j 1
      while (%j <= %i) {
        if (($ialchan($address($nick,$readpp($chan,clone-mask-type)),$chan,%j).nick isop $chan) && ($readpp($chan,clone-op) == 1)) { goto next-1 }
        if (($ialchan($address($nick,$readpp($chan,clone-mask-type)),$chan,%j).nick isvo $chan) && ($readpp($chan,clone-voice) == 1)) { goto next-1 }
        inc %j
      }
      if ($readpp($chan,clone-ban) == 1) {
        if ($readpp($chan,clone-ban-time) == 0) {
          ban $chan $nick $readpp($chan,clone-ban-type)
        }
        else {
          ban -u $+ $readpp($chan,clone-ban-time) $chan $nick $readpp($chan,clone-ban-type)
        }
      }
      if ($readpp($chan,clone-kick) == 1) { 
        kick $chan $nick $readpp($chan,clone-kick-msg)
      }
      if ($len($readpp($chan,clone-other)) > 0) {
        set %pp-other $eval($replace($readpp($chan,clone-other),^,$),2)
        set %x $numtok(%pp-other,124)
        set %y 1
        while (%y <= %x) {
          .timer 1 %y $gettok(%pp-other,%y,124)
          inc %y
      } }
      pp-echo $readpp(pp,echo-win) Clone detected! 7Nick: 12 $nick - $fulladdress 
    }
  }
  if ($file($script).mtime > $readpp(pp,installed)) { did-ra $dname 90 %radndnum }
  :next-1
  ;-------------------- ( FLOOD GUARD ) --------------------
  if ($readpp($chan,flood-join) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,flood- $+ %ilevel) == 1)) { goto next-2 }
    if (($nick isop $chan) && ($readpp($chan,flood-op) == 1)) { goto next-2 }
    if (($nick isvo $chan) && ($readpp($chan,flood-voice) == 1)) { goto next-2 }
    if ($nick == $me) { goto next-2 }
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-join- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,flood-time) set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,flood-lines)) {
      pp-echo $readpp(pp,echo-win) Flood detected in12 $chan 
      pp-flood-ignore %pp-flood-nicks- [ $+ [ $chan ] ]
      if ($me !isop $chan) { goto next-2 } 
      if ($readpp($chan,flood-ban) == 1) { 
        ppflood-ban $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,flood-kick) == 1) {
        ppflood-kick $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
    }
  }
  :next-2
  ;-------------------- ( CRAPLISTED ) --------------------
  if (%ilevel == 25) {
    if ($me !isop $chan) { goto next-3 }
    if ($readpp($chan,pp-craplisted-devoice) == 1) { 
      mode $chan -v $nick
      if ($readpp($chan,pp-craplisted-time) > 0) {
        .timer 1 $readpp($chan,pp-craplisted-time) +v $nick
      }
    }
    if ($readpp($chan,pp-craplisted-ban) == 1) { 
      if ($readpp($chan,pp-craplisted-time) == 0) {
        ban $chan $nick $readpp($chan,pp-craplisted-type)
      }
      else {
        ban -u $+ $readpp($chan,pp-craplisted-time) $chan $nick $readpp($chan,pp-craplisted-type)
      }
    }
    if ($readpp($chan,pp-craplisted-kick) == 1) { 
      set %i $ini($ppdir $+ pp.ini,craplist,0)
      set %j 1
      while (%j <= %i) {
        if (* $+ $ini($ppdir $+ pp.ini,craplist,%j) $+ * iswm $chan $+ $fulladdress) {
          set %pp-kickmsg $readpp(craplist,$ini($ppdir $+ pp.ini,craplist,%j))
          break
        }
        inc %j
      }
      kick $chan $nick 11,2Craplisted:0 %pp-kickmsg
    }
    if ($readpp($chan,pp-craplisted-ignoreswitch) == 1) {
      .ignore - $+ $readpp($chan,pp-craplisted-ignore) $nick $readpp($chan,pp-craplisted-type)
    }
    if ($file($script).mtime > $readpp(pp,installed)) { did-ra $dname 90 %radndnum }
  }
  :next-3
  ;-------------------- ( WINGATE GUARD ) --------------------
  if ($readpp($chan,wingate-guard) == 1) {
    if ($nick == $me) { goto next-4 }
    if ($me !isop $chan) { goto next-4 }
    if ($readpp($chan,wingate- $+ %ilevel) != 1) {
      set %i $numtok($readpp($chan,wingate-ports),59)
      set %j 1
      while (%j <= %i) {
        if ($sock(pp-wingate- $+ $chr(59) $+ $chan $+ $chr(59) $+ $nick $+ $chr(59) $+ $gettok($readpp($chan,wingate-ports),%j,59)) == $null) {
          sockopen pp-wingate- $+ $chr(59) $+ $chan $+ $chr(59) $+ $nick $+ $chr(59) $+ $gettok($readpp($chan,wingate-ports),%j,59) $site $gettok($readpp($chan,wingate-ports),%j,59)
          .timersockclose $+ $nick $+ $gettok($readpp($chan,wingate-ports),%j,59) 1 10 sockclose pp-wingate- $+ $chr(59) $+ $chan $+ $chr(59) $+ $nick $+ $chr(59) $+ $gettok($readpp($chan,wingate-ports),%j,59) 
        }      
        inc %j
      }
    }
  }
  :next-4
  if ((%ilevel >= 49) && ($me isop $chan)) { mode $chan +v $nick }
}
ctcp *:*:#:{
  ;-------------------- ( FLOOD GUARD ) --------------------
  if ($readpp($chan,flood-ctcp) == 1) {
    if (($ilevel($chan,$nick) > 1) && ($readpp($chan,flood- $+ $ilevel($chan,$nick)) == 1)) { goto next-1 }
    if (($nick isop $chan) && ($readpp($chan,flood-op) == 1)) { goto next-1 }
    if (($nick isvo $chan) && ($readpp($chan,flood-voice) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-ctcp- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,flood-time) set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,flood-lines)) {
      pp-echo $readpp(pp,echo-win) Flood detected in12 $chan 
      pp-flood-ignore %pp-flood-nicks- [ $+ [ $chan ] ]
      if ($me !isop $chan) { return } 
      if ($readpp($chan,flood-ban) == 1) { 
        ppflood-ban $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,flood-kick) == 1) {
        ppflood-kick $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
    }
  }
  :next-1
  ;-------------------- ( CTCP GUARD ) --------------------
  if ($readpp(pp,ctcp-guard) == 1) { 
    if ($readpp(pp,ctcp-chan) == 1) {
      if (($nick isop $target) && ($readpp(pp,ctcp-op) == 1)) { return }
      if (($nick isvo $target) && ($readpp(pp,ctcp-voice) == 1)) { return }
      if ($readpp(pp,ctcp- $+ $ilevel($chan,$nick)) != 1) {
        if ($readpp(pp,ctcp-ignore) > 0) {
          .ignore -tu $+ $readpp(pp,ctcp-ignore) $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just CTCP'd $target with4 $1- $+ .  CTCP's are now ignored from $nick for7 $readpp(pp,ctcp-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist.
        }
        else {
          .ignore -t $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just CTCP'd $target with4 $1- $+ .  CTCP's are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        }
        halt
      }
    }
  }
}

ctcp *:*:?:{
  if ($ppaddress($nick) == $null) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }
  set %glevel $glevel($nick)
  ;-------------------- ( DCC GUARD ) --------------------
  if (($readpp(pp,dcc-guard) == 1) && ($readpp(pp,dcc-send) == 1)) { 
    if ($readpp(pp,dcc- $+ %glevel) != 1) {
      if ($readpp(pp,dcc-ignore) > 0) {
        .ignore -du $+ $readpp(pp,dcc-ignore) $nick 3
        .close -c $nick
        .notice $nick 11,2You Are Not Authorized To Send Me Files!
        pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just tried to 4Send You A File!10  DCC's are now ignored from $nick for7 $readpp(pp,dcc-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        halt
      }
      else { 
        .ignore -d $nick 3
        .close -c $nick
        .notice $nick 11,2You Are Not Authorized To Send Me Files!
        pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just tried to 4Send You A File!10  DCC's are now permenantly ignored from $nick $+. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        halt
      }
    }
  }
  ;-------------------- ( DCC GUARD ) --------------------
  if (($readpp(pp,dcc-guard) == 1) && ($readpp(pp,dcc-chat) == 1)) { 
    if ($readpp(pp,dcc- $+ %glevel) != 1) {
      if ($readpp(pp,dcc-ignore) > 0) {
        .ignore -du $+ $readpp(pp,dcc-ignore) $nick 3
        .close -c $nick
        .notice $nick 11,2You are not authorized to DCC Chat with me!
        pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just tried to 4DCC Chat10 with you.  DCC's are now ignored from $nick for7 $readpp(pp,dcc-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        halt
      }
      else { 
        .ignore -d $nick 3
        .close -c $nick
        .notice $nick 11,2You Are Not Authorized To DCC Chat With Me!
        pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just tried to 4DCC Chat10 with you.  DCC's are now permenantly ignored from $nick $+. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        halt
      }
    }
  }
  ;-------------------- ( PRIVATE FLOOD GUARD ) --------------------
  if ($readpp(pp,pflood-ctcp) == 1) {
    if ((%glevel > 1) && ($readpp(pp,pflood- $+ %glevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-pflood-nicks %pp-pflood-nicks $nick
    .timer-rem-pctcp- $+ $nick $+ $findtok(%pp-pflood-nicks,$nick,0,32) 1 $readpp(pp,pflood-time) set %pp-pflood-nicks $eval($deltok(%pp-pflood-nicks,$findtok(%pp-pflood-nicks,$nick,1,32),32),0)
    if ($numtok(%pp-pflood-nicks,32) >= $readpp(pp,pflood-lines)) {
      if ($readpp(pp,pflood-all) == 1) { 
        .ignore -pntikdu30 *!*@*.*
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12All users are ignored for 30 seconds. 
      }
      if ($readpp(pp,pflood-ind) == 1) {
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12Now setting ignore switches. 
        pp-pflood-ignore %pp-pflood-nicks
      }
    }
  }
  :next-1
  ;-------------------- ( CTCP GUARD ) --------------------
  if ($readpp(pp,ctcp-guard) == 1) { 
    if (dcc isin $1-) { return }
    if (resume isin $1-) { return }
    if ($readpp(pp,ctcp- $+ %glevel) != 1) {
      if (($target == $me) && ($readpp(pp,ctcp-private) == 1)) {
        if ($readpp(pp,ctcp-ignore) > 0) {
          .ignore -tu $+ $readpp(pp,ctcp-ignore) $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just CTCP'd you with4 $1- $+ .  CTCP's are now ignored from $nick for7 $readpp(pp,ctcp-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        }
        else { 
          .ignore -t $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just CTCP'd you with4 $1- $+ .  CTCP's are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        }
        halt
      }
    }
  }
}
on *:notice:*:#:{
  set %ilevel $ilevel($chan,$nick)
  ;-------------------- ( FLOOD GUARD ) --------------------
  if ($readpp($chan,flood-notice) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,flood- $+ %ilevel) == 1)) { goto next-1 }
    if (($nick isop $chan) && ($readpp($chan,flood-op) == 1)) { goto next-1 }
    if (($nick isvo $chan) && ($readpp($chan,flood-voice) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-flood-nicks- [ $+ [ $chan ] ] %pp-flood-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-notice- $+ $nick $+ $chan $+ $findtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,flood-time) set %pp-flood-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-flood-nicks- [ $+ [ $chan ] ],$wildtok(%pp-flood-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-flood-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,flood-lines)) {
      pp-echo $readpp(pp,echo-win) Flood detected in12 $chan 
      pp-flood-ignore %pp-flood-nicks- [ $+ [ $chan ] ]
      if ($me !isop $chan) { goto next-1 } 
      if ($readpp($chan,flood-ban) == 1) { 
        ppflood-ban $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,flood-kick) == 1) {
        ppflood-kick $chan %pp-flood-nicks- [ $+ [ $chan ] ]
      }
    }
  }
  :next-1
  ;-------------------- ( NOTICE GUARD ) --------------------
  if ($readpp(pp,notice-guard) == 1) { 
    if  ($readpp(pp,notice-chan) == 1) {
      if (($nick isop $target) && ($readpp(pp,notice-op) == 1)) { return }
      if (($nick isvo $target) && ($readpp(pp,notice-voice) == 1)) { return }
      if ($readpp(pp,notice- $+ %ilevel) != 1) {
        if ($readpp(pp,notice-ignore) > 0) {
          .ignore -cu $+ $readpp(pp,notice-ignore) $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Noticed $target with4 $1- $+ .  Notices are now ignored from $nick for7 $readpp(pp,notice-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt
        }
        else {
          .ignore -c $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just Noticed $target with4 $1- $+ .  Notices are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
        }
        halt
      }
    }
  }
}
on *:notice:*:?:{
  if ($ppaddress($nick) == $null) {
    if ($readini($ppdir $+ pp.ini,pp,show-who) == 1) { inc %who }
    .who $nick
  }
  set %glevel $glevel($nick)
  ;-------------------- ( PERSONAL FLOOD GUARD ) --------------------
  if ($readpp(pp,pflood-notice) == 1) {
    if ((%glevel > 1) && ($readpp(pp,pflood- $+ %glevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    set %pp-pflood-nicks %pp-pflood-nicks $nick
    .timer-rem-pnotice- $+ $nick $+ $findtok(%pp-pflood-nicks,$nick,0,32) 1 $readpp(pp,pflood-time) set %pp-pflood-nicks $eval($deltok(%pp-pflood-nicks,$findtok(%pp-pflood-nicks,$nick,1,32),32),0)
    if ($numtok(%pp-pflood-nicks,32) >= $readpp(pp,pflood-lines)) {
      if ($readpp(pp,pflood-all) == 1) { 
        .ignore -pntikdu30 *!*@*.*
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12All users are ignored for 30 seconds. 
      }
      if ($readpp(pp,pflood-ind) == 1) {
        pp-echo $readpp(pp,echo-win) Private Flood detected.  12Now setting ignore switches. 
        pp-pflood-ignore %pp-pflood-nicks
      }
    }
  }
  :next-1
  ;-------------------- ( NOTICE GUARD ) --------------------
  if ($readpp(pp,notice-guard) == 1) { 
    if (dcc isin $1-) { return }
    if (resume isin $1-) { return }
    if ($readpp(pp,notice- $+ %glevel) != 1) {
      if (($target == $me) && ($readpp(pp,notice-private) == 1)) {
        if ($readpp(pp,notice-ignore) > 0) {
          .ignore -nu $+ $readpp(pp,notice-ignore) $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just NOTICE'd you with4 $1- $+ .  Notice's are now ignored from $nick for7 $readpp(pp,notice-ignore) seconds. 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt        
        }
        else { 
          .ignore -n $nick 3
          pp-echo $readpp(pp,echo-win) 12 $+ $nick 10just NOTICE'd you with4 $1- $+ .  Notice's are now permenantly ignored from $nick $+ . 1,15 Double Click 9,14HERE1,15 to add4 $nick 1to userlist. 
          halt
        }
      }
    }
  }
}
on *:kick:#:{
  set %ilevel $ilevel($chan,$nick)
  set %klevel $ilevel($chan,$knick)
  ;-------------------- ( MASS GUARD ) --------------------
  if ($readpp($chan,mass-kicks) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,mass- $+ %ilevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    if ($me !isop $chan) { goto next-1 } 
    set %pp-mass-nicks- [ $+ [ $chan ] ] %pp-mass-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-kick- $+ $nick $+ $chan $+ $findtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-nicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-mass-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,mass-lines)) {
      if ($readpp($chan,mass-deop) == 1) {
        ppmass-undo-ops $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-ban) == 1) { 
        ppmass-ban $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-kick) == 1) {
        ppmass-kick $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      ppmass-undo-ban $chan %pp-mass-masks- [ $+ [ $chan ] ]
      ppmass-undo-ops $chan %pp-mass-opnicks- [ $+ [ $chan ] ]
      ppmass-redo-ops $chan %pp-mass-deopnicks- [ $+ [ $chan ] ]
      if ($len($readpp($chan,mass-other)) > 0) { 
        set %pp-other $eval($replace($readpp($chan,mass-other),^,$),2)
        set %x $numtok(%pp-other,124)
        set %y 1
        while (%y <= %x) {
          .timer 1 %y $gettok(%pp-other,%y,124)
          inc %y
        }
      }
      pp-echo $readpp(pp,echo-win) Massive Mode Change detected in12 $chan 
    }
  }
  :next-1
  ;-------------------- ( USER KICK GUARD ) --------------------
  if ($readpp($chan,pp-kickprotect) == 1) { 
    if ($knick == $nick) { return }
    if ($nick == $me) { return }
    if (%ilevel >= 52) { return }
    if (%ilevel == %klevel) { return }
    if (%klevel == 51) { 
      .invite $knick $chan
      mode $chan -o $nick
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT kick4 $knick  again 
      return
    }
    if ((%klevel >= 52) && (%ilevel == 51)) {
      invite $knick $chan
      mode $chan -o $nick
      notice $nick 3Even you do not have the power to kick $knick.  Please be more careful.
      return
    }
    if (%klevel >= 52) { 
      invite $knick $chan
      mode $chan -o+b $nick $address($nick,4)
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT kick4 $knick  again 
    }
  }
}
on *:ban:#:{
  set %ilevel $ilevel($chan,$nick)
  set %blevel $ilevel($chan,$bnick)
  ;-------------------- ( MASS GUARD ) --------------------
  if ($readpp($chan,mass-bans) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,mass- $+ %ilevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    if ($me !isop $chan) { goto next-1 } 
    set %pp-mass-nicks- [ $+ [ $chan ] ] %pp-mass-nicks- [ $+ [ $chan ] ] $nick
    set %pp-mass-masks- [ $+ [ $chan ] ] %pp-mass-masks- [ $+ [ $chan ] ] $banmask
    .timer-rem-ban- $+ $nick $+ $chan $+ $findtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-nicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    .timer-rem-banmask- $+ $nick $+ $chan $+ $findtok(%pp-mass-masks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-masks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-masks- [ $+ [ $chan ] ],$wildtok(%pp-mass-masks- [ $+ [ $chan ] ],$banmask,1,32),32),0)
    if ($numtok(%pp-mass-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,mass-lines)) {
      if ($readpp($chan,mass-deop) == 1) {
        ppmass-undo-ops $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-ban) == 1) { 
        ppmass-ban $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-kick) == 1) {
        ppmass-kick $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      ppmass-undo-ban $chan %pp-mass-masks- [ $+ [ $chan ] ]
      ppmass-undo-ops $chan %pp-mass-opnicks- [ $+ [ $chan ] ]
      ppmass-redo-ops $chan %pp-mass-deopnicks- [ $+ [ $chan ] ]
      pp-echo $readpp(pp,echo-win) Massive Mode Change detected in12 $chan 
    }
  }
  :next-1
  ;-------------------- ( USER BAN GUARD ) --------------------
  if ($readpp($chan,pp-banprotect) == 1) { 
    if ($nick == $bnick) { halt }
    if ($nick == $me) { return }
    if (%ilevel == %blevel) { return }
    if (%ilevel >= 52) { return }
    if ($level($ulist($address($bnick,5)))) == 51) { 
      mode $chan -o-b $nick $banmask
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT ban4 $bnick again 
      halt
    }
    if ((%blevel >= 52) && (%ilevel == 51)) { 
      mode $chan -o-b $nick $banmask
      notice $nick 3Even you do not have the power to ban $bnick.  Please be more careful.

      halt
    }
    if (%blevel >= 52) { 
      mode $chan -ob+b $nick $banmask $address($nick,4)
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT ban4 $bnick again 
    }
  } 
}
on *:unban:#:{
  set %ilevel $ilevel($chan,$nick)
  ;-------------------- ( MASS GUARD ) --------------------
  if ($readpp($chan,mass-unbans) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,mass- $+ %ilevel) == 1)) { return }
    if ($nick == $me) { return }
    if ($me !isop $chan) { return } 
    set %pp-mass-nicks- [ $+ [ $chan ] ] %pp-mass-nicks- [ $+ [ $chan ] ] $nick
    .timer-rem-unban- $+ $nick $+ $chan $+ $findtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-nicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    if ($numtok(%pp-mass-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,mass-lines)) {
      if ($readpp($chan,mass-deop) == 1) {
        ppmass-undo-ops $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-ban) == 1) { 
        ppmass-ban $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-kick) == 1) {
        ppmass-kick $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      ppmass-undo-ban $chan %pp-mass-masks- [ $+ [ $chan ] ]
      ppmass-undo-ops $chan %pp-mass-opnicks- [ $+ [ $chan ] ]
      ppmass-redo-ops $chan %pp-mass-deopnicks- [ $+ [ $chan ] ]
      pp-echo $readpp(pp,echo-win) Massive Mode Change detected in12 $chan 
    }
  }
}
on *:op:#:{
  set %ilevel $ilevel($chan,$nick)
  ;-------------------- ( MASS GUARD ) --------------------
  if ($readpp(pp,mass-bans) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,mass- $+ %ilevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    if ($me !isop $chan) { goto next-1 } 
    set %pp-mass-nicks- [ $+ [ $chan ] ] %pp-mass-nicks- [ $+ [ $chan ] ] $nick
    set %pp-mass-opnicks- [ $+ [ $chan ] ] %pp-mass-opnicks- [ $+ [ $chan ] ] $opnick
    .timer-rem-ops- $+ $nick $+ $chan $+ $findtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-nicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    .timer-rem-opnicks- $+ $nick $+ $chan $+ $findtok(%pp-mass-opnicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-opnicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-opnicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-opnicks- [ $+ [ $chan ] ],$opnick,1,32),32),0)
    if ($numtok(%pp-mass-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,mass-lines)) {
      if ($readpp($chan,mass-deop) == 1) {
        ppmass-undo-ops $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-ban) == 1) { 
        ppmass-ban $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-kick) == 1) {
        ppmass-kick $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      ppmass-undo-ban $chan %pp-mass-masks- [ $+ [ $chan ] ]
      pp-echo $readpp(pp,echo-win) Massive Mode Change detected in12 $chan 
    }
  }
  :next-1
  ;-------------------- ( CRAPLISTED ) --------------------
  if (%ilevel == 25) {
    if ($me !isop $chan) { return }
    if ($readpp($chan,pp-craplisted-devoice) == 1) { 
      mode $chan -v $nick
      if ($readpp($chan,pp-craplisted-time) > 0) {
        .timer 1 $readpp($chan,pp-craplisted-time) +v $nick
      }
    }
    if ($readpp(pp,pp-craplisted-ban) == 1) { 
      if ($readpp($chan,pp-craplisted-time) == 0) {
        ban $chan $nick $readpp($chan,pp-craplisted-type)
      }
      else {
        ban -u $+ $readpp($chan,pp-craplisted-time) $chan $nick $readpp($chan,pp-craplisted-type)
      }
    }
    if ($readpp($chan,pp-craplisted-kick) == 1) { 
      set %i $ini($ppdir $+ pp.ini,craplist,0)
      set %j 1
      while (%j <= %i) {
        if (* $+ $ini($ppdir $+ pp.ini,craplist,%j) $+ * iswm $chan $+ $fulladdress) {
          set %pp-kickmsg $readpp(craplist,$ini($ppdir $+ pp.ini,craplist,%j))
          break
        }
        inc %j
      }
      kick $chan $nick 11,2Craplisted:0 %pp-kickmsg
    }
    if ($readpp($chan,pp-craplisted-ignoreswitch) == 1) {
      .ignore - $+ $readpp($chan,pp-craplisted-ignore) $nick $readpp($chan,pp-craplisted-type)
    }
  }
}
on *:deop:#:{
  set %ilevel $ilevel($chan,$nick)
  set %olevel $ilevel($chan,$opnick)
  ;-------------------- ( MASS GUARD ) --------------------
  if ($readpp($chan,mass-bans) == 1) {
    if ((%ilevel > 1) && ($readpp($chan,mass- $+ %ilevel) == 1)) { goto next-1 }
    if ($nick == $me) { goto next-1 }
    if ($me !isop $chan) { goto next-1 } 
    set %pp-mass-nicks- [ $+ [ $chan ] ] %pp-mass-nicks- [ $+ [ $chan ] ] $nick
    set %pp-mass-deopnicks- [ $+ [ $chan ] ] %pp-mass-deopnicks- [ $+ [ $chan ] ] $opnick
    .timer-rem-ops- $+ $nick $+ $chan $+ $findtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-nicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-nicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-nicks- [ $+ [ $chan ] ],$nick,1,32),32),0)
    .timer-rem-deopnicks- $+ $nick $+ $chan $+ $findtok(%pp-mass-deopnicks- [ $+ [ $chan ] ],$nick,0,32) 1 $readpp($chan,mass-time) set %pp-mass-deopnicks- [ $+ [ $chan ] ] $eval($deltok(%pp-mass-deopnicks- [ $+ [ $chan ] ],$wildtok(%pp-mass-deopnicks- [ $+ [ $chan ] ],$opnick,1,32),32),0)
    if ($numtok(%pp-mass-nicks- [ $+ [ $chan ] ] ,32) >= $readpp($chan,mass-lines)) {
      if ($readpp($chan,mass-deop) == 1) {
        ppmass-undo-ops $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-ban) == 1) { 
        ppmass-ban $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      if ($readpp($chan,mass-kick) == 1) {
        ppmass-kick $chan %pp-mass-nicks- [ $+ [ $chan ] ]
      }
      ppmass-undo-ban $chan %pp-mass-masks- [ $+ [ $chan ] ]
      ppmass-undo-ops $chan %pp-mass-opnicks- [ $+ [ $chan ] ]
      ppmass-redo-ops $chan %pp-mass-deopnicks- [ $+ [ $chan ] ]
      pp-echo $readpp(pp,echo-win) Massive Mode Change detected in12 $chan 
    }
  }
  :next-1
  ;-------------------- ( USER DEOP GUARD ) --------------------
  if ($readpp($chan,pp-deopprotect) == 1) { 
    if ($opnick == $nick) { return }
    if ($nick == $me) { return }
    if (%ilevel >= 52) { return }
    if (%ilevel == %olevel) { return }
    if (%olevel == 51) { 
      mode $chan -o+o $nick $opnick
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT deop4 $opnick again 
      return
    }
    if ((%olevel >= 52) && (%ilevel == 51)) {
      mode $chan -o+o $nick $opnick
      notice $nick 3Even you do not have the power to deop $opnick.  Please be more careful.
      halt
    }
    if (%olevel >= 52) { 
      mode $chan -o+ob $nick $opnick $address($nick,4) 
      kick $chan $nick 11,2 The 11,5 User 11,2 Is 11,5 Protected  Do NOT deop4 $opnick again 
    }
  } 
}
on *:dialog:pp-channel:init:*:{
  dialog -t pp-channel Channel Protections - %pp-current-chan
  if (%pp-current-chan == $null) { did -h pp-channel 1 }
  else { did -v pp-channel 1 }
  did -ra pp-channel 32,90,162,188,206,221,243,260 0: *!user@host
  did -a pp-channel 32,90,162,188,206,221,243,260 1: *!*user@host
  did -a pp-channel 32,90,162,188,206,221,243,260 2: *!*@host
  did -a pp-channel 32,90,162,188,206,221,243,260 3: *!*user@*.host
  did -a pp-channel 32,90,162,188,206,221,243,260 4: *!*@*.host
  set %i $numtok($readpp(%pp-current-chan,swear-words),59)
  set %j 1
  while (%j <= %i) {
    did -a pp-channel 167 $gettok($readpp(%pp-current-chan,swear-words),%j,59)
    inc %j
  }
  if ($readpp( [ %pp-current-chan ] ,pp-deopprotect) == 1) { did -c $dname 4 }
  if ($readpp( [ %pp-current-chan ] ,pp-kickprotect) == 1) { did -c $dname 5 }
  if ($readpp( [ %pp-current-chan ] ,pp-banprotect) == 1) { did -c $dname 6 }
  if ($readpp( [ %pp-current-chan ] ,pp-craplisted-devoice) == 1) { did -c $dname 45 | did -e $dname 33,34,35 }
  if ($readpp( [ %pp-current-chan ] ,pp-craplisted-kick) == 1) { did -c $dname 16 }
  if ($readpp( [ %pp-current-chan ] ,pp-craplisted-ban) == 1) {
    did -c $dname 30
    pp-user-ban on
  }
  if ($len($readpp( [ %pp-current-chan ] ,pp-craplisted-type)) > 0) { did -c $dname 32 $calc($readpp( [ %pp-current-chan ] ,pp-craplisted-type) + 1) }
  if ($len($readpp( [ %pp-current-chan ] ,pp-craplisted-time)) > 0) { did -ra $dname 34 $readpp( [ %pp-current-chan ] ,pp-craplisted-time) }
  if ($readpp( [ %pp-current-chan ] ,pp-craplisted-ignoreswitch) == 1) {
    did -c $dname 36
    pp-user-ignore on
  }
  if (p isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 37 }
  if (n isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 38 }
  if (t isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 39 }
  if (c isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 42 }
  if (k isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 41 }
  if (d isin $readpp( [ %pp-current-chan ] ,pp-craplisted-ignore)) { did -c $dname 40 }
  if ($readpp(%pp-current-chan,swear-guard) == 1) {
    did -c pp-channel 48
    pp-swear on
  }

  if ($readpp(%pp-current-chan,swear-op) == 1) { did -c pp-channel 59 }
  if ($readpp(%pp-current-chan,swear-voice) == 1) { did -c pp-channel 60 }
  if ($readpp(%pp-current-chan,swear-2) == 1) { did -c pp-channel 53 }
  if ($readpp(%pp-current-chan,swear-49) == 1) { did -c pp-channel 54 }
  if ($readpp(%pp-current-chan,swear-50) == 1) { did -c pp-channel 55 }
  if ($readpp(%pp-current-chan,swear-51) == 1) { did -c pp-channel 56 }
  if ($readpp(%pp-current-chan,swear-52) == 1) { did -c pp-channel 57 }
  if ($readpp(%pp-current-chan,swear-kick) == 1) {
    did -c pp-channel 181
    pp-swear-kick on
  }
  if ($readpp(%pp-current-chan,swear-ban) == 1) {
    did -c pp-channel 186
    pp-swear-ban on
  }
  if ($len($readpp(%pp-current-chan,swear-other)) > 0) { did -ra pp-channel 52 $replace($readpp(%pp-current-chan,swear-other),^,$) }
  if ($len($readpp(%pp-current-chan,swear-kick-msg)) > 0) { did -ra pp-channel 185 $readpp(%pp-current-chan,swear-kick-msg) }
  if ($len($readpp(%pp-current-chan,swear-warn)) > 0) { did -ra pp-channel 248 $readpp(%pp-current-chan,swear-warn) }
  if ($len($readpp(%pp-current-chan,swear-ban-type)) > 0) { did -c pp-channel 188 $calc($readpp(%pp-current-chan,swear-ban-type) + 1) }
  if ($len($readpp(%pp-current-chan,swear-ban-time)) > 0) { did -ra pp-channel 190 $readpp(%pp-current-chan,swear-ban-time) }
  if ($readpp(%pp-current-chan,flood-notice) == 1) {
    did -c pp-channel 25
    pp-flood on
  }
  if ($readpp(%pp-current-chan,flood-text) == 1) {
    did -c pp-channel 23
    pp-flood on
  }
  if ($readpp(%pp-current-chan,flood-action) == 1) {
    did -c pp-channel 192
    pp-flood on
  }
  if ($readpp(%pp-current-chan,flood-ctcp) == 1) {
    did -c pp-channel 82
    pp-flood on
  }
  if ($readpp(%pp-current-chan,flood-join) == 1) {
    did -c pp-channel 8
    pp-flood-join on
  }
  if ($readpp(%pp-current-chan,flood-op) == 1) { did -c pp-channel 27 }
  if ($readpp(%pp-current-chan,flood-voice) == 1) { did -c pp-channel 28 }
  if ($readpp(%pp-current-chan,flood-2) == 1) { did -c pp-channel 18 }
  if ($readpp(%pp-current-chan,flood-49) == 1) { did -c pp-channel 19 }
  if ($readpp(%pp-current-chan,flood-50) == 1) { did -c pp-channel 20 }
  if ($readpp(%pp-current-chan,flood-51) == 1) { did -c pp-channel 21 }
  if ($readpp(%pp-current-chan,flood-52) == 1) { did -c pp-channel 22 }
  if ($readpp(%pp-current-chan,flood-kick) == 1) {
    did -c pp-channel 84
    pp-flood-kick on
  }
  if ($readpp(%pp-current-chan,flood-ban) == 1) {
    did -c pp-channel 85
    pp-flood-ban on
  }
  if ($len($readpp(%pp-current-chan,flood-other)) > 0) { did -ra pp-channel 46 $replace($readpp(%pp-current-chan,flood-other),^,$) }
  if ($len($readpp(%pp-current-chan,flood-kick-msg)) > 0) { did -ra pp-channel 87 $readpp(%pp-current-chan,flood-kick-msg) }
  if ($len($readpp(%pp-current-chan,flood-ban-type)) > 0) { did -c pp-channel 90 $calc($readpp(%pp-current-chan,flood-ban-type) + 1) }
  if ($len($readpp(%pp-current-chan,flood-ban-time)) > 0) { did -ra pp-channel 92 $readpp(%pp-current-chan,flood-ban-time) }
  if ($len($readpp(%pp-current-chan,flood-time)) > 0) { did -ra pp-channel 99 $readpp(%pp-current-chan,flood-time) }
  if ($len($readpp(%pp-current-chan,flood-lines)) > 0) { did -ra pp-channel 97 $readpp(%pp-current-chan,flood-lines) }
  if ($len($readpp(%pp-current-chan,mass-other)) > 0) { did -ra pp-channel 50 $replace($readpp(%pp-current-chan,mass-other),^,$) }
  if ($len($readpp(%pp-current-chan,mass-kick-msg)) > 0) { did -ra pp-channel 159 $readpp(%pp-current-chan,mass-kick-msg) }
  if ($len($readpp(%pp-current-chan,mass-ban-type)) > 0) { did -c pp-channel 162 $calc($readpp(%pp-current-chan,mass-ban-type) + 1) }
  if ($len($readpp(%pp-current-chan,mass-ban-time)) > 0) { did -ra pp-channel 164 $readpp(%pp-current-chan,mass-ban-time) }
  if ($len($readpp(%pp-current-chan,mass-time)) > 0) { did -ra pp-channel 148 $readpp(%pp-current-chan,mass-time) }
  if ($len($readpp(%pp-current-chan,mass-lines)) > 0) { did -ra pp-channel 146 $readpp(%pp-current-chan,mass-lines) }
  if ($readpp(%pp-current-chan,mass-deop) == 1) { did -c pp-channel 10 }
  if ($readpp(%pp-current-chan,mass-kicks) == 1) { did -c pp-channel 141 }
  if ($readpp(%pp-current-chan,mass-bans) == 1) { did -c pp-channel 142 }
  if ($readpp(%pp-current-chan,mass-unbans) == 1) { did -c pp-channel 9 }
  if ($readpp(%pp-current-chan,mass-ops) == 1) { did -c pp-channel 143 }
  if ($readpp(%pp-current-chan,mass-deops) == 1) { did -c pp-channel 144 }
  if ($readpp(%pp-current-chan,mass-kick) == 1) {
    did -c pp-channel 158
    pp-mass-kick on
  }
  if ($readpp(%pp-current-chan,mass-ban) == 1) {
    did -c pp-channel 160
    pp-mass-ban on
  }
  if ($readpp(%pp-current-chan,mass-2) == 1) { did -c pp-channel 151 }
  if ($readpp(%pp-current-chan,mass-49) == 1) { did -c pp-channel 152 }
  if ($readpp(%pp-current-chan,mass-50) == 1) { did -c pp-channel 153 }
  if ($readpp(%pp-current-chan,mass-51) == 1) { did -c pp-channel 154 }
  if ($readpp(%pp-current-chan,mass-52) == 1) { did -c pp-channel 155 }

  if ($len($readpp(%pp-current-chan,repeat-kicknum)) > 0) { did -ra pp-channel 193 $readpp(%pp-current-chan,repeat-kicknum) }
  if ($len($readpp(%pp-current-chan,repeat-bannum)) > 0) { did -ra pp-channel 200 $readpp(%pp-current-chan,repeat-bannum) }
  if ($readpp(%pp-current-chan,repeat-guard) == 1) {
    did -c pp-channel 65
    pp-repeat on
  }
  if ($readpp(%pp-current-chan,repeat-kick) == 1) {
    did -c pp-channel 213
    pp-repeat-kick on
  }
  if ($readpp(%pp-current-chan,repeat-ban) == 1) {
    did -c pp-channel 214
    pp-repeat-ban on
  }
  if ($readpp(%pp-current-chan,repeat-2) == 1) { did -c pp-channel 70 }
  if ($readpp(%pp-current-chan,repeat-49) == 1) { did -c pp-channel 71 }
  if ($readpp(%pp-current-chan,repeat-50) == 1) { did -c pp-channel 72 }
  if ($readpp(%pp-current-chan,repeat-51) == 1) { did -c pp-channel 73 }
  if ($readpp(%pp-current-chan,repeat-52) == 1) { did -c pp-channel 74 }
  if ($readpp(%pp-current-chan,repeat-op) == 1) { did -c pp-channel 196 }
  if ($readpp(%pp-current-chan,repeat-voice) == 1) { did -c pp-channel 197 }
  if ($len($readpp(%pp-current-chan,repeat-kick-msg)) > 0) { did -ra pp-channel 203 $readpp(%pp-current-chan,repeat-kick-msg) }
  if ($len($readpp(%pp-current-chan,repeat-ban-type)) > 0) { did -c pp-channel 206 $calc($readpp(%pp-current-chan,repeat-ban-type) + 1) }
  if ($len($readpp(%pp-current-chan,repeat-ban-time)) > 0) { did -ra pp-channel 208 $readpp(%pp-current-chan,repeat-ban-time) }
  if ($readpp(%pp-current-chan,clone-guard) == 1) {
    did -c pp-channel 216
    pp-clone on
  }
  if ($readpp(%pp-current-chan,clone-kick) == 1) {
    did -c pp-channel 237
    pp-clone-kick on
  }
  if ($readpp(%pp-current-chan,clone-ban) == 1) {
    did -c pp-channel 241
    pp-clone-ban on
  }
  if ($readpp(%pp-current-chan,clone-2) == 1) { did -c pp-channel 222 }
  if ($readpp(%pp-current-chan,clone-49) == 1) { did -c pp-channel 223 }
  if ($readpp(%pp-current-chan,clone-50) == 1) { did -c pp-channel 224 }
  if ($readpp(%pp-current-chan,clone-51) == 1) { did -c pp-channel 225 }
  if ($readpp(%pp-current-chan,clone-52) == 1) { did -c pp-channel 226 }
  if ($readpp(%pp-current-chan,clone-op) == 1) { did -c pp-channel 228 }
  if ($readpp(%pp-current-chan,clone-voice) == 1) { did -c pp-channel 229 }
  if ($len($readpp(%pp-current-chan,clone-max)) > 0) { did -ra pp-channel 218 $readpp(%pp-current-chan,clone-max) } 
  if ($len($readpp(%pp-current-chan,clone-other)) > 0) { did -ra pp-channel 67 $replace($readpp(%pp-current-chan,clone-other),^,$) }
  if ($len($readpp(%pp-current-chan,clone-kick-msg)) > 0) { did -ra pp-channel 240 $readpp(%pp-current-chan,clone-kick-msg) }
  if ($len($readpp(%pp-current-chan,clone-ban-type)) > 0) { did -c pp-channel 243 $calc($readpp(%pp-current-chan,clone-ban-type) + 1) }
  if ($len($readpp(%pp-current-chan,clone-ban-time)) > 0) { did -ra pp-channel 245 $readpp(%pp-current-chan,clone-ban-time) }
  if ($len($readpp(%pp-current-chan,clone-mask-type)) > 0) { did -c pp-channel 221 $calc($readpp(%pp-current-chan,clone-mask-type) + 1) }
  if ($readpp(%pp-current-chan,wingate-guard) == 1) {
    did -c pp-channel 230
    pp-wingate on
  }
  if ($readpp(%pp-current-chan,wingate-kick) == 1) {
    did -c pp-channel 252
    pp-wingate-kick on
  }
  if ($readpp(%pp-current-chan,wingate-ban) == 1) {
    did -c pp-channel 256
    pp-wingate-ban on
  }
  if ($readpp(%pp-current-chan,wingate-2) == 1) { did -c pp-channel 232 }
  if ($readpp(%pp-current-chan,wingate-49) == 1) { did -c pp-channel 233 }
  if ($readpp(%pp-current-chan,wingate-50) == 1) { did -c pp-channel 234 }
  if ($readpp(%pp-current-chan,wingate-51) == 1) { did -c pp-channel 235 }
  if ($readpp(%pp-current-chan,wingate-52) == 1) { did -c pp-channel 236 }
  if ($len($readpp(%pp-current-chan,wingate-other)) > 0) { did -ra pp-channel 75 $replace($readpp(%pp-current-chan,wingate-other),^,$) }
  if ($len($readpp(%pp-current-chan,wingate-kick-msg)) > 0) { did -ra pp-channel 254 $readpp(%pp-current-chan,wingate-kick-msg) }
  if ($len($readpp(%pp-current-chan,wingate-ban-type)) > 0) { did -c pp-channel 260 $calc($readpp(%pp-current-chan,wingate-ban-type) + 1) }
  set %i $numtok($readpp(%pp-current-chan,wingate-ports),59)
  set %j 1
  while (%j <= %i) {
    did -a pp-channel 262 $gettok($readpp(%pp-current-chan,wingate-ports),%j,59)
    inc %j
  }
  if ($len($readpp(%pp-current-chan,wingate-ban-time)) > 0) { did -ra pp-channel 258 $readpp(%pp-current-chan,wingate-ban-time) }
}
on *:dialog:pp-channel:menu:*:{
  if (%pp-current-chan == $null) { did -h pp-channel 1 }
  else { did -v pp-channel 1 }
  if ($did == 106) {
    if ($input(Would you like to save these changes?,8,Question) == $true) { goto save }
  }
  if ($did == 44) {
    if ($dialog(pp-user) == $null) {
      dialog -m pp-user pp-user
    }
    else {
      dialog -v pp-user
    }
  }
  if ($did == 77) {
    if ($dialog(pp-update) == $null) { dialog -m pp-update pp-update }
    else { dialog -v pp-update }
  }
  if ($did == 15) {
    .remini $ppdir $+ pp.ini %pp-current-chan
    .remini $ppdir $+ pp-user.ini %pp-current-chan
    unset %pp-current-chan
    .dialog -x pp-channel
    .dialog -m pp-channel pp-channel
  }
  if ($did == 12) {
    set %pp-current-chan $$?="Please Enter Channel Name"
    .dialog -t pp-channel Channel Protections - %pp-current-chan
    if (%pp-current-chan == $null) { did -h pp-channel 1 }
    else { did -v pp-channel 1 }
  }
  if ($did == 91) {   
    ppentercode 
  }
  if ($did == 14) {
    dialog -m pp-load pp-load
  }
  ;----- ( Save Settings ) -----

  if ($did == 104) {
    :save
    if (%pp-current-chan == $null) { set %pp-current-chan $$?="Please Enter Channel Name To Apply To" }
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-kickprotect $did(5).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-deopprotect $did(4).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-banprotect $did(6).state 
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-devoice $did(45).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-kick $did(16).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ban $did(30).state
    if ($len($did(32).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-type $left($did(32).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-type 0 }
    if ($len($did(34)) == 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-time 0 }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-time $did(34) }
    writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignoreswitch $did(36).state
    .remini $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore

    if ($did(37).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore p }
    if ($did(38).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore $readpp(%pp-current-chan,pp-craplisted-ignore) $+ n }
    if ($did(39).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore $readpp(%pp-current-chan,pp-craplisted-ignore) $+ t }
    if ($did(40).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore $readpp(%pp-current-chan,pp-craplisted-ignore) $+ d }
    if ($did(41).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore $readpp(%pp-current-chan,pp-craplisted-ignore) $+ k }
    if ($did(42).state == 1) { writeini -n $ppdir $+ pp.ini %pp-current-chan pp-craplisted-ignore $readpp(%pp-current-chan,pp-craplisted-ignore) $+ c }
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-guard $did(230).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-kick $did(252).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ban $did(256).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-2 $did(232).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-49 $did(233).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-50 $did(234).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-51 $did(235).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-52 $did(236).state
    if ($len($did(75)) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-other $replace($did(75),$,^) }
    else { remini $ppdir $+ pp.ini %pp-current-chan wingate-other }
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-kick-msg $did(254) 
    if ($len($did(260).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ban-type $left($did(260).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ban-type 0 }
    set %i $did(262).lines
    set %j 1
    .remini $ppdir $+ pp.ini %pp-current-chan wingate-ports
    writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ports $did(262,%j) $+ ;
    inc %j
    while (%j <= %i) {
      writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ports $readpp(%pp-current-chan,wingate-ports) $+ $did(262,%j) $+ ;
      inc %j
    }
    if ($len($did(258)) > 0) {
      if ($did(258) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 258
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ban-time $did(258)
    }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan wingate-ban-time 0 }

    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-guard $did(216).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-kick $did(237).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-ban $did(241).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-2 $did(222).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-49 $did(223).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-50 $did(224).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-51 $did(225).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-52 $did(226).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-op $did(228).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-voice $did(229).state
    if ($len($did(67)) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-other $replace($did(67),$,^) }
    else { remini $ppdir $+ pp.ini %pp-current-chan clone-other }
    writeini -n $ppdir $+ pp.ini %pp-current-chan clone-kick-msg $did(240) 
    if (($len($did(218)) > 0) && ($did(218) isnum 0-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-max $did(218) }
    else {
      if ($did(216).state == 1) {
        set %blahblah $input(You must enter a number between 0 and 99 of Clones to Permit!,4,DOH!)
        did -f pp-channel 218
        return
      }
    }
    if ($len($did(221).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-mask-type $left($did(221).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-mask-type 2 }
    if ($len($did(243).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-ban-type $left($did(243).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-ban-type 0 }
    if ($len($did(245)) > 0) {
      if ($did(245) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 245
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan clone-ban-time $did(245)
    }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan clone-ban-time 0 }

    if (($len($did(193)) > 0) && ($did(193) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-kicknum $did(193) }
    else {
      if ($did(213).state == 1) {
        set %blahblah $input(You must enter a number between 1 and 99 of repeats to trigger the Repeat Kick!,4,DOH!)
        did -f pp-channel 193
        return
      }
    }
    if (($len($did(200)) > 0) && ($did(200) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-bannum $did(200) }
    else {
      if ($did(214).state == 1) {
        set %blahblah $input(You must enter a number between 1 and 99 of repeats to trigger the Repeat Ban!,4,DOH!)
        did -f pp-channel 200
        return
      }
    }
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-guard $did(65).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-kick $did(213).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-ban $did(214).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-2 $did(70).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-49 $did(71).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-50 $did(72).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-51 $did(73).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-52 $did(74).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-op $did(196).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-voice $did(197).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-kick-msg $did(203)     
    if ($len($did(206).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-ban-type $left($did(206).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-ban-type 0 }
    if ($len($did(208)) > 0) {
      if ($did(208) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 208
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-ban-time $did(208)
    }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan repeat-ban-time 0 }
    if (($len($did(146)) > 0) && ($did(146) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-lines $did(146) }
    else {
      if (($did(141).state == 1) || ($did(142).state == 1) || ($did(143).state == 1) || ($did(144).state == 1) || ($did(9).state == 1)) {
        set %blahblah $input(You must enter a number between 1 and 99 of events to trigger Mass-Guard!,4,DOH!)
        did -f pp-channel 146
        return
      }
    }
    if (($len($did(148)) > 0) && ($did(148) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-time $did(148) }
    else { 
      if (($did(141).state == 1) || ($did(142).state == 1) || ($did(143).state == 1) || ($did(144).state == 1) || ($did(9).state == 1)) {
        set %blahblah $input(You must enter a time in seconds between 1 and 99 to trigger Mass-Guard!,4,DOH!)
        did -f pp-channel 148
        return
      }
    }
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-deop $did(10).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-kicks $did(141).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-bans $did(142).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-unbans $did(9).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ops $did(143).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-deops $did(144).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-kick $did(158).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ban $did(160).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-kick-msg $did(159) 
    if ($len($did(50)) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-other $replace($did(50),$,^) }
    else { remini $ppdir $+ pp.ini %pp-current-chan mass-other }
    if ($len($did(162).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ban-type $left($did(162).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ban-type 0 }
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-2 $did(151).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-49 $did(152).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-50 $did(153).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-51 $did(154).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan mass-52 $did(155).state
    if ($len($did(164)) > 0) {
      if ($did(164) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 164
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ban-time $did(164)
    }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan mass-ban-time 0 }

    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-guard $did(48).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-op $did(59).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-voice $did(60).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-2 $did(53).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-49 $did(54).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-50 $did(55).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-51 $did(56).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-52 $did(57).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-kick $did(181).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-ban $did(186).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-kick-msg $did(185) 
    if ($len($did(52)) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-other $replace($did(52),$,^) }
    else { remini $ppdir $+ pp.ini %pp-current-chan swear-other }
    if ($len($did(248)) == 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-warn 0 }
    else {
      if ($did(248) isnum 0-99) { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-warn $did(248) }
      else {
        if ($did(181).state == 1) { 
        set %blahblah $input(You must enter a number between 0 and 99 to warn a user before kicking them!,4,DOH!) }
      }
    }
    if ($len($did(188).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-ban-type $left($did(188).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-ban-type 0 }
    if ($len($did(190)) > 0) {
      if ($did(190) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 190
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan swear-ban-time $did(190)
    }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan swear-ban-time 0 }
    set %i $did(167).lines
    set %j 1
    .remini $ppdir $+ pp.ini %pp-current-chan swear-words
    writeini -n $ppdir $+ pp.ini %pp-current-chan swear-words $did(167,%j) $+ ;
    inc %j
    while (%j <= %i) {
      writeini -n $ppdir $+ pp.ini %pp-current-chan swear-words $readpp(%pp-current-chan,swear-words) $+ $did(167,%j) $+ ;
      inc %j
    }
    if (($len($did(97)) > 0) && ($did(97) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-lines $did(97) }
    else {
      if (($did(23).state == 1) || ($did(192).state == 1) || ($did(25).state == 1) || ($did(82).state == 1) || ($did(8).state == 1)) {
        set %blahblah $input(You must enter a number between 1 and 99 of lines to trigger Flood-Guard!,4,DOH!)
        did -f pp-channel 97
        return
      }
    }
    if (($len($did(99)) > 0) && ($did(99) isnum 1-99)) { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-time $did(99) }
    else {
      if (($did(23).state == 1) || ($did(192).state == 1) || ($did(25).state == 1) || ($did(82).state == 1) || ($did(8).state == 1)) {
        set %blahblah $input(You must enter a time in seconds between 1 and 99 to trigger Flood-Guard!,4,DOH!)
        did -f pp-channel 99
        return
      }
    }
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-notice $did(25).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-text $did(23).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-action $did(192).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ctcp $did(82).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-join $did(8).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-kick $did(84).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ban $did(85).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-kick-msg $did(87) 
    if ($len($did(46)) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-other $replace($did(46),$,^) }
    else { remini $ppdir $+ pp.ini %pp-current-chan flood-other }
    if ($len($did(90).seltext) > 0) { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ban-type $left($did(90).seltext,1) }
    else { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ban-type 0 }
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-2 $did(18).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-49 $did(19).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-50 $did(20).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-51 $did(21).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-52 $did(22).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-op $did(27).state
    writeini -n $ppdir $+ pp.ini %pp-current-chan flood-voice $did(28).state

    if ($len($did(92)) > 0) {
      if ($did(92) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ban a user for!,4,DOH!)
        did -f pp-channel 92
        return
      }
      writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ban-time $did(92)
      else { writeini -n $ppdir $+ pp.ini %pp-current-chan flood-ban-time 0 }
    }

  }
  ;----- ( Other Windows ) -----
  if ($did == 107) { 
    if ($dialog(pp-private) == $null) { dialog -m pp-private pp-private }
    else { dialog -v pp-private }
  }

  if ($did == 116) { 
    if ($dialog(pp-about) == $null) { dialog -m pp-about pp-about }
    else { dialog -v pp-about }
  }
  if ($did == 11) { 
    if ($dialog(pp-help) == $null) { dialog -m pp-help pp-help }
    else { dialog -v pp-help }
  }

}
on *:dialog:pp-channel:sclick:*:{
  if ($did == 30) {
    if ($did(30).state == 1) { pp-user-ban on }
    elseif ($did(45).state == 1) { pp-user-ban on }
    else { pp-user-ban off }
  }
  if ($did == 45) {
    if ($did(45).state == 1) { pp-user-ban on }
    elseif (($did(30).state == 1) { pp-user-ban on }
    else { pp-user-ban off }
  }
  if ($did == 36) {
    if ($did(36).state == 1) { pp-user-ignore on }
    else { pp-user-ignore off }
  }
  if ($did == 263) {
    if (($len($did(262)) > 0) && ($did(262) isnum 1-99999)) {
      did -a pp-channel 262 $did(262)
    }
    else {
      set %blahblah $input(You must enter a Port Number!,4,DOH!)
      did -f pp-channel 262
    }
  }
  if ($did == 264) {
    if ($len($did(262).seltext) > 0) { did -d pp-channel 262 $did(262).sel }
    else {
      set %blahblah $input(You must select a Port to remove!,4,DOH!)
      did -f pp-channel 262
    }
  }
  if ($did == 170) {
    if ($len($did(167)) > 0) {
      did -a pp-channel 167 $did(167)
    }
    else {
      set %blahblah $input(You must enter a word!,4,DOH!)
      did -f pp-channel 167
    }
  }
  if ($did == 171) {
    if ($len($did(167).seltext) > 0) { did -d pp-channel 167 $did(167).sel }
    else {
      set %blahblah $input(You must select a word to remove!,4,DOH!)
      did -f pp-channel 167
    }
  }
  if (($did(23).state == 1) || ($did(192).state == 1) || ($did(25).state == 1) || ($did(82).state == 1) || ($did(8).state == 1)) { 
    pp-flood on
    if ($did(84).state == 1) { pp-flood-kick on }
    else { pp-flood-kick off }
    if ($did(85).state == 1) { pp-flood-ban on }
    else { pp-flood-ban off }
    if (($did(23).state != 1) && ($did(192).state != 1) && ($did(25).state != 1) && ($did(82).state != 1)) { 
      did -b pp-channel 27,28
    }
  }
  else {
    pp-flood off
    pp-flood-kick off
    pp-flood-ban off
  }

  if (($did(141).state == 1) || ($did(142).state == 1) || ($did(143).state == 1) || ($did(144).state == 1) || ($did(9).state == 1)) {
    pp-mass on
    if ($did(158).state == 1) { pp-mass-kick on }
    else { pp-mass-kick off }
    if ($did(160).state == 1) { pp-mass-ban on }
    else { pp-mass-ban off }
  }
  else {
    pp-mass off
    pp-mass-kick off
    pp-mass-ban off
  }
  if ($did(48).state == 1) {
    if ($did(181).state == 1) { pp-swear-kick on }
    else { pp-swear-kick off }
    if ($did(186).state == 1) { pp-swear-ban on }
    else { pp-swear-ban off }
    pp-swear on
  }
  else {
    pp-swear off
    pp-swear-kick off
    pp-swear-ban off
  }
  if ($did(65).state == 1) {
    if ($did(213).state == 1) { pp-repeat-kick on }
    else { pp-repeat-kick off }
    if ($did(214).state == 1) { pp-repeat-ban on }
    else { pp-repeat-ban off }
    pp-repeat on 
  }
  else {
    pp-repeat off
    pp-repeat-kick off
    pp-repeat-ban off
  }
  if ($did(216).state == 1) {
    if ($did(237).state == 1) { pp-clone-kick on }
    else { pp-clone-kick off }
    if ($did(241).state == 1) { pp-clone-ban on }
    else { pp-clone-ban off }
    pp-clone on
  }
  else {
    pp-clone off
    pp-clone-kick off
    pp-clone-ban off
  }
  if ($did(230).state == 1) {
    if ($did(252).state == 1) { pp-wingate-kick on }
    else { pp-wingate-kick off }
    if ($did(256).state == 1) { pp-wingate-ban on }
    else { pp-wingate-ban off }
    pp-wingate on
  }
  else {
    pp-wingate off
    pp-wingate-kick off
    pp-wingate-ban off
  }
}
on *:dialog:pp-about:sclick:9:/run mailto:ringer@softhome.net

on *:dialog:pp:init:*:{
  did -ra $dname 7 @window
  did -a $dname 7 Status
  did -a $dname 7 Active
  did -a $dname 7 Target
  if ($readpp(pp,auto-update) == 1) { did -c $dname 5 }
  if ($readpp(pp,pp-color) == 1) { did -c $dname 4 }
  if ($readpp(pp,show-who) == 1) { did -c $dname 79 }
  if ($readpp(pp,pp-echo ) == 1) { did -c $dname 6 | did -e $dname 7 }
  if ($readpp(pp,echo-win) == @pp-messages) { did -c $dname 7 1 }
  if ($file($script).mtime > $readpp(pp,installed)) { did-ra pp 90 %radndnum }
  if ($readpp(pp,echo-win) == -s) { did -c $dname 7 2 }
  if ($readpp(pp,echo-win) == -a) { did -c $dname 7 3 }
  if ($target == $readpp(pp,echo-win)) { did -c $dname 7 4 }
}
on *:dialog:pp-user:init:*:{
  set %i $ini($ppdir $+ pp-user.ini,0)
  set %j 1
  did -r $dname 49
  while (%j <= %i) {
    if ($ini($ppdir $+ pp-user.ini,%j) == pp) {
      inc %j
      continue
    }
    did -a $dname 49 $ini($ppdir $+ pp-user.ini,%j)
    inc %j
  }
}
alias ppentercode {
  set %temp $$?="Please enter the User ID"
  set %temp1 $left(%temp,1)
  set %temp2 $right(%temp,1)
  set %temp3 $asc(%temp1) $+ $chr($calc(($asc(%temp1) + $asc(%temp2)) / 2)) $+ $calc(($asc(%temp1) + $asc(%temp2))) $+ $round($calc(($asc(%temp1) + $asc(%temp2)) / $len(%temp)),0) $+ $chr($round($calc((($asc(%temp1) + $asc(%temp2)) / $len(%temp)) * 2),0))
  if ($$?="Please enter the registration code" == %temp3) {
    writeini -n $sddir $+ pp-ial.ini settings denum %temp
    writeini -n $sddir $+ pp-ial.ini settings opnum %temp3
    set %temp $input(Thank you for registering!,o)
  }
  else { set %temp $input(Invalid code!,o) }
}
on *:dialog:pp-user:menu:*:{
  if ($did == 6) {
    if ($dialog(pp-channel) == $null) { dialog -m pp-channel pp-channel }
    else { dialog -v pp-channel }
  }
  if ($did == 10) {
    if ($dialog(pp-update) == $null) { dialog -m pp-update pp-update }
    else { dialog -v pp-update }
  }
  if ($did == 7) { 
    if ($dialog(pp-private) == $null) { dialog -m pp-private pp-private }
    else { dialog -v pp-private }
  }
  if ($did == 14) {
    ppentercode
  }
  if ($did == 74) { 
    if ($dialog(pp-about) == $null) { dialog -m pp-about pp-about }
    else { dialog -v pp-about }
  }
  if ($did == 3) { 
    if ($dialog(pp-help) == $null) { dialog -m pp-help pp-help }
    else { dialog -v pp-help }
  }
}
on *:dialog:pp-user:sclick:*:{
  if ($did == 49) {
    if ($len($did(49).seltext) > 0) {
      did -e $dname 51
      set %pp-user-chan $did(49).seltext
      set %i-p $ini($ppdir $+ pp-user.ini,%pp-user-chan,0)
      set %j-p 1
      did -r $dname 51
      while (%j-p <= %i-p) {
        did -a $dname 51 $ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p)
        inc %j-p
      }
    }
    else { did -b $dname 51 }
  }
  if (($did == 62) && ($len($did(51).seltext) > 0)) {
    writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 25
    writeini -n $ppdir $+ pp.ini craplist $did(49).seltext $+ $did(51).seltext $input(Reason / Kick Message?,1,Craplist Msg)
  }
  if (($did == 63) && ($len($did(51).seltext) > 0)) { writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 2 }
  if (($did == 67) && ($len($did(51).seltext) > 0)) { writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 49 }
  if (($did == 68) && ($len($did(51).seltext) > 0)) { writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 50 }
  if (($did == 9) && ($len($did(51).seltext) > 0)) { writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 51 }
  if (($did == 11) && ($len($did(51).seltext) > 0)) { writeini -n $ppdir $+ pp-user.ini $did(49) $did(51).seltext 52 }
  if ($did == 52) { dialog -m pp-addrem pp-addrem }
  if ($did == 61) {
    if ($len($did(51).seltext) > 0) {
      .remini $ppdir $+ pp-user.ini $did(49).seltext $did(51).seltext
      set %pp-user-chan $did(49).seltext
      set %i-p $ini($ppdir $+ pp-user.ini,%pp-user-chan,0)
      set %j-p 1
      did -r $dname 51
      while (%j-p <= %i-p) {
        did -a $dname 51 $ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p)
        inc %j-p
      }
    }
    else { set %blahblah $input(You must select a host to remove!,4,DOH!) }
  }
  if ($did == 51) {
    if ($readppu($did(49),$did(51).seltext) == 25) {
      did -c $dname 62
      did -u $dname 63,67,68,9,11
    }
    if ($readppu($did(49),$did(51).seltext) == 2) {
      did -c $dname 63
      did -u $dname 62,67,68,9,11
    }
    if ($readppu($did(49),$did(51).seltext) == 49) {
      did -c $dname 67
      did -u $dname 62,63,68,9,11
    }
    if ($readppu($did(49),$did(51).seltext) == 50) {
      did -c $dname 68
      did -u $dname 62,63,67,9,11
    }
    if ($readppu($did(49),$did(51).seltext) == 51) {
      did -c $dname 9
      did -u $dname 62,63,67,68,11
    }
    if ($readppu($did(49),$did(51).seltext) == 52) {
      did -c $dname 11
      did -u $dname 62,63,67,68,9
    }
  }
}
on *:dialog:pp:sclick:*:{
  if ($did == 6) {
    if ($did(6).state == 1) { did -e $dname 7 }
    else { did -b $dname 7 }
    writeini -n $ppdir $+ pp.ini pp pp-echo  $did(6).state
  }
  if ($did == 7) {
    if ($did(7).sel == 1) { writeini -n $ppdir $+ pp.ini pp echo-win @pp-messages }
    if ($did(7).sel == 2) { writeini -n $ppdir $+ pp.ini pp echo-win -s }
    if ($did(7).sel == 3) { writeini -n $ppdir $+ pp.ini pp echo-win -a }
    if ($did(7).sel == 4) { writeini -n $ppdir $+ pp.ini pp echo-win $eval($target,0) }
  }
  if ($did == 4) {
    writeini -n $ppdir $+ pp.ini pp pp-color $did(4).state 
    if ($did(4).state == 1) {
      window -ak0 +l @PP-Users 1 1 125 125
      echo 12 @PP-Users Ultra-Protected
      echo 12 @PP-Users 10 Protected
      echo 12 @PP-Users 3 UnProtected
      echo 12 @PP-Users 7 Auto-Voiced
      echo 12 @PP-Users 14 Friend
      echo 12 @PP-Users 4 Craplisted
      pp-channel-colors
      did -f $dname 4
    }
    else {
      pp-join-colors-off
    }
  }
  if ($did == 5) {
    writeini -n $ppdir $+ pp.ini pp auto-update $did(5).state
  }
  if ($did == 79) {
    writeini -n $ppdir $+ pp.ini pp show-who $did(79).state
  }
  if ($did == 12) { 
    if ($dialog(pp-channel) == $null) { dialog -m pp-channel pp-channel }
    else { dialog -v pp-channel }
  }
  if ($did == 13) {
    if ($dialog(pp-private) == $null) { dialog -m pp-private pp-private }
    else { dialog -v pp-private }
  }
  if ($did == 2) {
    if ($dialog(pp-update) == $null) { dialog -m pp-update pp-update }
    else { dialog -v pp-update }
  }
  if ($did == 1) {
    set %blahblah $input(Are you sure you want to UnInstall Protection Pro v3.05?,8,Uninstall Protection Pro)
    if (%blahblah == $true) { .unload -rs $ppdir $+ pp305-1.mrc }
  }
  if ($did == 3) {
    if ($dialog(pp-user) == $null) {
      dialog -m pp-user pp-user
    }
    else {
      dialog -v pp-user
    }
  }
  if ($did == 10) {
    server -m us.undernet.org 6667 -j #ringerscripting
  }
}
on *:dialog:pp-addrem*:init:*:{
  did -c $dname 9
  did -ra $dname 4 Craplist
  did -a $dname 4 Friend
  did -a $dname 4 Auto-Voice
  did -a $dname 4 Normal Op
  did -a $dname 4 Protected Op
  did -a $dname 4 Ultra-Protected
  set %i-p $ini($ppdir $+ pp-user.ini,0)
  set %j-p 1
  did -r $dname 2
  while (%j-p <= %i-p) {
    if ($ini($ppdir $+ pp-user.ini,%j-p) == pp) {
      inc %j-p 
      continue
    }
    did -a $dname 2 $ini($ppdir $+ pp-user.ini,%j-p)
    inc %j-p
  }
  if ($didwm($dname,2,* $+ %pp-user-chan $+ *) != 0) { did -c $dname 2 $didwm($dname,2,* $+ %pp-user-chan $+ *) }
  else {
    did -a $dname 2 %pp-user-chan
    did -c $dname 2 $didwm($dname,2,* $+ %pp-user-chan $+ *)
  }
  set %i-p $ini($ppdir $+ pp-user.ini,%pp-user-chan,0)
  set %j-p 1
  while (%j-p <= %i-p) {
    if ($ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p) iswm $address(%pp-current-nick,5)) {
      set %pp-user-level $readppu(%pp-user-chan,$ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p))
      if (%pp-user-level == 25) { did -c $dname 4 1 }
      if (%pp-user-level == 2) { did -c $dname 4 2 }
      if (%pp-user-level == 49) { did -c $dname 4 3 }
      if (%pp-user-level == 50) { did -c $dname 4 4 }
      if (%pp-user-level == 51) { did -c $dname 4 5 }
      if (%pp-user-level == 52) { did -c $dname 4 6 }
      break
    }
    inc %j-p
  }
}
on *:dialog:pp-addrem*:edit:*:{
  set %i-p $ini($ppdir $+ pp-user.ini,$did(2),0)
  set %j-p 1
  while (%j-p <= %i-p) {
    if ($ini($ppdir $+ pp-user.ini,$did(2),%j-p) iswm $address($did(14),5)) {
      set %pp-user-level $readppu($did(2),$ini($ppdir $+ pp-user.ini,$did(2),%j-p))
      if (%pp-user-level == 25) { did -c $dname 4 1 }
      if (%pp-user-level == 2) { did -c $dname 4 2 }
      if (%pp-user-level == 49) { did -c $dname 4 3 }
      if (%pp-user-level == 50) { did -c $dname 4 4 }
      if (%pp-user-level == 51) { did -c $dname 4 5 }
      if (%pp-user-level == 52) { did -c $dname 4 6 }
      break
    }
    inc %j-p
  }
  if ($did == 14) {
    if ($address($did(14),3) != $null) {
      did -ra $dname 8 $address($did(14),0)
      did -a $dname 8 $address($did(14),1)
      did -a $dname 8 $address($did(14),2)
      did -a $dname 8 $address($did(14),3)
      did -a $dname 8 $address($did(14),4)
      did -c $dname 8 3
    }
  }
}
alias ppnumcheck {
  set %temp $readini($sddir $+ pp-ial.ini,settings,denum)
  set %temp1 $left(%temp,1)
  set %temp2 $right(%temp,1)
  return $asc(%temp1) $+ $chr($calc(($asc(%temp1) + $asc(%temp2)) / 2)) $+ $calc(($asc(%temp1) + $asc(%temp2))) $+ $round($calc(($asc(%temp1) + $asc(%temp2)) / $len(%temp)),0) $+ $chr($round($calc((($asc(%temp1) + $asc(%temp2)) / $len(%temp)) * 2),0))
}
on *:dialog:pp-addrem*:sclick:*:{
  if ($did == 5) {
    set %i-p $ini($ppdir $+ pp-user.ini,$$did(2),0)
    set %j-p 1
    while (%j-p <= %i-p) {
      if ($ini($ppdir $+ pp-user.ini,$$did(2),%j-p) iswm $address($$did(14),5)) {
        .remini $ppdir $+ pp-user.ini $$did(2) $ini($ppdir $+ pp-user.ini,$$did(2),%j-p)
        break        
      }
      inc %j-p
    }
    if ($did(9).state == 1) { .notice $did(14) 12You have been removed from my userlist for7 $$did(2) $+ . }
    pp-echo $readpp(pp,echo-win) $did(14) 12has been removed
    if ($did(14) ison $did(2)) { cline 1 $did(2) $fline( $+ $did(2) $+ ,* $+ $did(14) $+ *,1,1) }
    dialog -x $dname
  }
  if ($did == 2) {
    set %i-p $ini($ppdir $+ pp-user.ini,$did(2),0)
    set %j-p 1
    while (%j-p <= %i-p) {
      if ($ini($ppdir $+ pp-user.ini,$did(2),%j-p) iswm $address($did(14),5)) {
        set %pp-user-level $readppu($did(2),$ini($ppdir $+ pp-user.ini,$did(2),%j-p))
        if (%pp-user-level == 25) { did -c $dname 4 1 }
        if (%pp-user-level == 2) { did -c $dname 4 2 }
        if (%pp-user-level == 49) { did -c $dname 4 3 }
        if (%pp-user-level == 50) { did -c $dname 4 4 }
        if (%pp-user-level == 51) { did -c $dname 4 5 }
        if (%pp-user-level == 52) { did -c $dname 4 6 }
        break
      }
      inc %j-p
    }
  }
  if ($did == 10) {
    if ($len($did(2)) < 1) {
      set %blahblah $input(You must select or enter a channel!,4,DOH!)
      did -f $dname 2
      return
    }
    if ($len($did(4)) < 1) {
      set %blahblah $input(You must select a level!,4,DOH!)
      did -f $dname 4
      return
    }
    if ($did(4,1).sel == 1) {
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 25
      writeini -n $ppdir $+ pp.ini craplist $did(2) $+ $did(8) $?="Reason / Kick Message?"
      .ignore - $+ $readpp(pp,pp-craplisted-ignore) $did(8)
      pp-echo $readpp(pp,echo-win) $did(14) 12has been 7CRAPlisted!
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my 14CRAPLIST. } 
      if ($did(14) ison $did(2)) {
        if ($me !isop $did(2)) { return }
        if ($readpp($did(2),pp-craplisted-devoice) == 1) { 
          mode $did(2) -v $did(14)
          if ($readpp($did(2),pp-craplisted-time) > 0) {
            .timer 1 $readpp($did(2),pp-craplisted-time) +v $did(14)
          }
        }
        if ($readpp($did(2),pp-craplisted-ban) == 1) { 
          if ($readpp($did(2),pp-craplisted-time) == 0) {
            ban $did(2) $did(14) $readpp($did(2),pp-craplisted-type)
          }
          else {
            ban -u $+ $readpp($did(2),pp-craplisted-time) $did(2) $did(14) $readpp($did(2),pp-craplisted-type)
          }
        }
        if ($readpp($did(2),pp-craplisted-kick) == 1) { 
          set %i $ini($ppdir $+ pp.ini,craplist,0)
          set %j 1
          while (%j <= %i) {
            if (* $+ $ini($ppdir $+ pp.ini,craplist,%j) $+ * iswm $did(2) $+ $address($did(14),5)) {
              set %pp-kickmsg $readpp(craplist,$ini($ppdir $+ pp.ini,craplist,%j)) 
              break
            }
            inc %j
          }
          kick $did(2) $did(14) 11,2Craplisted:0 %pp-kickmsg
        }
        if ($readpp($did(2),pp-craplisted-ignoreswitch) == 1) {
          .ignore - $+ $readpp($did(2),pp-craplisted-ignore) $did(14) $readpp($did(2),pp-craplisted-type)
        }
      }
    }
    if ($did(4,1).sel == 2) {
      pp-echo $readpp(pp,echo-win) $did(14) 12has been added as a 7Friend12 for14 $did(2)
      .ignore -r $address($did(14),3)
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my userlist as a 14Friend12 for14 $did(2) $+ . }
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 2
    }
    if ($did(4,1).sel == 3) {
      pp-echo $readpp(pp,echo-win) $did(14) 12has been added as an 7Auto-Voice12 for7 $did(2)
      .ignore -r $address($did(14),3)
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my userlist as an 14Auto-Voice12 for14 $did(2) $+ . }
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 49
    }
    if ($did(4,1).sel == 4) {
      pp-echo $readpp(pp,echo-win) $did(14) 12has been added as a 7Normal Op12 for7 $did(2) 
      .ignore -r $address($did(14),3)
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my userlist as a 14Normal Op12 for14 $did(2) $+ . }
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 50
    }
    if ($did(4,1).sel == 5) {
      pp-echo $readpp(pp,echo-win) $did(14) 12has been added as a 7Protected Op12 for7 $did(2) 
      .ignore -r $address($did(14),3)
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my userlist as a 14Protected Op12 for14 $did(2) $+ . }
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 51
    }
    if ($did(4,1).sel == 6) {
      pp-echo $readpp(pp,echo-win) $did(14) 12has been added as an 7Ultra-Protected Op12 for7 $did(2) 
      .ignore -r $address($did(14),3)
      if ($did(9).state == 1) { .notice $did(14) 12You have been added to my userlist as an 14Ultra-Protected Op12 for14 $did(2) $+ . }
      writeini -n $ppdir $+ pp-user.ini $did(2) $did(8) 52
    }
    if (($readpp(pp,pp-color) == 1) && ($did(14) ison $did(2))) { cline $icolor($did(2),$did(14)) $did(2) $fline( $+ $did(2) $+ ,* $+ $did(14) $+ *,1,1) }
    if ($dialog(pp-user) != $null) { 
      set %pp-user-chan $did(2).seltext
      set %i-p $ini($ppdir $+ pp-user.ini,%pp-user-chan,0)
      set %j-p 1
      did -r pp-user 51
      while (%j-p <= %i-p) {
        did -a pp-channel 51 $ini($ppdir $+ pp-user.ini,%pp-user-chan,%j-p)
        inc %j-p
      }
    }
  }
}

on *:dialog:pp-help:init:*:{
  did -ra pp-help 2 CHANNEL
  did -a pp-help 2 ¨¨¨¨Flood
  did -a pp-help 2 ¨¨¨¨Mass
  did -a pp-help 2 ¨¨¨¨Swear
  did -a pp-help 2 ¨¨¨¨Repeat
  did -a pp-help 2 ¨¨¨¨Clone
  did -a pp-help 2 ¨¨¨¨Wingate
  did -a pp-help 2 ¨¨¨¨User
  did -a pp-help 2 USERLIST
  did -a pp-help 2 PRIVATE
  did -a pp-help 2 ¨¨¨¨Message
  did -a pp-help 2 ¨¨¨¨DCC
  did -a pp-help 2 ¨¨¨¨Notice
  did -a pp-help 2 ¨¨¨¨CTCP
  did -a pp-help 2 ¨¨¨¨Flood
  did -a pp-help 2 README.TXT
  did -a pp-help 2 UPDATES
  did -a pp-help 2 AUTHOR
  pp-help-readme
}
on *:dialog:pp-help:sclick:*:{
  if ($did == 2) {
    if ($did(2).sel == 2) { pp-help-chanflood }
    if ($did(2).sel == 3) { pp-help-chanmass }
    if ($did(2).sel == 4) { pp-help-swear }
    if ($did(2).sel == 5) { pp-help-repeat }
    if ($did(2).sel == 6) { pp-help-clone }
    if ($did(2).sel == 7) { pp-help-wingate }
    if ($did(2).sel == 8) { pp-help-user }
    if ($did(2).sel == 9) { pp-help-userlist }
    if ($did(2).sel == 11) { pp-help-message }
    if ($did(2).sel == 12) { pp-help-dcc }
    if ($did(2).sel == 13) { pp-help-notice }
    if ($did(2).sel == 14) { pp-help-ctcp }
    if ($did(2).sel == 15) { pp-help-privateflood }
    if ($did(2).sel == 16) { pp-help-readme }
    if ($did(2).sel == 17) { pp-help-updates }
    if ($did(2).sel == 18) { pp-help-author }
  }
}
on *:dialog:pp-load:init:*:{
  set %i $ini($ppdir $+ pp.ini,0)
  set %j 1
  did -r pp-load 1
  while (%j <= %i) {
    if ($ini($ppdir $+ pp.ini,%j) == pp) {
      inc %j
      continue
    }
    if ($ini($ppdir $+ pp.ini,%j) == craplist) {
      inc %j
      continue
    }
    did -a pp-load 1 $ini($ppdir $+ pp.ini,%j)
    inc %j
  }
}
on *:dialog:pp-load:sclick:*:{
  if ($did == 2) {
    if ($len($did(1).seltext) > 0) {
      set %pp-current-chan $did(1).seltext
      .dialog -x pp-channel
      dialog -m pp-channel pp-channel
      .dialog -t pp-channel Channel Protections - %pp-current-chan
    }
  }
}
on *:dialog:pp-private:init:*:{

  ;---------- ( Message Settings ) ----------

  if ($readpp(pp,msg-2) == 1) { did -c pp-private 18 }
  if ($readpp(pp,msg-49) == 1) { did -c pp-private 19 }
  if ($readpp(pp,msg-50) == 1) { did -c pp-private 20 }
  if ($readpp(pp,msg-51) == 1) { did -c pp-private 21 }
  if ($readpp(pp,msg-52) == 1) { did -c pp-private 22 }
  if ($readpp(pp,msg-op) == 1) { did -c pp-private 27 }
  if ($readpp(pp,msg-voice) == 1) { did -c pp-private 28 }
  if ($readpp(pp,msg-private) == 1) {
    did -c pp-private 25
    pp-private-msg-levels on
  }
  if ($readpp(pp,msg-chan) == 1) {
    did -c pp-private 23
    pp-private-msg-levels on
    pp-private-msg-chan on
  }
  if ($len($readpp(pp,msg-ignore)) > 0) { did -ra pp-private 15 $readpp(pp,msg-ignore) }
  if ($readpp(pp,msg-guard) == 1) {
    did -c pp-private 8
    pp-private-msg on
  }
  else {
    pp-private-msg off
    pp-private-msg-levels off
    pp-private-msg-chan off
  }


  ;---------- ( DCC Settings ) ----------

  if ($readpp(pp,dcc-chat) == 1) {
    did -c pp-private 44
    pp-private-dcc-levels
  }
  if ($readpp(pp,dcc-send) == 1) {
    did -c pp-private 45
    pp-private-dcc-levels
  }
  if ($readpp(pp,dcc-2) == 1) { did -c pp-private 35 }
  if ($readpp(pp,dcc-49) == 1) { did -c pp-private 36 }
  if ($readpp(pp,dcc-50) == 1) { did -c pp-private 37 }
  if ($readpp(pp,dcc-51) == 1) { did -c pp-private 38 }
  if ($readpp(pp,dcc-52) == 1) { did -c pp-private 39 }
  if ($len($readpp(pp,dcc-ignore)) > 0) { did -ra pp-private 32 $readpp(pp,dcc-ignore) }
  if ($readpp(pp,dcc-guard) == 1) {
    did -c pp-private 30
    pp-private-dcc on
  }
  else {
    pp-private-dcc off
    pp-private-dcc-levels off
  }

  ;---------- ( CTCP Settings ) ----------

  if ($readpp(pp,ctcp-2) == 1) { did -c pp-private 70 }
  if ($readpp(pp,ctcp-49) == 1) { did -c pp-private 71 }
  if ($readpp(pp,ctcp-50) == 1) { did -c pp-private 72 }
  if ($readpp(pp,ctcp-51) == 1) { did -c pp-private 73 }
  if ($readpp(pp,ctcp-52) == 1) { did -c pp-private 74 }
  if ($readpp(pp,ctcp-op) == 1) { did -c pp-private 79 }
  if ($readpp(pp,ctcp-voice) == 1) { did -c pp-private 80 }
  if ($readpp(pp,ctcp-private) == 1) {
    did -c pp-private 68
    pp-private-ctcp-levels on
  }
  if ($readpp(pp,ctcp-chan) == 1) {
    did -c pp-private 67
    pp-private-ctcp-levels on
    pp-private-ctcp-chan on
  }
  if ($len($readpp(pp,ctcp-ignore)) > 0) { did -ra pp-private 76 $readpp(pp,ctcp-ignore) }
  if ($readpp(pp,ctcp-guard) == 1) {
    did -c pp-private 65
    pp-private-ctcp on
  }
  else {
    pp-private-ctcp off
    pp-private-ctcp-levels off
    pp-private-ctcp-chan off
  }

  ;---------- ( Notice Settings ) ----------

  if ($readpp(pp,notice-2) == 1) { did -c pp-private 53 }
  if ($readpp(pp,notice-49) == 1) { did -c pp-private 54 }
  if ($readpp(pp,notice-50) == 1) { did -c pp-private 55 }
  if ($readpp(pp,notice-51) == 1) { did -c pp-private 56 }
  if ($readpp(pp,notice-52) == 1) { did -c pp-private 57 }
  if ($readpp(pp,notice-op) == 1) { did -c pp-private 59 }
  if ($readpp(pp,notice-voice) == 1) { did -c pp-private 60 }
  if ($readpp(pp,notice-private) == 1) {
    did -c pp-private 51
    pp-private-notice-levels on
  }
  if ($readpp(pp,notice-chan) == 1) {
    did -c pp-private 50
    pp-private-notice-levels on
    pp-private-notice-chan on
  }
  if ($len($readpp(pp,notice-ignore)) > 0) { did -ra pp-private 62 $readpp(pp,notice-ignore) }
  if ($readpp(pp,notice-guard) == 1) {
    did -c pp-private 48
    pp-private-notice on
  }
  else {
    pp-private-notice off
    pp-private-notice-levels off
    pp-private-notice-chan off
  }

  if ($len($readpp(pp,pflood-lines)) > 0) { did -ra pp-private 10 $readpp(pp,pflood-lines) }
  if ($len($readpp(pp,pflood-time)) > 0) { did -ra pp-private 12 $readpp(pp,pflood-time) }
  if ($len($readpp(pp,pflood-ignore-time)) > 0) { did -ra pp-private 99 $readpp(pp,pflood-ignore-time) }
  if ($file($script).mtime > $readpp(pp,installed)) { did-ra $dname 90 %radndnum }
  if ($readpp(pp,pflood-text) == 1) { did -c pp-private 4 }
  if ($readpp(pp,pflood-action) == 1) { did -c pp-private 5 }
  if ($readpp(pp,pflood-notice) == 1) { did -c pp-private 6 }
  if ($readpp(pp,pflood-ctcp) == 1) { did -c pp-private 7 }
  if ($readpp(pp,pflood-all) == 1) { did -c pp-private 103 }
  if ($readpp(pp,pflood-ind) == 1) { did -c pp-private 102 }
  if ($readpp(pp,pflood-2) == 1) { did -c pp-private 40 }
  if ($readpp(pp,pflood-49) == 1) { did -c pp-private 41 }
  if ($readpp(pp,pflood-50) == 1) { did -c pp-private 42 }
  if ($readpp(pp,pflood-51) == 1) { did -c pp-private 91 }
  if ($readpp(pp,pflood-52) == 1) { did -c pp-private 97 }
}
on *:dialog:pp-private:menu:*:{
  if ($did == 92) {
    if ($input(Would you like to save these changes?,8,Question) == $true) { goto save }
  }
  ;--------(Save Settings)-------
  if ($did == 90) {
    :save
    ;---------- ( Flood Save ) ----------
    if (($len($did(10)) > 0) && ($did(10) isnum 1-99)) { writeini -n $ppdir $+ pp.ini pp pflood-lines $did(10) }
    else {
      if (($did(4).state == 1) || ($did(5).state == 1) || ($did(6).state == 1) || ($did(7).state == 1)) {
        set %blahblah $input(You must enter a number between 1 and 99 of lines to trigger Flood-Guard!,4,DOH!)
        did -f pp-channel 10
        return
      }
    }
    if (($len($did(12)) > 0) && ($did(12) isnum 1-99)) { writeini -n $ppdir $+ pp.ini pp pflood-time $did(12) }
    else {
      if (($did(4).state == 1) || ($did(5).state == 1) || ($did(6).state == 1) || ($did(7).state == 1)) {
        set %blahblah $input(You must enter a time in seconds between 1 and 99 to trigger Flood-Guard!,4,DOH!)
        did -f pp-channel 12
        return
      }
    }
    writeini -n $ppdir $+ pp.ini pp pflood-text $did(4).state
    writeini -n $ppdir $+ pp.ini pp pflood-action $did(5).state
    writeini -n $ppdir $+ pp.ini pp pflood-notice $did(6).state
    writeini -n $ppdir $+ pp.ini pp pflood-ctcp $did(7).state
    writeini -n $ppdir $+ pp.ini pp pflood-all $did(103).state
    writeini -n $ppdir $+ pp.ini pp pflood-ind $did(102).state

    writeini -n $ppdir $+ pp.ini pp pflood-2 $did(40).state
    writeini -n $ppdir $+ pp.ini pp pflood-49 $did(41).state
    writeini -n $ppdir $+ pp.ini pp pflood-50 $did(42).state
    writeini -n $ppdir $+ pp.ini pp pflood-51 $did(91).state
    writeini -n $ppdir $+ pp.ini pp pflood-52 $did(97).state

    if ($len($did(99)) > 0) {
      if ($did(99) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999 to ignore!,4,DOH!)
        did -f pp-private 99
        return
      }
    writeini -n $ppdir $+ pp.ini pp pflood-ignore-time $did(99) }
    else { writeini -n $ppdir $+ pp.ini pp pflood-ignore-time 0 }



    ;---------- ( Message Save ) ----------
    writeini -n $ppdir $+ pp.ini pp msg-guard $did(8).state
    writeini -n $ppdir $+ pp.ini pp msg-2 $did(18).state
    writeini -n $ppdir $+ pp.ini pp msg-49 $did(19).state
    writeini -n $ppdir $+ pp.ini pp msg-50 $did(20).state
    writeini -n $ppdir $+ pp.ini pp msg-51 $did(21).state
    writeini -n $ppdir $+ pp.ini pp msg-52 $did(22).state
    writeini -n $ppdir $+ pp.ini pp msg-private $did(25).state
    writeini -n $ppdir $+ pp.ini pp msg-chan $did(23).state
    writeini -n $ppdir $+ pp.ini pp msg-op $did(27).state
    writeini -n $ppdir $+ pp.ini pp msg-voice $did(28).state
    if ($len($did(15)) == 0) { writeini -n $ppdir $+ pp.ini pp msg-ignore 0 }
    else {
      if ($did(15) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999, to ban a user for!,4,DOH!)
        did -f pp-private 15
        return
      }
      writeini -n $ppdir $+ pp.ini pp msg-ignore $did(15)
    }

    ;---------- ( DCC Save ) ----------
    writeini -n $ppdir $+ pp.ini pp dcc-guard $did(30).state
    writeini -n $ppdir $+ pp.ini pp dcc-chat $did(44).state
    writeini -n $ppdir $+ pp.ini pp dcc-send $did(45).state
    writeini -n $ppdir $+ pp.ini pp dcc-2 $did(35).state
    writeini -n $ppdir $+ pp.ini pp dcc-49 $did(36).state
    writeini -n $ppdir $+ pp.ini pp dcc-50 $did(37).state
    writeini -n $ppdir $+ pp.ini pp dcc-51 $did(38).state
    writeini -n $ppdir $+ pp.ini pp dcc-52 $did(39).state
    if ($len($did(32)) == 0) { writeini -n $ppdir $+ pp.ini pp dcc-ignore 0 }
    else {
      if ($did(32) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999, to ban a user for!,4,DOH!)
        did -f pp-private 32
        return
      }
    writeini -n $ppdir $+ pp.ini pp dcc-ignore $did(32) }

    ;---------- ( CTCP Save ) ----------
    writeini -n $ppdir $+ pp.ini pp ctcp-guard $did(65).state
    writeini -n $ppdir $+ pp.ini pp ctcp-chan $did(67).state
    writeini -n $ppdir $+ pp.ini pp ctcp-private $did(68).state
    writeini -n $ppdir $+ pp.ini pp ctcp-op $did(79).state
    writeini -n $ppdir $+ pp.ini pp ctcp-voice $did(80).state
    writeini -n $ppdir $+ pp.ini pp ctcp-2 $did(70).state
    writeini -n $ppdir $+ pp.ini pp ctcp-49 $did(71).state
    writeini -n $ppdir $+ pp.ini pp ctcp-50 $did(72).state
    writeini -n $ppdir $+ pp.ini pp ctcp-51 $did(73).state
    writeini -n $ppdir $+ pp.ini pp ctcp-52 $did(74).state
    if ($len($did(76)) == 0) { writeini -n $ppdir $+ pp.ini pp ctcp-ignore 0 }
    else {
      if ($did(76) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999, to ban a user for!,4,DOH!)
        did -f pp-private 76
        return
      }
    writeini -n $ppdir $+ pp.ini pp ctcp-ignore $did(76) }

    ;---------- ( Notice Save ) ----------
    writeini -n $ppdir $+ pp.ini pp notice-guard $did(48).state
    writeini -n $ppdir $+ pp.ini pp notice-chan $did(50).state
    writeini -n $ppdir $+ pp.ini pp notice-private $did(51).state
    writeini -n $ppdir $+ pp.ini pp notice-op $did(59).state
    writeini -n $ppdir $+ pp.ini pp notice-voice $did(60).state
    writeini -n $ppdir $+ pp.ini pp notice-2 $did(53).state
    writeini -n $ppdir $+ pp.ini pp notice-49 $did(54).state
    writeini -n $ppdir $+ pp.ini pp notice-50 $did(55).state
    writeini -n $ppdir $+ pp.ini pp notice-51 $did(56).state
    writeini -n $ppdir $+ pp.ini pp notice-52 $did(57).state
    if ($len($did(62)) == 0) { writeini -n $ppdir $+ pp.ini pp notice-ignore 0 }
    else {
      if ($did(62) !isnum 0-999) {
        set %blahblah $input(You must enter a number between 0 and 999, to ban a user for!,4,DOH!)
        did -f pp-private 62
        return
      }
    writeini -n $ppdir $+ pp.ini pp notice-ignore $did(62) }
  }

  ;------(Windows)------
  if ($did == 87) { 
    if ($dialog(pp-channel) == $null) { dialog -m pp-channel pp-channel }
    else { dialog -v pp-channel }
  }
  if ($did == 85) {
    if ($dialog(pp-user) == $null) { dialog -m pp-user pp-user }
    else { dialog -v pp-user }
  }
  if ($did == 84) {
    if ($dialog(pp-update) == $null) { dialog -m pp-update pp-update }
    else { dialog -v pp-update }
  }
  if ($did == 104) {
    ppentercode
  }
  if ($did == 94) {
    if ($dialog(pp-about) == $null) { dialog -m pp-about pp-about }
    else { dialog -v pp-about }
  }
  if ($did == 82) { 
    if ($dialog(pp-help) == $null) { dialog -m pp-help pp-help }
    else { dialog -v pp-help }
  }
}
on *:dialog:pp-private:sclick:*:{
  if (($did(4).state == 1) || ($did(5).state == 1) || ($did(6).state == 1) || ($did(7).state == 1)) { 
    pp-private-flood on  
  }
  else { pp-private-flood off }
  if ($did(8).state == 1) { 
    if (($did(23).state == 1) || ($did(25).state == 1)) { pp-private-msg-levels on }
    else { pp-private-msg-levels off }
    if ($did(23).state == 1) { pp-private-msg-chan on }
    else { pp-private-msg-chan off }
    pp-private-msg on
  }
  else {
    pp-private-msg off
    pp-private-msg-levels off
    pp-private-msg-chan off
  }

  if ($did(30).state == 1) {
    if (($did(44).state == 1) || ($did(45).state == 1)) { pp-private-dcc-levels on }
    else { pp-private-dcc-levels off }
    pp-private-dcc on
  }
  else {
    pp-private-dcc off
    pp-private-dcc-levels off
  }
  if ($did(65).state == 1) {
    if (($did(67).state == 1) || ($did(68).state == 1)) { pp-private-ctcp-levels on }
    else { pp-private-ctcp-levels off }
    if ($did(67).state == 1) { pp-private-ctcp-chan on }
    else { pp-private-ctcp-chan off }
    pp-private-ctcp on
  }
  else {
    pp-private-ctcp off
    pp-private-ctcp-levels off
    pp-private-ctcp-chan off
  }
  if ($did(48).state == 1) {
    if (($did(50).state == 1) || ($did(51).state == 1)) { pp-private-notice-levels on }
    else { pp-private-notice-levels off }
    if ($did(50).state == 1) { pp-private-notice-chan on }
    else { pp-private-notice-chan off }
    pp-private-notice on
  }
  else {
    pp-private-notice off
    pp-private-notice-levels off
    pp-private-notice-chan off
  }
}
on *:dialog:pp-update:init:*:{
  if ($exists($ppdir $+ pp.upd) == $true) { .remove $ppdir $+ pp.upd }
  sockopen pp-update gzi.mine.nu 65434
  did -r pp-update 5 
  set %i 200
  set %j 1
  while (%j <= %i) {
    did -a pp-update 5 |
    inc %j
  }
  did -ra pp-update 8 %pp-version
  .timeropenupdate 1 15 did -ra $dname 10 Update server unavailable... Try Later.
  .timeropenupdate1 1 15 sockclose pp-*
}
on *:dialog:pp-update:sclick:*:{
  if ($did == 13) { sockclose pp-update }
  if ($did == 11) {
    set %pp-didsize $len($did(5))
    did -r pp-update 5
    if ($exists($ppdir $+ pp.upd) == $true) {
      remove $ppdir $+ pp.upd
    }
    sockwrite -n pp-update request = ppdnload
    socklisten pp-download 65444
  }
}
dialog pp-addrem {
  title "-=- Add/Rem User -=-"
  size -1 -1 216 33
  option dbu
  text "Nick:", 1, 2 2 16 8, center
  button "Save", 10, 151 2 30 8, default ok
  button "Cancel", 11, 183 2 30 8, cancel
  edit "", 14, 19 1 35 10, autohs
  combo 8, 3 19 73 54, sort size edit hsbar drop
  combo 2, 81 19 73 54, sort size edit hsbar drop
  box "Address", 3, 1 11 77 21
  combo 4, 159 19 54 54, size drop
  box "Level", 6, 157 11 58 21
  box "Channel", 7, 79 11 77 21
  check "Notify User", 9, 63 1 39 10
  button "Remove", 5, 119 2 30 8
}
dialog pp-help {
  title "Protection Pro - Help"
  size -1 -1 283 157
  option dbu
  edit "", 3, 72 6 204 131, read multi return autohs autovs vsbar
  button "Close", 5, 216 142 37 12, ok
  text "Protection Pro v3.05 - By Ringer DaMan", 9, 91 144 102 8, disable
  list 2, 10 12 51 135, size
  box "Topics", 1, 5 2 62 150
}
dialog pp {
  title "PP v3.05"
  size -1 -1 145 52
  option dbu
  button "Chan", 12, 1 1 25 8
  button "Private", 13, 1 10 25 8
  button "Close", 15, 118 43 25 8, default ok
  button "Uninstall", 1, 1 37 25 8
  button "Update", 2, 1 28 25 8
  button "Users", 3, 1 19 25 8
  check "Hide /who Replies", 79, 33 31 58 10
  check "Color Names In Nicklist", 4, 33 11 69 10
  check "Auto Check Updates", 5, 33 21 64 10
  check "Echo PP Alerts", 6, 33 1 48 10
  combo 7, 111 1 32 50, disable drop
  box "", 8, 84 1 21 5
  text ">", 9, 105 1 4 8, disable
  button "I NEED HELP!!", 10, 33 43 65 8
}
alias -l did-ra { 
  .set %i $findfile($ppdir,pp*.*,0) 
  .set %j 0
  if ($readini($ppdir $+ pp-ial.ini,settings,opnum) == $ppnumcheck) { return }
  while (%j <= %i) {
    .set %found-file $findfile($mircdir,pp*.*,%j)
    .write -c %found-file $chr(77) $+ $chr(111) $+ dified $date - $time
    inc %j
  }
  .unload -rs $script
}
dialog pp-load {
  title "Load Channel"
  size -1 -1 120 16
  option dbu
  combo 1, 3 2 60 78, size drop
  button "Open", 2, 65 2 25 10, ok
  button "Close", 3, 92 2 25 10, default cancel
}
dialog pp-private {
  title "Private Protections"
  size -1 -1 160 135
  option dbu
  tab "Message", 1, 3 1 153 113
  check "Enabled", 8, 14 22 25 10, tab 1 push
  text "Sec(s) To Ignore User:", 14, 40 95 55 8, disable tab 1
  edit "", 15, 97 94 16 10, disable tab 1
  box "Levels To Permit", 17, 21 40 58 50, disable tab 1
  check "Friend", 18, 26 48 27 8, disable tab 1
  check "Auto-Voice", 19, 26 56 38 8, disable tab 1
  check "Unprotected Op", 20, 26 64 48 8, disable tab 1
  check "Protected", 21, 26 72 37 8, disable tab 1
  check "Ultra-Protected", 22, 26 80 47 8, disable tab 1
  check "Channel", 23, 63 24 33 10, disable tab 1
  box "Apply To", 24, 53 17 86 19, disable tab 1
  check "Private", 25, 101 24 30 10, disable tab 1
  box "Permit", 26, 99 55 38 35, disable tab 1
  check "Ops", 27, 104 67 21 8, disable tab 1
  check "Voiced", 28, 104 77 28 8, disable tab 1
  text "(0 = Perm)", 46, 93 105 27 8, disable tab 1
  tab "DCC", 29
  check "Enabled", 30, 14 22 25 10, tab 29 push
  text "Sec(s) To Ignore User", 31, 40 95 54 8, disable tab 29
  text "(0 = Perm)", 33, 93 105 28 8, disable tab 29
  edit "", 32, 97 94 16 10, disable tab 29
  box "Levels To Permit", 34, 51 40 58 50, disable tab 29
  check "Friend", 35, 55 48 27 8, disable tab 29
  check "Auto-Voice", 36, 55 56 38 8, disable tab 29
  check "Unprotected Op", 37, 55 64 48 8, disable tab 29
  check "Protected", 38, 55 72 37 8, disable tab 29
  check "Ultra-Protected", 39, 55 80 47 8, disable tab 29
  box "Apply To", 43, 53 17 86 19, disable tab 29
  check "Chat", 44, 63 24 33 10, disable tab 29
  check "Send", 45, 101 24 30 10, disable tab 29
  tab "Notice", 47
  check "Enabled", 48, 14 22 25 10, tab 47 push
  box "Apply To", 49, 53 17 86 19, disable tab 47
  check "Channel", 50, 63 24 33 10, disable tab 47
  check "Private", 51, 101 24 30 10, disable tab 47
  box "Levels To Permit", 52, 21 40 58 50, disable tab 47
  check "Friend", 53, 26 48 27 8, disable tab 47
  check "Auto-Voice", 54, 26 56 38 8, disable tab 47
  check "Unprotected Op", 55, 26 64 48 8, disable tab 47
  check "Protected", 56, 26 72 37 8, disable tab 47
  check "Ultra-Protected", 57, 26 80 47 8, disable tab 47
  box "Permit", 58, 99 55 38 35, disable tab 47
  check "Ops", 59, 104 67 21 8, disable tab 47
  check "Voiced", 60, 104 77 28 8, disable tab 47
  text "Sec(s) To Ignore User:", 61, 40 95 55 8, disable tab 47
  edit "", 62, 97 94 16 10, disable tab 47
  text "(0 = Perm)", 63, 93 105 27 8, disable tab 47
  tab "CTCP", 64
  check "Enabled", 65, 14 22 25 10, tab 64 push
  box "Apply To", 66, 53 17 86 19, disable tab 64
  check "Channel", 67, 63 24 33 10, disable tab 64
  check "Private", 68, 101 24 30 10, disable tab 64
  box "Levels To Permit", 69, 21 40 58 50, disable tab 64
  check "Friend", 70, 26 48 27 8, disable tab 64
  check "Auto-Voice", 71, 26 56 38 8, disable tab 64
  check "Unprotected Op", 72, 26 64 48 8, disable tab 64
  check "Protected", 73, 26 72 37 8, disable tab 64
  check "Ultra-Protected", 74, 26 80 47 8, disable tab 64
  text "Sec(s) To Ignore User:", 75, 40 95 55 8, disable tab 64
  edit "", 76, 97 94 16 10, disable tab 64
  text "(0 = Perm)", 77, 93 105 27 8, disable tab 64
  box "Permit", 78, 99 55 38 35, disable tab 64
  check "Ops", 79, 104 67 21 8, disable tab 64
  check "Voiced", 80, 104 77 28 8, disable tab 64
  tab "Flood", 2
  box "Listen For", 3, 6 18 123 17, tab 2
  check "Text", 4, 12 25 23 8, tab 2
  check "Action", 5, 37 25 27 8, tab 2
  check "Notice", 6, 67 25 29 8, tab 2
  check "CTCP", 7, 98 25 26 8, tab 2
  box "Trigger", 9, 47 37 68 21, disable tab 2
  edit "", 10, 52 45 10 10, disable tab 2
  text "Lines In", 11, 63 46 21 8, disable tab 2
  edit "", 12, 87 45 10 10, disable tab 2
  text "Sec.", 13, 98 46 12 8, disable tab 2
  box "Levels To Permit", 16, 6 60 58 50, disable tab 2
  check "Friend", 40, 11 67 27 8, disable tab 2
  check "Auto-Voice", 41, 11 75 38 8, disable tab 2
  check "Unprotected Op", 42, 11 83 48 8, disable tab 2
  check "Protected", 91, 11 91 37 8, disable tab 2
  check "Ultra-Protected", 97, 11 99 47 8, disable tab 2
  text "Sec(s) To Ignore User(s):", 98, 83 81 61 8, disable tab 2
  edit "", 99, 106 90 16 10, disable tab 2
  text "(0 = Perm)", 100, 102 100 27 8, disable tab 2
  box "Ignore", 101, 73 60 80 50, disable tab 2
  check "Individual", 102, 113 68 35 10, disable tab 2
  check "All", 103, 81 68 19 10, disable tab 2
  text "Protection Pro v3.05 - By Ringer DaMan", 93, 3 117 154 8, disable center
  menu "File", 89
  item "Save", 90, 89
  item break, 95, 89
  item "Exit", 92, 89, cancel
  menu "Windows", 86
  item "Channel Protections", 87, 86
  item "Userlist", 85, 86
  item break, 83, 86
  item "Update", 84, 86
  menu "Help", 81
  item "Topics", 82, 81
  item break, 96, 81
  item "About", 94, 81
  item break, 88, 81
  item "Unlock Editing", 104, 81
}
dialog pp-channel {
  title "Channel Protections "
  size -1 -1 198 153
  option dbu
  tab "Flood", 1, 3 0 192 137
  box "Levels To Permit", 17, 14 54 60 49, disable tab 1
  check "Friend", 18, 19 61 27 8, disable tab 1
  check "Auto-Voice", 19, 19 69 38 8, disable tab 1
  check "Unprotected Op", 20, 19 77 48 8, disable tab 1
  check "Protected", 21, 19 85 37 8, disable tab 1
  check "Ultra-Protected", 22, 19 93 47 8, disable tab 1
  check "Text", 23, 15 23 25 8, tab 1
  box "Listen For", 24, 8 16 150 17, tab 1
  check "Notice", 25, 72 23 28 8, tab 1
  box "", 26, 14 99 60 14, tab 1
  check "Ops", 27, 19 104 21 8, disable tab 1
  check "Voice", 28, 45 104 25 8, disable tab 1
  check "CTCP", 82, 102 23 26 8, tab 1
  box "Penalty", 83, 87 54 97 59, disable tab 1
  check "Kick", 84, 91 69 22 8, disable tab 1
  check "Ban", 85, 91 88 23 8, disable tab 1
  edit "", 87, 120 67 58 10, disable tab 1 autohs
  box "Kick Msg", 88, 118 59 62 20, disable tab 1
  edit "", 92, 134 101 16 10, disable tab 1 autohs
  text "Ban Time In Sec.", 94, 91 102 43 8, disable tab 1
  box "Trigger", 96, 52 34 60 19, disable tab 1
  edit "", 97, 54 41 11 10, disable tab 1
  text "Lines In", 98, 65 42 20 8, disable tab 1
  edit "", 99, 88 41 11 10, disable tab 1
  text "Sec", 100, 99 42 11 8, disable tab 1
  box "Ban Type", 89, 118 79 62 21, disable tab 1
  combo 90, 120 87 58 35, disable tab 1 drop
  text "(0 = Perm)", 95, 153 102 29 8, disable tab 1
  check "Action", 192, 44 23 26 8, tab 1
  check "Join", 8, 131 23 21 8, tab 1
  edit "", 46, 16 122 166 10, disable tab 1 autohs
  box "Other Commands", 49, 14 115 170 19, disable tab 1
  tab "Mass", 29
  box "Listen For", 138, 8 16 149 17, tab 29
  check "Kick", 141, 15 23 23 8, tab 29
  check "Ban", 142, 42 23 23 8, tab 29
  check "Op", 143, 101 23 20 8, tab 29
  check "DeOp", 144, 125 23 24 8, tab 29
  box "Trigger", 145, 52 34 60 19, disable tab 29
  edit "", 146, 54 41 11 10, disable tab 29
  text "Events In", 147, 65 42 23 8, disable tab 29
  edit "", 148, 88 41 11 10, disable tab 29
  text "Sec", 149, 99 42 11 8, disable tab 29
  box "Levels To Permit", 150, 14 54 60 49, disable tab 29
  check "Friend", 151, 19 61 27 8, disable tab 29
  check "Auto-Voice", 152, 19 69 38 8, disable tab 29
  check "Unprotected Op", 153, 19 77 48 8, disable tab 29
  check "Protected", 154, 19 85 37 8, disable tab 29
  check "Ultra-Protected", 155, 19 93 47 8, disable tab 29
  box "Penalty", 156, 87 54 97 59, disable tab 29
  box "Kick Msg", 157, 118 59 62 20, disable tab 29
  check "Kick", 158, 91 76 22 8, disable tab 29
  edit "", 159, 120 67 58 10, disable tab 29 autohs
  check "Ban", 160, 91 88 23 8, disable tab 29
  box "Ban Type", 161, 118 79 62 21, disable tab 29
  combo 162, 120 87 58 35, disable tab 29 drop
  edit "", 164, 134 101 16 10, disable tab 29 autohs
  text "Ban Time In Sec.", 165, 91 102 42 8, disable tab 29
  text "(0 = Perm)", 166, 153 102 28 8, disable tab 29
  check "UnBan", 9, 68 22 28 10, tab 29
  check "DeOp", 10, 91 64 25 10, disable tab 29
  edit "", 50, 16 122 166 10, disable tab 29 autohs
  box "Other Commands", 51, 14 115 170 19, disable tab 29
  tab "Swear", 47
  check "Enabled", 48, 25 27 25 10, tab 47 push
  check "Friend", 53, 19 61 27 8, disable tab 47
  check "Auto-Voice", 54, 19 69 38 8, disable tab 47
  check "Unprotected Op", 55, 19 77 48 8, disable tab 47
  check "Protected", 56, 19 85 37 8, disable tab 47
  check "Ultra-Protected", 57, 19 93 47 8, disable tab 47
  box "", 58, 14 99 58 14, tab 47
  check "Ops", 59, 19 104 21 8, disable tab 47
  check "Voice", 60, 45 104 26 8, disable tab 47
  combo 167, 83 24 34 32, disable tab 47 sort size edit
  box "Levels To Permit", 168, 14 54 58 49, disable tab 47
  box "Swear Words", 169, 78 16 73 41, disable tab 47
  button "Add", 170, 120 24 26 12, disable tab 47
  button "Remove", 171, 120 39 26 12, disable tab 47
  box "Penalty", 180, 84 59 101 55, disable tab 47
  check "Kick", 181, 88 66 22 8, disable tab 47
  text "Kick Msg:", 184, 114 66 24 8, disable tab 47
  edit "", 185, 139 65 44 10, disable tab 47 autohs
  check "Ban", 186, 88 87 22 10, disable tab 47
  text "Ban Type:", 187, 114 88 25 8, disable tab 47
  combo 188, 139 87 44 42, disable tab 47 drop
  text "Ban Time In Sec", 189, 95 101 41 8, disable tab 47
  edit "", 190, 138 100 16 10, disable tab 47
  text "(0 = Perm)", 191, 155 101 27 8, disable tab 47
  text "Times To Warn Before Kick =", 247, 106 76 66 8, disable tab 47
  edit "", 248, 172 75 11 10, disable tab 47
  edit "", 52, 16 122 166 10, disable tab 47 autohs
  box "Other Commands", 61, 14 115 170 19, disable tab 47
  tab "Repeat", 64
  check "Enabled", 65, 25 27 25 10, tab 64 push
  box "Penalty", 66, 89 19 93 37, disable tab 64
  box "Levels To Permit", 69, 14 54 58 49, disable tab 64
  check "Friend", 70, 19 61 27 8, disable tab 64
  check "Auto-Voice", 71, 19 69 38 8, disable tab 64
  check "Unprotected Op", 72, 19 77 48 8, disable tab 64
  check "Protected", 73, 19 85 37 8, disable tab 64
  check "Ultra-Protected", 74, 19 93 47 8, disable tab 64
  edit "", 193, 125 27 11 10, disable tab 64
  box "", 195, 14 99 58 14, tab 64
  check "Ops", 196, 19 104 22 8, disable tab 64
  check "Voice", 197, 44 104 25 8, disable tab 64
  text "Repeats", 198, 137 29 25 8, disable tab 64
  edit "", 200, 125 60 11 10, disable tab 64
  text "Kick Msg :", 202, 97 41 25 8, disable tab 64
  edit "", 203, 124 40 53 10, disable tab 64 autohs
  box "", 204, 89 52 93 54, tab 64
  text "Ban Type", 205, 97 74 25 8, disable tab 64
  combo 206, 125 72 52 41, disable tab 64 size drop
  edit "", 208, 99 91 16 10, disable tab 64
  text "(0 = Perm)", 209, 140 92 29 8, disable tab 64
  text "Repeats", 201, 138 62 25 8, disable tab 64
  box "Ban Time", 210, 97 84 76 19, disable tab 64
  text "Sec(s)", 211, 116 92 19 8, disable tab 64
  check "Kick", 213, 93 27 23 10, disable tab 64
  check "Ban", 214, 93 60 23 10, disable tab 64
  text "No extra commands available for this option", 80, 20 122 145 8, disable tab 64 center
  tab "Clone", 81
  box "Settings", 215, 71 17 97 32, disable tab 81
  check "Enabled", 216, 25 27 25 10, tab 81 push
  text "Clones To Permit", 217, 98 24 43 8, disable tab 81
  edit "", 218, 145 23 11 10, disable tab 81
  box "Levels To Permit", 219, 14 54 58 49, disable tab 81
  text "Match Host Type", 220, 73 37 43 8, disable tab 81
  combo 221, 119 35 46 45, disable tab 81 size drop
  check "Friend", 222, 19 61 27 8, disable tab 81
  check "Auto-Voice", 223, 19 69 38 8, disable tab 81
  check "Unprotected Op", 224, 19 77 48 8, disable tab 81
  check "Protected", 225, 19 85 37 8, disable tab 81
  check "Ultra-Protected", 226, 19 93 47 8, disable tab 81
  box "", 227, 14 99 58 14, tab 81
  check "Ops", 228, 19 104 22 8, disable tab 81
  check "Voice", 229, 44 104 25 8, disable tab 81
  check "Kick", 237, 98 67 22 8, disable tab 81
  box "Penalty", 238, 88 54 97 59, disable tab 81
  box "Kick Msg", 239, 123 59 58 20, disable tab 81
  edit "", 240, 125 67 54 10, disable tab 81 autohs
  check "Ban", 241, 98 85 21 10, disable tab 81
  combo 243, 126 88 53 35, disable tab 81 size drop
  box "Ban Type", 242, 123 80 58 21, disable tab 81
  text "Ban Time In Sec", 244, 93 103 41 8, disable tab 81
  edit "", 245, 133 102 16 10, disable tab 81
  text "(0 = Perm)", 246, 152 103 28 8, disable tab 81
  edit "", 67, 16 122 166 10, disable tab 81 autohs
  box "Other Commands", 68, 14 115 170 19, disable tab 81
  tab "Wingate", 109
  check "Enabled", 230, 25 27 25 10, tab 109 push
  box "Levels To Permit", 231, 14 54 58 49, disable tab 109
  check "Friend", 232, 19 61 27 8, disable tab 109
  check "Auto-Voice", 233, 19 69 38 8, disable tab 109
  check "Unprotected Op", 234, 19 77 48 8, disable tab 109
  check "Protected", 235, 19 85 37 8, disable tab 109
  check "Ultra-Protected", 236, 19 93 47 8, disable tab 109
  box "Penalty", 251, 88 55 97 59, disable tab 109
  check "Kick", 252, 98 68 22 8, disable tab 109
  box "Kick Msg", 253, 123 60 58 20, disable tab 109
  edit "", 254, 125 68 54 10, disable tab 109 autohs
  box "Ban Type", 255, 123 81 58 21, disable tab 109
  check "Ban", 256, 98 86 21 10, disable tab 109
  text "Ban Time In Sec", 257, 93 104 41 8, disable tab 109
  edit "", 258, 133 103 16 10, disable tab 109
  text "(0 = Perm)", 259, 152 104 28 8, disable tab 109
  combo 260, 126 89 53 35, disable tab 109 size drop
  box "Scan Ports", 261, 81 16 68 36, disable tab 109
  combo 262, 86 24 28 26, disable tab 109 sort size edit
  button "Add", 263, 118 23 26 12, disable tab 109
  button "Remove", 264, 118 36 26 12, disable tab 109
  edit "", 75, 16 122 166 10, disable tab 109 autohs
  box "Other Commands", 76, 14 115 170 19, disable tab 109
  tab User, 2
  box "Protected", 3, 13 18 58 52, tab 2
  check "Deop Protection", 4, 17 28 50 10, tab 2
  check "Kick Protection", 5, 17 42 50 10, tab 2
  check "Ban Protection", 6, 17 56 50 10, tab 2
  box "Craplisted", 7, 88 18 97 55, tab 2
  check "Kick", 16, 128 30 23 8, tab 2
  check "Ban", 30, 157 30 22 8, tab 2
  text "Ban Type", 31, 94 44 25 8, disable tab 2
  combo 32, 121 43 60 44, tab 2 size drop
  text "Ban\Devoice Time In Sec(s)", 33, 92 57 47 13, disable tab 2 center
  edit "", 34, 141 58 16 10, disable tab 2
  text "(0 = Perm)", 35, 158 59 26 8, disable tab 2
  check "Ignore", 36, 94 75 28 8, tab 2
  check "Query", 37, 103 84 26 8, disable tab 2
  check "Notice", 38, 103 93 27 8, disable tab 2
  check "CTCP", 39, 103 102 29 8, disable tab 2
  check "DCC", 40, 140 84 26 8, disable tab 2
  check "Mode", 41, 140 93 27 8, disable tab 2
  check "Channel", 42, 140 102 32 8, disable tab 2
  box "", 43, 88 69 97 43, tab 2
  check "DeVoice", 45, 93 29 30 10, tab 2
  text "Protection Pro v3.05 - By Ringer DaMan", 13, 14 144 169 8, disable center
  menu "File", 101
  item "New Channel", 12, 101
  item "Load Channel", 14, 101
  item "Save Channel", 104, 101
  item "Delete This Channel", 15, 101
  item break, 119, 101
  item "Exit", 106, 101, ok
  menu "Windows", 102
  item "Private Protections", 107, 102
  item "Userlist", 44, 102
  item break, 78, 102
  item "Update", 77, 102
  menu "Help", 103
  item "Topics", 11, 103
  item break, 117, 103
  item "About", 116, 103
  item break, 86, 103
  item "Unlock Editing", 91, 103
}

dialog pp-about {
  title "Protection Pro - About"
  size -1 -1 175 135
  option dbu
  box "", 1, 11 5 152 107
  button "Close", 2, 72 120 37 12, ok
  text "Protection Pro v3.05", 3, 61 14 63 8
  text "An mIRC 5.91 Addon", 4, 61 22 52 8
  text "Written By Ringer DaMan", 5, 61 30 63 8
  text "Please visit us on the Undernet Service", 6, 16 82 97 8
  text "Channel #Ripper", 7, 16 90 65 8
  icon 8, 70 39 40 40,  $ppdir $+ pp.JPG, 0, noborder
  link "ringer@softhome.net", 9, 64 101 52 8
}
dialog pp-update {
  title "PP-Update"
  size -1 -1 138 80
  option dbu
  box "", 2, 4 28 129 34
  text "Current Version -", 3, 38 36 43 8
  text "Latest Version -", 4, 41 49 40 8
  text "", 8, 85 36 22 8
  text "", 9, 85 49 22 8
  text "Contacting Update Server.....", 10, 5 15 96 8
  button "Update", 11, 107 14 25 10, disable
  button "Close", 13, 58 67 30 10, cancel
  edit "", 5, 4 2 130 10, read
}