rendered paste bodybind pub -|- .rank rank:proc
bind pub n|n .new new:user
bind pub n|n .del del:user
bind pub n|n .chrank chrank:proc
### Settings ###
set owner "aefghjmnoptxA|-"
set master "afghjmoptxB|-"
set admin "afghopC|-"
set op "afghoD|-"
set voice "fghE|-"
set chanmaster "-|fmovF"
set chanop "-|fovG"
set chanvoice "-|fvH"
set new "fhI|-"
### Delete User ###
proc del:user {nick uhost hand chan arg} {
global rank10 rank09 rank08 rank07 rank06 rank05 rank04 rank03 rank02 rank01 rank00
if {[validuser $arg]} {
deluser $arg
putserv "PRIVMSG $chan :User Deleted!"
} else {
putserv "PRIVMSG $chan :User not found!"
}
}
### Create User ###
proc new:user {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 == ""} {
putserv "PRIVMSG $chan :Syntax is: .new <handle> \[<rank>\] \[channel>\]"
return
} else {
adduser $arg
putserv "PRIVMSG $chan :Added user $arg"
}
switch -- $rank {
owner { chattr $arg +$owner; putserv "PRIVMSG $chan :$arg\'s rank is \002<Owner>" }
master { chattr $arg +$master; putserv "PRIVMSG $chan :$arg\'s rank is \002<Master>" }
admin { chattr $arg +$admin; putserv "PRIVMSG $chan :$arg\'s rank is \002<Admin>" }
op { chattr $arg +$op; putserv "PRIVMSG $chan :$arg\'s rank is \002<Op>" }
voice { chattr $arg +$voice; putserv "PRIVMSG $chan :$arg\'s rank is \002<Voice>" }
chanmaster { chattr $arg +$chanmaster $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002<Chanmaster of $uchan>" }
chanop { chattr $arg +$chanop $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanOp on $uchan>" }
chanvoice { chattr $arg +$chanvoice $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanVoice on $uchan>" }
default { chattr $arg +$new; putserv "PRIVMSG $chan :$arg\'s rank is \002<Freind>" }
}
if {$uchan == ""} {
return
}
}
### Match Flags ###
proc match:rank { hand chan } {
global owner master admin op voice chanmaster chanop chanvoice new
if { [ matchattr $hand $owner ] } { return "aefghjmnoptxA|-" }
if { [ matchattr $hand $master ] } { return "afghjmoptxB|-" }
if { [ matchattr $hand $admin ] } { return "afghopC|-" }
if { [ matchattr $hand $op ] } { return "afghoD|-" }
if { [ matchattr $hand $voice ] } { return "fghE|-" }
if { [ matchattr $hand $chanmaster $chan ] } { return "-|fmovF $chan" }
if { [ matchattr $hand $chanop $chan ] } { return "-|fovG $chan" }
if { [ matchattr $hand $chanvoice $chan ] } { return "-|fvH $chan" }
if { [ matchattr $hand $new ] } { return "fhI|-" }
return "error!"
}
### Change Rank ###
proc chrank:proc {nick uhost hand chan text} {
global owner master admin op voice chanmaster chanop chanvoice new
set arg [ lindex $text 0 ]
set rank [ lindex $text 1 ]
set uchan [ lindex $text 2 ]
if { $arg == "" || $rank == "" } {
putserv "PRIVMSG $chan :Syntax is\: .chrank <handle> <rank>"
return
} else {
set oldrank [ match:rank $arg $uchan ]
chattr $arg -$oldrank
chattr $arg +$rank
putserv "PRIVMSG $chan :$arg\'s rank has been changed to $rank"
}
}
### Rank Commands ###
proc rank:proc {nick uhost hand chan text} {
set arg [lindex [split $text] 0]
set rchan [lindex [split $text] 1]
if {$arg == "list"} {
putserv "NOTICE $nick :Ranks:"
putserv "NOTICE $nick : Owner"
putserv "NOTICE $nick : Master"
putserv "NOTICE $nick : Admin"
putserv "NOTICE $nick : Op"
putserv "NOTICE $nick : Voice"
putserv "NOTICE $nick : ChanMaster"
putserv "NOTICE $nick : ChanOp"
putserv "NOTICE $nick : ChanVoice"
putserv "NOTICE $nick : Friend"
return
}
if {$arg == "help"} {
putserv "PRIVMSG $chan :Syntax is: .rank \[nick\] \[channel\]"
return
}
if {[validuser $arg] && $rchan == ""} {
putserv "PRIVMSG $chan :Don't forget to try \002.rank $arg <channel>\002 Global rank for $arg is:"
set rank ""
if {[matchattr $arg A|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Owner>" }
if {[matchattr $arg B|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Master>" }
if {[matchattr $arg C|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Admin>" }
if {[matchattr $arg D|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Op>" }
if {[matchattr $arg E|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Voice>" }
if {[matchattr $arg |F $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanMaster>" }
if {[matchattr $arg |G $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Chanop>" }
if {[matchattr $arg |H $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanVoice>" }
if {[matchattr $arg I|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Friend>" }
return
} else {
putserv "PRIVMSG $chan :$arg is not a valid user"
}
if {$arg == ""} {
if {[matchattr $hand A|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Owner>" }
if {[matchattr $hand B|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Master>" }
if {[matchattr $hand C|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Admin>" }
if {[matchattr $hand D|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Op>" }
if {[matchattr $hand E|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Voice>" }
if {[matchattr $hand |F $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanMaster>" }
if {[matchattr $hand |G $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Chanop>" }
if {[matchattr $hand |H $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<ChanVoice>" }
if {[matchattr $hand I|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002<Friend>" }
return
}
}