### 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] if { $arg == "" && $rank == "" } { putserv "PRIVMSG $chan :Syntax is\: .chrank \[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]} { set oldrank "" set goldrank "" set coldrank "" if {[matchattr $arg A|]} { set goldrank "$owner" } if {[matchattr $arg B|]} { set goldrank "$master" } if {[matchattr $arg C|]} { set goldrank "$admin" } if {[matchattr $arg D|]} { set goldrank "$op" } if {[matchattr $arg E|]} { set goldrank "$voice" } if {[matchattr $arg I|]} { set goldrank "$new" } if {[matchattr $arg |F $uchan]} { set coldrank "$chanmaster" } if {[matchattr $arg |G $uchan]} { set coldrank "$chanop" } if {[matchattr $arg |D $uchan]} { set coldrank "$chanvoice" } if {$rank != "" && $uchan == ""} { foreach {g} [split $goldrank] {set oldrank "-$g\-"} chattr $arg $oldrank $uchan chattr $arg $newrank $uchan } if {$rank != "" && $uchan != ""} { foreach {c} [split $coldrank |] {set oldrank "-|-$c"} chattr $arg $oldrank $uchan chattr $arg $newrank $uchan } if {$uchan == ""} { putserv "PRIVMSG $chan :\002$arg\'s\002 rank has been changed to \002<$rank: Global>\002" } elseif {$uchan != ""} { putserv "PRIVMSG $chan :\002$arg\'s\002 rank has been changed to <\002$rank: \002on \002$uchan\002>" return }