bind 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 \[\] \[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" } master { chattr $arg +$master; putserv "PRIVMSG $chan :$arg\'s rank is \002" } admin { chattr $arg +$admin; putserv "PRIVMSG $chan :$arg\'s rank is \002" } op { chattr $arg +$op; putserv "PRIVMSG $chan :$arg\'s rank is \002" } voice { chattr $arg +$voice; putserv "PRIVMSG $chan :$arg\'s rank is \002" } chanmaster { chattr $arg +$chanmaster $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002" } chanop { chattr $arg +$chanop $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002" } chanvoice { chattr $arg +$chanvoice $uchan; putserv "PRIVMSG $chan :$arg\'s rank is \002" } default { chattr $arg +$new; putserv "PRIVMSG $chan :$arg\'s rank is \002" } } 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 " 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 \002 Global rank for $arg is:" set rank "" if {[matchattr $arg A|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg B|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg C|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg D|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg E|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg |F $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg |G $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg |H $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $arg I|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } 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" } if {[matchattr $hand B|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand C|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand D|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand E|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand |F $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand |G $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand |H $rchan]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } if {[matchattr $hand I|]} { putserv "PRIVMSG $chan :$arg\'s rank is \002" } return } }