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"
}
}