Difference between revisions of "Clear-Chanlev Script for QuakeNet"

From Scriptwiki
Jump to: navigation, search
(links enabled)
Line 2: Line 2:
 
This script removes all known users on a #channel except owners or removes Q/L completely from #channel.
 
This script removes all known users on a #channel except owners or removes Q/L completely from #channel.
  
  <nowiki>; # Clear-Chanlev Script by Kickchon (for Q and L on QuakeNet) (v2.0)
+
  ; # Clear-Chanlev Script by Kickchon (for [[Q]] and [[L]] on QuakeNet) (v2.0)
; # This script removes all known users on a #channel except owners or removes Q/L completely from #channel.
+
; # This script removes all known users on a #channel except owners or removes Q/L completely from #channel.
; # Please do nothing after typing /clearchanlev until you get a finish/error message.
+
; # Please do nothing after typing /clearchanlev until you get a finish/error message.
;
+
;
; # Needs Owner Access on specified #channel and you have to be authed.
+
; # Needs Owner Access on specified #channel and you have to be authed.
; # It will not remove other Owners.
+
; # It will not remove other Owners.
;
+
;
; # Use /clearchanlev #channel or /clearchanlev #channel -remove if you want to remove Q/L from a channel.
+
; # Use /clearchanlev #channel or /clearchanlev #channel -remove if you want to remove Q/L from a channel.
;
+
;
; # Kickchon, staff member on Quakenet
+
; # Kickchon, staff member on Quakenet
;
+
;
; # If you think there's a bug in this Script, please contact someone in #help.script on Quakenet.
+
; # If you think there's a bug in this Script, please contact someone in #help.script on Quakenet.
 
+
alias clearchanlev {
+
[[Aliases|alias]] clearchanlev {
if (!$1) {
+
  [[if-Then-Else|if]] (!$1) {
  echo $color(info) -at *** Clear-Chanlev: You need to specify the channel.
+
    [[echo]] [[$color]](info) -at *** Clear-Chanlev: You need to specify the channel.
}
+
  }
elseif (Q !ison $1) && (L !ison $1) {
+
  [[if-Then-Else|elseif]] (Q !ison $1) && (L !ison $1) {
  echo $color(info) -at *** Clear-Chanlev: There is no Q or L bot on $1 $+ .
+
    echo $color(info) -at *** Clear-Chanlev: There is no Q or L bot on $1 $+ .
}
+
  }
else {
+
  [[if-Then-Else|else]] {
  set %cc.what getlname
+
    set %cc.what getlname
  set %cc.bot $iif(Q ison $1,Q,L)
+
    set %cc.bot $iif(Q ison $1,Q,L)
  set %cc.chan $1
+
    set %cc.chan $1
  if ($2 == -remove) { set %cc.remove $true }
+
    if ($2 == -remove) { [[set]] %cc.remove $true }
  echo $color(info) -at *** Clear-Chanlev: Getting your %cc.bot $+ -Account Name.
+
    echo $color(info) -at *** Clear-Chanlev: Getting your %cc.bot $+ -Account Name.
  .enable #clearchanlev
+
    .enable #clearchanlev
  .msg %cc.bot whois $me
+
    .[[msg]] %cc.bot whois [[$me]]
 +
  }
 
  }
 
  }
}
+
 
+
#[[Creating Groups|clearchanlev]] off
#clearchanlev off
+
 
+
[[On_notice|on ^*:NOTICE]]:*:*:{
on ^*:NOTICE:*:*:{
+
  if ($nick == %cc.bot) {
if ($nick == %cc.bot) {
+
    if (%cc.what == getlname) {
  if (%cc.what == getlname) {
+
      if ($1 == $me) && ($3 == authed) {
    if ($1 == $me) && ($3 == authed) {
+
        set %cc.account $left($5,-1)
      set %cc.account $left($5,-1)
+
      }
    }
+
      if ($1- == End of list.) {
    if ($1- == End of list.) {
+
        if (%cc.account) {
      if (%cc.account) {
+
          echo $color(info) -at *** Clear-Chanlev: Getting Userlist of %cc.chan $+ .
        echo $color(info) -at *** Clear-Chanlev: Getting Userlist of %cc.chan $+ .
+
          set %cc.what getchanlev
        set %cc.what getchanlev
+
          .msg %cc.bot chanlev %cc.chan
        .msg %cc.bot chanlev %cc.chan
+
        }
      }
+
        else {
      else {
+
          echo $color(info) -at *** Clear-Chanlev: You are not authed. Please auth before trying to clear a chanlev-list.
        echo $color(info) -at *** Clear-Chanlev: You are not authed. Please auth before trying to clear a chanlev-list.
+
          unset %cc.*
        unset %cc.*
+
          .[[disable]] #clearchanlev
        .disable #clearchanlev
+
        }
      }
+
      }
    }
+
    }
  }
+
    elseif (%cc.what == getchanlev) {
  elseif (%cc.what == getchanlev) {
 
 
     if ($1 != %cc.account) && (End of* !iswm $1-) && (Users for channel* !iswm $1-) && (Authname* !iswm $1-) && ($1- != $str(-,29)) && $&
 
     if ($1 != %cc.account) && (End of* !iswm $1-) && (Users for channel* !iswm $1-) && (Authname* !iswm $1-) && ($1- != $str(-,29)) && $&
      ($1 != Channeltype:) && (Known users* !iswm $1-) {
+
        ($1 != Channeltype:) && (Known users* !iswm $1-) {
      if (n !isin $iif(%cc.bot == Q,$3,$2)) {
+
        if (n !isin $iif(%cc.bot == Q,$3,$2)) {
        write clearchanlev.txt CHANLEV %cc.chan # [ $+ [ $1 ] ] $iif(%cc.bot == Q,-amotv,-amovg)
+
          [[write]] clearchanlev.txt CHANLEV %cc.chan # [ $+ [ $1 ] ] $iif(%cc.bot == Q,-amotv,-amovg)
      }
+
        }
      elseif (n isin $iif(%cc.bot == Q,$3,$2)) {
+
        elseif (n isin $iif(%cc.bot == Q,$3,$2)) {
        set %cc.noremove $true
+
          set %cc.noremove $true
      }
+
        }
    }
+
      }
    elseif ($1 == %cc.account) && (n !isin $iif(%cc.bot == Q,$3,$2)) {
+
      elseif ($1 == %cc.account) && (n !isin [[$iif]](%cc.bot == Q,$3,$2)) {
      .remove "clearchanlev.txt"
+
        .[[remove]] "clearchanlev.txt"
      unset %cc.*
+
        [[unset]] %cc.*
      .disable #clearchanlev
+
        .disable #clearchanlev
      echo $color(info) -at *** Clear-Chanlev: You are not the owner of that channel. Halting...
+
        echo $color(info) -at *** Clear-Chanlev: You are not the owner of that channel. Halting...
    }
+
      }
    elseif (End* iswm $1-) {
+
      elseif (End* [[iswm]] $1-) {
      if (%cc.remove) {
+
        if (%cc.remove) {
        if (%cc.noremove) {
+
          if (%cc.noremove) {
          echo $color(info) -at *** Clear-Chanlev: You may not remove %cc.bot $+ . You are not the only owner on %cc.chan $+ .
+
            echo $color(info) -at *** Clear-Chanlev: You may not remove %cc.bot $+ . You are not the only owner on %cc.chan $+ .
          .remove "clearchanlev.txt"
+
            .remove "clearchanlev.txt"
          unset %cc.*
+
            unset %cc.*
          .disable #clearchanlev
+
            .disable #clearchanlev
          halt
+
            [[halt]]
        }
+
          }
        else {
+
          else {
          write clearchanlev.txt CHANLEV %cc.chan # [ $+ [ %cc.account ] ] $iif(%cc.bot == Q,-amnotv,-amnovg)
+
            write clearchanlev.txt CHANLEV %cc.chan # [ $+ [ %cc.account ] ] $iif(%cc.bot == Q,-amnotv,-amnovg)
        }
+
          }
      }
+
        }
      set %cc.what removeusers
+
        set %cc.what removeusers
      echo $color(info) -at *** Clear-Chanlev: There are $lines(clearchanlev.txt) Users to remove. It will take about $&
+
        echo $color(info) -at *** Clear-Chanlev: There are $lines(clearchanlev.txt) Users to remove. It will take about $&
        $calc($lines(clearchanlev.txt)*2) seconds. Removing...
+
          [[$calc]]([[$lines]](clearchanlev.txt)*2) seconds. Removing...
      .play %cc.bot clearchanlev.txt 2000
+
        .[[play]] %cc.bot clearchanlev.txt 2000
    }
+
      }
  }
+
    }
  haltdef
+
    [[haltdef]]
 +
  }
 
  }
 
  }
}
+
 
+
[[On_playend|on *:PLAYEND]]:{
on *:PLAYEND:{
+
  if ([[$nopath]]([[$filename]]) == clearchanlev.txt) {
if ($nopath($filename) == clearchanlev.txt) {
+
    echo $color(info) -at *** Clear-Chanlev: Successfully Removed $iif(%cc.remove,$iif(%cc.bot == Q,Q,L) from,all Non-Owners on) %cc.chan $+ .
  echo $color(info) -at *** Clear-Chanlev: Successfully Removed $iif(%cc.remove,$iif(%cc.bot == Q,Q,L) from,all Non-Owners on) %cc.chan $+ .
+
    if (!%cc.remove) { .msg %cc.bot chanlev %cc.chan }
  if (!%cc.remove) { .msg %cc.bot chanlev %cc.chan }
+
    unset %cc.*
  unset %cc.*
+
    .remove "clearchanlev.txt"
  .remove "clearchanlev.txt"
+
    .disable #clearchanlev
  .disable #clearchanlev
+
  }
 
  }
 
  }
}
+
 +
#clearchanlev end
  
#clearchanlev end</nowiki>
 
 
[[Category:Script Archive]]
 
[[Category:Script Archive]]

Revision as of 16:49, 25 August 2005

Clear-Chanlev Script by Kickchon (for Q and L on QuakeNet) (v2.0) This script removes all known users on a #channel except owners or removes Q/L completely from #channel.

; # Clear-Chanlev Script by Kickchon (for Q and L on QuakeNet) (v2.0)
; # This script removes all known users on a #channel except owners or removes Q/L completely from #channel.
; # Please do nothing after typing /clearchanlev until you get a finish/error message.
;
; # Needs Owner Access on specified #channel and you have to be authed.
; # It will not remove other Owners.
;
; # Use /clearchanlev #channel or /clearchanlev #channel -remove if you want to remove Q/L from a channel.
;
; # Kickchon, staff member on Quakenet
;
; # If you think there's a bug in this Script, please contact someone in #help.script on Quakenet.

alias clearchanlev {
 if (!$1) {
   echo $color(info) -at *** Clear-Chanlev: You need to specify the channel.
 }
 elseif (Q !ison $1) && (L !ison $1) {
   echo $color(info) -at *** Clear-Chanlev: There is no Q or L bot on $1 $+ .
 }
 else {
   set %cc.what getlname
   set %cc.bot $iif(Q ison $1,Q,L)
   set %cc.chan $1
   if ($2 == -remove) { set %cc.remove $true }
   echo $color(info) -at *** Clear-Chanlev: Getting your %cc.bot $+ -Account Name.
   .enable #clearchanlev
   .msg %cc.bot whois $me
 }
}

#clearchanlev off

on ^*:NOTICE:*:*:{
 if ($nick == %cc.bot) {
   if (%cc.what == getlname) {
     if ($1 == $me) && ($3 == authed) {
       set %cc.account $left($5,-1)
     }
     if ($1- == End of list.) {
       if (%cc.account) {
         echo $color(info) -at *** Clear-Chanlev: Getting Userlist of %cc.chan $+ .
         set %cc.what getchanlev
         .msg %cc.bot chanlev %cc.chan
       }
       else {
         echo $color(info) -at *** Clear-Chanlev: You are not authed. Please auth before trying to clear a chanlev-list.
         unset %cc.*
         .disable #clearchanlev
       }
     }
   }
   elseif (%cc.what == getchanlev) {
    if ($1 != %cc.account) && (End of* !iswm $1-) && (Users for channel* !iswm $1-) && (Authname* !iswm $1-) && ($1- != $str(-,29)) && $&
       ($1 != Channeltype:) && (Known users* !iswm $1-) {
       if (n !isin $iif(%cc.bot == Q,$3,$2)) {
         write clearchanlev.txt CHANLEV %cc.chan # [ $+ [ $1 ] ] $iif(%cc.bot == Q,-amotv,-amovg)
       }
       elseif (n isin $iif(%cc.bot == Q,$3,$2)) {
         set %cc.noremove $true
       }
     }
     elseif ($1 == %cc.account) && (n !isin $iif(%cc.bot == Q,$3,$2)) {
       .remove "clearchanlev.txt"
       unset %cc.*
       .disable #clearchanlev
       echo $color(info) -at *** Clear-Chanlev: You are not the owner of that channel. Halting...
     }
     elseif (End* iswm $1-) {
       if (%cc.remove) {
         if (%cc.noremove) {
           echo $color(info) -at *** Clear-Chanlev: You may not remove %cc.bot $+ . You are not the only owner on %cc.chan $+ .
           .remove "clearchanlev.txt"
           unset %cc.*
           .disable #clearchanlev
           halt
         }
         else {
           write clearchanlev.txt CHANLEV %cc.chan # [ $+ [ %cc.account ] ] $iif(%cc.bot == Q,-amnotv,-amnovg)
         }
       }
       set %cc.what removeusers
       echo $color(info) -at *** Clear-Chanlev: There are $lines(clearchanlev.txt) Users to remove. It will take about $&
         $calc($lines(clearchanlev.txt)*2) seconds. Removing...
       .play %cc.bot clearchanlev.txt 2000
     }
   }
   haltdef
 }
}

on *:PLAYEND:{
 if ($nopath($filename) == clearchanlev.txt) {
   echo $color(info) -at *** Clear-Chanlev: Successfully Removed $iif(%cc.remove,$iif(%cc.bot == Q,Q,L) from,all Non-Owners on) %cc.chan $+ .
   if (!%cc.remove) { .msg %cc.bot chanlev %cc.chan }
   unset %cc.*
   .remove "clearchanlev.txt"
   .disable #clearchanlev
 }
}

#clearchanlev end