### 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 \[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 \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 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 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" } }