All pastes #278622 Raw Edit

Someone

public text v1 · immutable
·published 2006-12-14 06:52 UTC
rendered paste body
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 <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
 }
}