All pastes #280725 Raw Edit

Unnamed

public text v1 · immutable
#280725 ·published 2006-12-16 02:55 UTC
rendered paste body
### Change Rank ###
proc chrank:proc {nick uhost hand chan text} {
global owner master admin op voice chanmaster chanop chanvoice new
 set arg [lindex [split $text] 0]
 set rank [lindex [split $text] 1]
 set uchan [lindex [split $text] 2]
 set option [lindex [split $text] 3]

if { $arg == "" && $rank == "" } {
    putserv "PRIVMSG $chan :Syntax is\: .chrank <handle> <rank> \[channel\]"
    return
  } elseif { $arg != "" && $rank != "" } {
        switch -- $rank {
          owner { set newrank "$owner" }
          master { set newrank "$master" }
          admin { set newrank "$admin" }
          op { set newrank "$op" }
          voice { set newrank "$voice" }
          chanmaster { set newrank "$chanmaster" }
          chanop { set newrank "$chanop" }
          chanvoice { set newrank "$chanvoice" }
          friend { set newrank "$new" }
          default { putserv "PRIVMSG $chan :\002$rank\002 is not a valid rank" }
          }

          if {![validuser $arg]} {
             putserv "PRIVMSG $chan :$arg is not a valid user."
            return
            }

          if {[validuser $arg] && $uchan == ""} {

             if {[matchattr $arg A|]} {
                set goldrank "$owner"
               } elseif {[matchattr $arg B|]} {
                set goldrank "$master"
               } elseif {[matchattr $arg C|]} {
                set goldrank "$admin"
               } elseif {[matchattr $arg D|]} {
                set goldrank "$op"
               } elseif {[matchattr $arg E|]} {
                set goldrank "$voice"
               } elseif {[matchattr $arg I|]} {
                set goldrank "$new"
               } else {
                  putserv "PRIVMSG $chan :$arg has no global ranking"
                  putserv "PRIVMSG $chan :Use command: \002.view $arg \002 to view users details"
                  putserv "PRIVMSG $chan :Try: \002.chrank $arg $rank <channel>\002"
                  return
                  }

               foreach {g} [split $goldrank] {set oldrank "-$g\-"}
               chattr $arg $oldrank
               chattr $arg $newrank
               putserv "PRIVMSG $chan :\002$arg\'s\002 rank has been changed to \002<$rank: Global>\002"
               putserv "PRIVMSG $chan :$arg may have a \002Channel\002 ranking also and you may want to delete it"
               putserv "PRIVMSG $chan :Use command: \002.view $arg \002 to view users details"
               putserv "PRIVMSG $chan :To delete channel rank: \002.chrank $arg <rank> <channel> DEL\002"
               return
             } elseif {[validuser $arg] && $uchan !=""} {
                  if {[lindex $uchan 1] == "#"} {
                     set rchan "$uchan"
                   } else {
                      foreach {c} [split $uchan #] {set rchan "#$c"}
                      }

             if {[matchattr $arg |F $rchan]} {
               set coldrank "$chanmaster"
             } elseif {[matchattr $arg |G $rchan]} {
               set coldrank "$chanop"
             } elseif {[matchattr $arg |H $rchan]} {
               set coldrank "$chanvoice"
             } else {
               putserv "PRIVMSG $chan :\002$arg\002 has no channel rank for \002$rchan\002"
               putserv "PRIVMSG $chan :Use command: \002.view $arg \002 to view users details"
               putserv "PRIVMSG $chan :Try: \002.chrank $arg $rank\002"
               }

            foreach {c} [split $coldrank |] {set oldrank "-|-$c"}
            chattr $arg $oldrank $uchan
            chattr $arg $newrank $uchan
            putserv "PRIVMSG $chan :\002$arg\'s\002 rank has been changed to <\002$rank:\002on\002$uchan\002> "
            putserv "PRIVMSG $chan :$arg may have a \002Global\002 ranking also and you may want to delete it"
            putserv "PRIVMSG $chan :Use command: \002.view $arg \002 to view users details"
            putserv "PRIVMSG $chan :To delete \002Global\002 rank: \002.chrank $arg <rank> DEL\002"
            return
            }
   }

if {$rank != "" && $uchan != "" && $option == "DEL"} {
   foreach {c} [split $rank |] {set delrank "-|-$c"}
   chattr $arg $delrank $uchan
   putserv "PRIVMSG $chan :Deleted channel rank for \002$arg\002"
} elseif {$rank != "" && $uchan == "DEL" && $option == ""} {
   foreach {c} [split $rank] {set delrank "-$c\-"}
   chattr $arg $delrank
   putserv "PRIVMSG $chan :Deleted global rank for \002$arg\002"
 }
}