All pastes #935784 Raw Edit

personal protection

public text v1 · immutable
·published 2008-03-09 22:16 UTC
rendered paste body
alias pp dialog -m pp pp
dialog pp {
  title "Personal Protection [/pp]"
  size -1 -1 150 83
  option dbu
  icon icons/Prot.ico, 0
  button "OK", 10, 99 69 47 12, ok
  tab "Deop", 2, 2 0 145 66
  box "Deop Protection:", 13, 4 15 140 47, tab 2
  check "When Deoped, MSG ChanServ OP Me, Deop Nick", 6, 7 23 132 10, tab 2
  check "When Deoped, MSG X OP Me, Deop Nick", 15, 7 36 129 10, tab 2
  check "When Deoped, MSG Q/L OP Me, Deop Nick", 20, 7 48 127 10, tab 2
  tab "Kick", 1
  box "Kick Protection:", 12, 4 15 140 47, tab 1
  check "When Kicked, Rejoin Normally, Deop/Kick Nick", 7, 7 23 129 10, tab 1
  check "When Kicked, Join Chan, MSG X OP Me, Kick Nick", 14, 7 36 132 10, tab 1
  check "When Kicked, Join Chan, MSG Q/L OP Me, Kick Nick", 19, 7 48 121 10, tab 1
  tab "Ban", 3
  box "Ban Protection:", 23, 4 15 140 47, tab 3
  check "When Banned, Unban Normally, Deop/Ban Nick", 8, 7 36 127 10, tab 3
  tab "Slap", 4
  check "When Slapped, Kick Nick", 9, 7 37 124 8, tab 4
  box "Slap Protection:", 5, 4 15 140 47, tab 4
  text "Deop/Kick/Ban/Slap Protection", 11, 4 72 80 8, disable
}

on *:dialog:pp:init:*:{
  if ( %deop = On ) { did -c pp 6 | .enable #deop } | else { did -u pp 6 | .disable #deop }
  if ( %kick = On ) { did -c pp 7 | .enable #kick } | else { did -u pp 7 | .disable #kick }
  if ( %ukick = On ) { did -c pp 14 | .enable #ukick } | else { did -u pp 14 | .disable #ukick }
  if ( %udeop = On ) { did -c pp 15 | .enable #udeop } | else { did -u pp 15 | .disable #udeop }
  if ( %qdeop = On ) { did -c pp 20 | .enable #qdeop } | else { did -u pp 20 | .disable #qdeop }
  if ( %qkick = On ) { did -c pp 19 | .enable #qkick } | else { did -u pp 19 | .disable #qkick }
  if ( %ban = On ) { did -c pp 8 | .enable #ban } | else { did -u pp 8 | .disable #ban }
  if ( %slap = On ) { did -c pp 9 | .enable #slap } | else { did -u pp 9 | .disable #slap }
}
on *:dialog:pp:sclick:*:{
  if ($did == 6) { if ($did($dname,$did).state == 1) { set %deop On | .enable #deop } | else { set %deop Off | .disable #deop } }
  if ($did == 7) { if ($did($dname,$did).state == 1) { set %kick On | .enable #kick } | else { set %kick Off | .disable #kick } }
  if ($did == 14) { if ($did($dname,$did).state == 1) { set %ukick On | .enable #ukick } | else { set %ukick Off | .disable #ukick } }
  if ($did == 15) { if ($did($dname,$did).state == 1) { set %udeop On | .enable #udeop } | else { set %udeop Off | .disable #udeop } }
  if ($did == 20) { if ($did($dname,$did).state == 1) { set %qdeop On | .enable #qdeop } | else { set %qdeop Off | .disable #qdeop } }
  if ($did == 19) { if ($did($dname,$did).state == 1) { set %qkick On | .enable #qkick } | else { set %qkick Off | .disable #qkick } }
  if ($did == 8) { if ($did($dname,$did).state == 1) { set %ban On | .enable #ban } | else { set %ban Off | .disable #ban } }
  if ($did == 9) { if ($did($dname,$did).state == 1) { set %slap On | .enable #slap } | else { set %slap Off | .disable #slap } }
}


#deop on
on 1:DEOP:#: {
  if ( $opnick == $me) && ( $nick != $me) {
    .ChanServ Op $chan $me
    if ( $nick == chanserv) { halt }
    else {
      .timer 1 2 /mode $chan -o $nick

    }
  }
  else { halt }
}
#deop end

#kick on
on 1:KICK:#: {
  if ( $knick == $me) && ( $nick != $me) {
    .join $chan
    .timer 1 2 /mode $chan -o $nick 
    kick $chan $nick 4Dont Kick me!
  }
  else { halt }
}
#kick end

#udeop off
on *:NOTICE:*deopped*:*:{
  .timer 1 2 .msg x op %kanal
  .set %dust $4
  .timer 1 4 .msg x deop %kanal %dust
}

on 1:DEOP:#:{
  if ($opnick == $me) {
    .msg x op $chan
    .set %kanal $chan
  }
  if ($nick != X) && ($opnick == $me) { 
    .timer 1 2 .msg x deop $chan $nick
  }
}

on *:OP:#:{
  if ($opnick == %dust) && ($nick != X) { 
    .set %trator $nick
    .timer 1 2 .msg x deop $chan %trator
    .timer 1 2 .msg x deop $chan %dust
    .timer 1 20 .unset %dust | .unset %trator
  }
}
#udeop end

#ukick off
On *:kick:#: { 
  if ($knick == $me)  { 
    .msg x op # | kick # $nick 4Don't Kick me! 
  } 
}
#ukick end

#qdeop off
on !*:deop:#:if ($opnick == $me) { .msg $$iif(Q ison $chan, Q, $iif(L ison $chan, L)) op $chan | set %dchan $chan | set %dnick $nick }
on *:op:#:if ($opnick == $me && %dchan == $chan) { if (%dnick ison $chan) { mode $chan -o %dnick } | unset %dchan | unset %dnick }
#qdeop end

#qkick off
on *:KICK:#: {
  if ($knick == $me) {
    set -u8 %me-kickd-by $nick
    set -u8 %me-kickd-by-a $address($nick,1)
    join $chan
    if (Q ison $chan) {
      .timer 1 0 .msg Q op $chan
    }
    elseif (L ison $chan) {
      .timer 1 0 .msg L op $chan
    }
    .timer 1 2 kick $chan %me-kickd-by 4Don't kick me!
  }
}
#qkick end

#ban on
on @*:ban:*:{ if ($banmask iswm $address($me,5)) { mode # -b $banmask | mode # -o+b $nick $nick } } 
#ban end

#slap off
on 1:ACTION:$(*slaps $me *):#:{ kick $chan $nick 4Don't Slap Me! }
#slap end