set BaRDaHLCPct "."
set BaRDaHLCPver "2.0"

bind pub n [string trim $BaRDaHLCPct]disable pub:disable
bind pub n [string trim $BaRDaHLCPct]enable pub:enable
bind msg - auth auth:auth
bind sign - * auth:signcheck
bind msg - deauth auth:deauth
bind pub p [string trim $BaRDaHLCPct]bots pub:bots
bind pub m|m [string trim $BaRDaHLCPct]channels pub:channels
bind pub o|o [string trim $BaRDaHLCPct]ignore pub:ignore
bind pub o|o [string trim $BaRDaHLCPct]unignore pub:unignore
bind pub n [string trim $BaRDaHLCPct]chanset pub:chanset
bind pub m|m [string trim $BaRDaHLCPct]status pub:status
bind pub m|m [string trim $BaRDaHLCPct]flags pub:flags
bind pub o|o [string trim $BaRDaHLCPct]ignorelist pub:ignorelist
bind pub o|o [string trim $BaRDaHLCPct]banlist pub:banlist
bind pub m [string trim $BaRDaHLCPct]save pub:save
bind pub m [string trim $BaRDaHLCPct]reload pub:reload
bind pub n [string trim $BaRDaHLCPct]rehash pub:rehash
bind pub n [string trim $BaRDaHLCPct]restart pub:restart
bind pub n [string trim $BaRDaHLCPct]backup pub:backup
bind pub n [string trim $BaRDaHLCPct]forcebans pub:forcebans
bind pub n [string trim $BaRDaHLCPct]jump pub:jump
bind pub - [string trim $BaRDaHLCPct]time pub:time
bind pub n [string trim $BaRDaHLCPct]die pub:die
bind pub o [string trim $BaRDaHLCPct]act pub:act
bind pub o [string trim $BaRDaHLCPct]say pub:say
bind pub - [string trim $BaRDaHLCPct]mode pub:mode
bind pub - [string trim $BaRDaHLCPct]kick pub:kick
bind pub - [string trim $BaRDaHLCPct]ban pub:ban
bind pub - [string trim $BaRDaHLCPct]unban pub:unban
bind pub - [string trim $BaRDaHLCPct]voice pub:voice
bind pub - [string trim $BaRDaHLCPct]devoice pub:devoice
bind pub n [string trim $BaRDaHLCPct]link pub:link
bind pub n [string trim $BaRDaHLCPct]unlink pub:unlink
bind pub - [string trim $BaRDaHLCPct]ping pub:ping
bind pub - ping pub:ping
bind pub - !ping pub:ping
bind ctcr - PING pub:pingr
bind pub - [string trim $BaRDaHLCPct]op pub:op
bind pub - [string trim $BaRDaHLCPct]deop pub:deop
bind pub o|o [string trim $BaRDaHLCPct]up pub:up
bind pub o|o [string trim $BaRDaHLCPct]down pub:down
bind pub n [string trim $BaRDaHLCPct]adduser pub:adduser
bind pub n [string trim $BaRDaHLCPct]broadcast pub:broadcast
bind pub n [string trim $BaRDaHLCPct]join pub:join
bind pub n [string trim $BaRDaHLCPct]part pub:part
bind pub - [string trim $BaRDaHLCPct]help pub:help
bind pub - help pub:helpa
bind pub n [string trim $BaRDaHLCPct]chattr pub:chattr
bind pub n [string trim $BaRDaHLCPct]deluser pub:deluser
bind pub n [string trim $BaRDaHLCPct]addbot pub:addbot
bind pub n [string trim $BaRDaHLCPct]rmbot pub:rmbot
bind pub n [string trim $BaRDaHLCPct]addhost pub:addhost
bind pub n [string trim $BaRDaHLCPct]rmhost pub:rmhost

proc auth:auth {nick uhost hand arg} {
	global botnick
	set found 0
	foreach n [channels] {
		if {[onchan $nick $n]} {
			set found 1
		}
	}
	if {$found == 0} {return 0}
	if {[llength $arg] <1} {
		notice $nick "Modo de Uso: /msg $botnick auth <password>"
		return 0
	}
	set pass [lindex $arg 0]
	if {$hand == "*"} {
		say $nick "No puedes usar mis comandos."
		return 0
	}
	if {[getuser $hand XTRA AUTH] == "DEAD"} {
		say $nick "No estas habilitado para usar los comandos publicos."
		return 0
	}
	if {[passwdok $hand $pass]} {
		setuser $hand XTRA "AUTH" "1"
		putcmdlog "<<$nick>> ($uhost) $hand AUTH ..."
		notice $nick "Password Aceptado."
		return 0
	} else {
		notice $nick "Password Incorrecto."
	}
}

proc auth:signcheck {nick uhost hand chan reason} {
	if {$hand == "*"} {return 0}
	if {[getuser $hand XTRA AUTH] == "DEAD"} {
		return 0
	}
	setuser $hand XTRA "AUTH" "0"
	putlog "Auth para $hand expirado."
}

proc auth:check {hand} {
	set auth [getuser $hand XTRA "AUTH"]
	if {($auth == "") || ($auth == "0") || ($auth == "DEAD")} {
		return 0
	} else { return 1}
}

proc auth:deauth {nick uhost hand arg} {
	if {[getuser $hand XTRA AUTH] == "DEAD"} {
		say $nick "No estas habilitado para usar los comandos publicos."
		return 0
	}
	if {$hand != "*"} {
		setuser $hand XTRA "AUTH" "0"
		putcmdlog "<<$nick>> ($uhost) $hand DEAUTH"
		notice $nick "La autenticacion para $hand a sido removida."
	}
}

proc say {who what} {
	puthelp "PRIVMSG $who :$what"
}

proc notice {who what} {
	puthelp "NOTICE $who :$what"
}

proc cleanarg {arg} {
 set temp ""
	for {set i 0} {$i < [string length $arg]} {incr i} {
  set char [string index $arg $i]
  if {($char != "\12") && ($char != "\15")} {
   append temp $char
  }
 }

 set temp [string trimright $temp "\}"]

 set temp [string trimleft $temp "\{"]
	return $temp
}

proc pub:disable {nick host hand chan arg} {
	if {[llength $arg] < 1} {
		notice $nick "Modo de Uso: $[string trim $BaRDaHLCPct]disable <handle>"
		return 0
	}
	set who [lindex $arg 0]
	if {![validuser $who]} {
		notice $nick "$who no es un usuario valido."
		return 0
	}
	setuser $who XTRA AUTH "DEAD"
	notice $nick "Deshabilitado: $who"
	putcmdlog "<<$nick>> $hand disable $who"
}

proc pub:enable {nick host hand chan arg} {
	if {[llength $arg] < 1} {
		notice $nick "Modo de Uso: $[string trim $BaRDaHLCPct]enable <handle>"
		return 0
	}
	set who [lindex $arg 0]
	if {![validuser $who]} {
		notice $nick "$who no es un usuario valido."
		return 0
	}
	setuser $who XTRA AUTH 0
	notice $nick "Habilitado: $who"
	putcmdlog "<<$nick>> $hand enable $who"
}

set pub_pingchan ""

proc pub:time {nick host hand chan arg} {
	notice $nick "[ctime [unixtime]]"
}

proc pub:die {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Iniciando apagado del Bot... Hasta pronto!"
	putcmdlog "<<$nick>> $hand die $arg"
	die $arg
}

proc pub:jump {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Cambiando de servidor a $arg..."
	jump $arg
	putlog "<<$nick>> $hand jump $arg"
}

proc pub:forcebans {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Reseteando todos los bans para que concuerden con mi banlist..."
	resetbans $chan
	putcmdlog "<<$nick>> $hand forcebans"
}

proc pub:rehash {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Rehashing..."
	rehash
	putcmdlog "<<$nick>> $hand rehash"
}

proc pub:reload {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Reloading..."
	reload
	putcmdlog "<<$nick>> $hand reload"
}

proc pub:restart {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Reiniciando..."
	restart
	putcmdlog "<<$nick>> $hand restart"
}


proc pub:save {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Grabando los archivos de canales y usuarios..."
	save
	putcmdlog "<<$nick>> $hand save"
}

proc pub:backup {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	notice $nick "Haciendo copia de seguridad del archivo de usuarios..."
	backup
	putcmdlog "<<$nick>> $hand backup"
}


proc pub:banlist {nick host hand chan arg} {
	notice $nick "\002Bans Globales:\002"
	if {[banlist] == ""} {
		notice $nick "Lista vacia"
	} else {
	foreach ig [banlist] {
		set what [lindex $ig 0]
		set by [lindex $ig 1]
		set comment [lindex $ig 4]
		notice $nick "$what - puesto por $by - $comment"
	}}
	notice $nick "\002Bans para $chan:\002"
	if {[banlist $chan] == ""} {
		notice $nick "Lista vacia"
	} else {
	foreach b [banlist $chan] {
		set what [lindex $b 0]
		set by [lindex $b 5]
		set comment [lindex $b 1]
		notice $nick "$what - puesto por $by - $comment"
	}}
}

proc pub:ignorelist {nick host hand chan arg} {
	if {[ignorelist] == ""} {
		notice $nick "No tengo ningun Ignore."
		return 0
	}
	notice $nick "Lista de Ignores:"
	foreach ig [ignorelist] {
		set what [lindex $ig 0]
		set by [lindex $ig 4]
		set comment [lindex $ig 1]
		notice $nick "$what - puesto por $by - $comment"
	}
}

proc pub:flags {nick host hand chan arg} {
	if {[llength $arg]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]flags <handle>"
		return 0
	}
	set who [lindex $arg 0]
	if {![validuser $who]} {
		notice $nick "No se quien es $who."
		return 0
	}
	set flags [chattr $who]
	notice $nick "Flags Globales para $who: $flags"
	putcmdlog "<<$nick>> $hand flags $who"
}

proc pub:status {nick host hand chan arg} {
	global botnick server botname version
	notice $nick "\002Informacion de $botnick:\002"
	notice $nick "Mis Usuarios: [countusers]"
	notice $nick "Mis Canales: [channels]"
	notice $nick "Bots Linkados: [bots]"
	notice $nick "Mi Fecha: [date]"
	notice $nick "Mi Hora: [time]"
	notice $nick "Mi Sistema Operativo: [unames]"
	notice $nick "Servidor: $server"
	notice $nick "Mi Host: $botname"
	notice $nick "Version Eggdrop: [lindex $version 0]"
	putcmdlog "<<$nick>> $hand status"
}

proc pub:chanset {nick host hand chan arg} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	if {[llength $arg] < 2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]chanset <#canal> <modo> \[args\]"
		return 0
	}
	set thechan [lindex $arg 0]
	set mode [lindex $arg 1]
	set a [lrange $arg 2 end]
	if {![validchan $thechan]} {
		notice $nick "Yo no monitoreo ese canal."
		return 0
	}
	channel set $thechan $mode $a
	putcmdlog "<<$nick>> $hand chanset $thechan $mode $a"
}

proc pub:bots {nick host hand chan arg} {
	set bots [bots]
	notice $nick "Bots: $bots"
	putcmdlog "<<$nick>> $hand bots"
}

proc pub:channels {nick host hand chan arg} {
	set chans [channels]
	notice $nick "Canales: $chans"
	putcmdlog "<<$nick>> $hand channels"
}

proc pub:ignore {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args] < 3} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ignore <nick/host> <tiempo> <razon>"
		return 0
	}
	set who [lindex $args 0]
	set time [expr [lindex $args 1]]
	set reason [lrange $args 2 end]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		if {![onchan $who $chan]} {
			set theban $who
		} else {
			set host [getchanhost $who $chan]
			set host [maskhost $host]
			set shost [split $host "!"]
			set theban "*!*[lindex $shost 1]"
		}
		newignore $theban $nick $reason $time
		putcmdlog "<<$nick>> $hand ignore $args"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:unignore {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unignore <host>"
		return 0
	}
	set theban [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		killignore $theban
		putcmdlog "<<$nick>> $hand unignore $chan $theban"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}
proc pub:say {nick host hand chan arg} {
	global botnick
	if {![auth:check $hand]} {return 0}
	if {[llength $arg] < 1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]say <texto>"
		return 0
	}
	set what [lrange $arg 0 end]
	if {![onchan $botnick $chan]} {
		notice $nick "No estoy en ese canal."
		return 0
	}
	puthelp "PRIVMSG $chan :$what"
	notice $nick "He dicho en $chan: $what"
	putcmdlog "<<$nick>> !$hand! ($chan) !say $what"
}

proc pub:act {nick host hand chan arg} {
	global botnick
	if {![auth:check $hand]} {return 0}
	if {[llength $arg] < 1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]act <texto>"
		return 0
	}
	set what [lrange $arg 0 end]
	if {![onchan $botnick $chan]} {
		notice $nick "No estoy en ese canal."
		return 0
	}
	puthelp "PRIVMSG $chan :\001ACTION $what\001"
	notice $nick "Accion en $chan: $what"
	putcmdlog "<<$nick>> !$hand! ($chan) !act $what"
}

proc pub:mode {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [cleanarg $args]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]mode <nuevo modo>"
		return 0
	}
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		putserv "MODE $chan $args"
		putcmdlog "<<$nick>> $hand mode $args"
	} else {
	notice $nick "No puedes hacer eso!"
	}

}

proc pub:kick {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args] < 2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]kick <nick> <razon>"
		return 0
	}
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		set who [lindex $args 0]
		set reason [lrange $args 1 end]
		putserv "KICK $chan $who :$reason"
		putcmdlog "<<$nick>> $hand kick $args"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:ban {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args] < 3} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ban <nick/host> <tiempo> <razon>"
		return 0
	}
	set who [lindex $args 0]
	set time [expr [lindex $args 1]]
	set reason [lrange $args 2 end]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		if {![onchan $who $chan]} {
			set theban $who
		} else {
			set host [getchanhost $who $chan]
			set host [maskhost $host]
			set shost [split $host "!"]
			set theban "*!*[lindex $shost 1]"
		}
		newchanban $chan $theban $nick $reason $time
		putcmdlog "<<$nick>> $hand ban $args"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:unban {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unban <host>"
		return 0
	}
	set theban [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		killchanban $chan $theban
		putcmdlog "<<$nick>> $hand unban $chan $theban"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:adduser {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	global botnick admin
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]adduser <nick> \[host\]"
		return 0
	}
	if {$nick == $botnick} {return 0}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	if {[llength $args]==2} {
		set host [lindex args 1]
	} else {
		if {![onchan $who $chan]} {
			say $chan "$nick: $who no se encuentra en este canal."
			return 0
		}
		set host [maskhost [getchanhost $who $chan]]
	}
	set err [adduser $who $host]
	if {$err == 0} {
		say $chan "Ya hay alguien con ese nick en mi base de datos."
		return 0
	}
	putcmdlog "<<$nick>> $hand adduser $who $host"

	if {![onchan $who $chan]} {return 0}
	notice $who "Has sido agregado a mi base de datos con la mascara $host."
	notice $who "Escribe /msg $botnick PASS <tupassword> para setear tu nuevo password."
	notice $who "Despues de que hayas seteado tu password, escribe /dcc chat $botnick para comenzar una nueva sesion en el partyline."
	notice $who "Si experimentas algun problema, por favor contacta con $admin"
}

proc pub:voice {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]voice <nick>"
		return 0
	}
	set who [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		putserv "MODE $chan +v $who"
	} else {
		notice $nick "No puedes hacer eso!"
	}
	putcmdlog "<<$nick>> $hand voice $chan $who"
}

proc pub:devoice {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]devoice $nick"
		return 0
	}
	set who [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		putserv "MODE $chan -v $who"
	} else {
		notice $nick "No puedes hacer eso!"
	}
	putcmdlog "<<$nick>> $hand devoice $chan $who"
}

proc pub:link {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]link <bot>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	say $chan "$nick: Intentando conectar a $who..."
	set err [link $who]
	if {$err == 0} {
		say $chan "$nick: A ocurrido un error."
	}
}

proc pub:unlink {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unlink <bot>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	say $chan "$nick: Intentando desconectar de $who..."
	set err [link $who]
	if {$err == 0} {say $chan "AAAH! A ocurrido un error!"}
	if {$err == 1} {say $chan "...Desconexion exitosa!"}
}

proc pub:ping {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		set who $nick
	} else {
		set who [lindex $args 0]
	}
	global pub_pingchan
	set time [unixtime]
	say $who "\001PING $time\001"
	set pub_pingchan $chan
	putcmdlog "<<$nick>> $hand PING $who : $time"
}

proc pub:pingr {nick uhost hand dest keyword args} {
	global pub_pingchan
	set temp [unixtime]
	set time [expr $temp - $args]
	putlog "Respuesta PING de $nick: $time segundos"
	say $pub_pingchan "Respuesta PING de $nick: $time segundos"
}

proc pub:op {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args] == 0 && ([matchattr $hand n] || [matchattr $hand "|n" $chan] || [matchattr $hand o $chan] || [matchattr $hand "|o" $chan])} {
		putserv "MODE $chan +o $nick"
	}
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]op <nick>"
		return 0
	}
	set who [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		putserv "MODE $chan +o $who"
		putcmdlog "<<$nick>> $hand op $chan $who"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:deop {nick uhost hand chan args} {
	if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]deop <nick>"
		return 0
	}
	set who [lindex $args 0]
	if {$hand == "*"} {return 0}
	if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
		putserv "MODE $chan -o $who"
		putcmdlog "<<$nick>> $hand deop $chan $who"
	} else {
		notice $nick "No puedes hacer eso!"
	}
}

proc pub:up {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	putserv "MODE $chan +v $nick"
	putserv "MODE $chan +o $nick"
}

proc pub:down {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	putserv "MODE $chan -v $nick"
	putserv "MODE $chan -o $nick"
}

proc pub:broadcast {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set msg [cleanarg $args]
	foreach n [channels] {
		say $n $msg
	}
}

proc pub:join {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [cleanarg $args]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]join <#canal>"
		return 0
	}
	channel add $args {+greet -bitch -autoop -bitch -stopnethack}
}

proc pub:part {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [cleanarg $args]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]part <#canal>"
		return 0
	}
	channel remove $args
}

proc pub:chattr {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]chattr <handle> <flags> \[canal\]"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	set modes [lindex $args 1]
	set channel ""
	if {[llength $args]==3} {
		set channel [lindex $args 2]
		set temp "|"
		append temp $modes
		set modes $temp
	}
	if {$channel != ""} {
		set rt [chattr $who $modes $channel]
	} else {
		set rt [chattr $who $modes]
	}
	putcmdlog "<<$nick>> $hand chattr $args"
	if {$channel != ""} {
		set rt [lindex [split $rt "|"] 1]
		say $chan "Las flags para $who en $channel son ahora $rt"
	} else {
		say $chan "Las flags globales para $who son ahora $rt"
	}
}

proc pub:deluser {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]deluser <handle>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	set err [deluser $who]
	if {$err == 0} {
		say $chan "Imposible eliminar a $who."
		return 0
	}
	putcmdlog "<<$nick>> $hand deluser $who"
}

proc pub:addbot {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]addbot <handle> <direccion:puerto>"
		return 0
	}
	if {[llength [split [lindex $args 1] ":"]]!=2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]addbot <handle> <direccion:puerto>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set addr [lindex $args 1]
	set who [lindex $args 0]
	addbot $who $addr
	putcmdlog "<<$nick>> $hand addbot $who $addr"
}

proc pub:rmbot {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]rmbot <handle>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	deluser $who
	putcmdlog "<<$nick>> $hand rmbot $who"
}

proc pub:addhost {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]addhost <handle> <host>"
		return 0
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	set host [lindex $args 1]
	setuser $who HOSTS $host
	putcmdlog "<<$nick>> $hand addhost $who $host"
}

proc pub:rmhost {nick uhost hand chan args} {
	if {![auth:check $hand]} {return 0}
	set args [split [cleanarg $args]]
	if {[llength $args]<2} {
		notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]rmhost <handle> <host>"
		return 0;
	}
	if {[getting-users]} {
		notice $nick "La base de datos de los usuarios se esta tranfiriendo en este momento. Intenta de nuevo en un par de segundos."
		return 0
	}
	set who [lindex $args 0]
	set host [lindex $args 1]
	delhost $who $host
	putcmdlog "<<$nick>> $hand rmhost $who $host"
}

proc pub:helpa {nick uhost hand chan args} {
	pub:help $nick $uhost $hand $chan $args
}

proc BaRDaHLCP:remind_users {} {
	global botnick
	foreach n [userlist] {
		if {[passwdok $n ""]} {
			say $n "Usted no a seteado su password aun. Por favor setealo escribiendo: \002/msg $botnick PASS <password>\002. Este mensaje es generado cada 30 minutos."
			putlog "Se le a recordado a $n que debe de setear su password."
		}
	}
	timer 30 BaRDaHLCP:remind_users
}

set found 0
foreach n [timers] {
	if {[lindex $n 1] == "BaRDaHLCP:remind_users"} {
		set found 1
	}
}
if {$found == 0} {
	timer 5 BaRDaHLCP:remind_users
}
unset found

proc pub:help {nick uhost hand chan args} {
	global botnick BaRDaHLCPct BaRDaHLCPver
	set args [split [cleanarg $args]]
	if {[llength $args]<1} {
notice $nick "<===--- Comandos Publicos© by 1BaRDaHL * 1bardahl@linuxmail.org 1v[string trim $BaRDaHLCPver]  ---===>"
notice $nick " - 1[string trim $BaRDaHLCPct]up - Te da @p en el canal"
notice $nick " - 1[string trim $BaRDaHLCPct]down - Te quita @p en el canal"
notice $nick " - 1[string trim $BaRDaHLCPct]op <nick> - Da @p a \002nick\002"
notice $nick " - 1[string trim $BaRDaHLCPct]deop <nick> - Quita @p a \002nick\002"
notice $nick " - 1[string trim $BaRDaHLCPct]ban <nick/host> <tiempo> <razon> - Agrega un Ban a \002nick/host\002"
notice $nick " - 1[string trim $BaRDaHLCPct]unban <host> - Elimina el ban \002host\002 del canal"
notice $nick " - 1[string trim $BaRDaHLCPct]voice <nick> - Da +voice a \002nick\002"
notice $nick " - 1[string trim $BaRDaHLCPct]devoice <nick> - Quita +voice a \002nick\002"
notice $nick " - 1[string trim $BaRDaHLCPct]addbot <handle> <direccion:puerto> - Agrega un bot"
notice $nick " - 1[string trim $BaRDaHLCPct]rmbot <handle> - Elimina un bot"
notice $nick " - 1[string trim $BaRDaHLCPct]link <bot> - Intenta conectar con \002bot\002"
notice $nick " - 1[string trim $BaRDaHLCPct]unlink <bot> - Intenta desconectar de \002bot\002"
notice $nick " - 1[string trim $BaRDaHLCPct]ping \[nick\] - PING \002nick\002"
notice $nick " - 1!ping \[nick\] - PING \002nick\002"
notice $nick " - 1ping \[nick\] - PING \002nick\002"
notice $nick " - 1[string trim $BaRDaHLCPct]mode <modos> - Cambia los modos del canal"
notice $nick " - 1[string trim $BaRDaHLCPct]adduser <handle/nick> \[host\] - Agrega un nuevo usuario"
notice $nick " - 1[string trim $BaRDaHLCPct]deluser <handle> - Elimina el usuario \002handle\002 de la base de datos"
notice $nick " - 1[string trim $BaRDaHLCPct]chattr <handle> <flags> \[canal\] - Cambia los atributos de un usuario"
notice $nick " - 1[string trim $BaRDaHLCPct]part <#canal> - Saca el bot del \002canal\002"
notice $nick " - 1[string trim $BaRDaHLCPct]join <#canal> - Entra el bot al \002canal\002"
notice $nick " - 1[string trim $BaRDaHLCPct]addhost <handle> <host> - Agrega una mascara a un usuario"
notice $nick " - 1[string trim $BaRDaHLCPct]rmhost <handle> <host> - Elimina una mascara de un usuario"
notice $nick " - 1[string trim $BaRDaHLCPct]disable <handle> - Deshabilita a \002handle\002 para usar estos comandos"
notice $nick " - 1[string trim $BaRDaHLCPct]enable <handle> - Habilita a \002handle\002 para usar estos comandos"
notice $nick " - 1[string trim $BaRDaHLCPct]act <canal> <texto> - Pone una Accion en el \002canal\002"
notice $nick " - 1[string trim $BaRDaHLCPct]say <texto> - Dice algo en el \002canal\002"
notice $nick " - 1[string trim $BaRDaHLCPct]bots - Lista los bots conectados en la BotNet"
notice $nick " - 1[string trim $BaRDaHLCPct]channels - Lista los canales en los que se encuentra el bot"
notice $nick " - 1[string trim $BaRDaHLCPct]ignore <nick/host> <tiempo> <razon> - Agrega un nuevo ignore"
notice $nick " - 1[string trim $BaRDaHLCPct]unignore <host> - Elimina un ignore"
notice $nick " - 1[string trim $BaRDaHLCPct]time - Da la fecha y la hora"
notice $nick " - 1[string trim $BaRDaHLCPct]die \[razon\] - Apaga el bot por \[razon\]"
notice $nick " - 1[string trim $BaRDaHLCPct]jump <servidor>\[:puerto\] - Hace que el bot cambie de servidor"
notice $nick " - 1[string trim $BaRDaHLCPct]forcebans - makes all bans match bans on bot"
notice $nick " - 1[string trim $BaRDaHLCPct]rehash - Rehashes el bot"
notice $nick " - 1[string trim $BaRDaHLCPct]reload - Recarga la base de datos"
notice $nick " - 1[string trim $BaRDaHLCPct]restart - Reinicia el Bot"
notice $nick " - 1[string trim $BaRDaHLCPct]save - Graba los archvos de Usuarios y Canales"
notice $nick " - 1[string trim $BaRDaHLCPct]backup - Crea una copia de seguridad del archivo de Usuarios"
notice $nick " - 1[string trim $BaRDaHLCPct]banlist - Muestra la lista de Ban Globales $ del Canal"
notice $nick " - 1[string trim $BaRDaHLCPct]ignorelist - Muestra la lista de Ignores"
notice $nick " - 1[string trim $BaRDaHLCPct]flags <handle> - Muestra las flags de \002handle\002"
notice $nick " - 1[string trim $BaRDaHLCPct]status - Muestra algunas estadisticas del eggdrop"
notice $nick " - 1[string trim $BaRDaHLCPct]chanset <canal> <modo> \[args\] - Cambia los opciones del \002canal\002"
notice $nick " - 1[string trim $BaRDaHLCPct]help <comando> - Muestra una explicacion detallada del \002comando\002"
notice $nick "<===--- ^ ---===>"
notice $nick "<===--- Escriba \002 [string trim $BaRDaHLCPct]help <comando>\002 para obtener mas informacion sobre un comando especifico ---===>"
notice $nick "\002NOTA: Antes de usar cualquiera de estos comandos, \002"
notice $nick "\002primero debe de autenticarse con el bot escribiendo:\002"
notice $nick "\002/msg $botnick AUTH <su password>\002"
	} else {
switch [lindex $args 0] {
	"time" {
notice $nick "\002<===--- time ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]time"
notice $nick "Flags Requeridas: (-|-) Ninguna"
notice $nick "   Muestra la fecha y hora actual."
	}
	"bots" {
notice $nick "\002<===--- bots ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]bots"
notice $nick "Flags Requeridas: (p) Party Line"
notice $nick "   Muestra los bots conectados en la BotNet."
	}
	"channels" {
notice $nick "\002<===--- channels ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]channels"
notice $nick "Flags Requeridas: (m|m) Master de Global o del Canal"
notice $nick "   Muestra los canales en los que esta el Bot."
	}
	"ignore" {
notice $nick "\002<===--- ignore ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ignore <nick/host> <tiempo> <razon>"
notice $nick "Flags Requeridas: (o) @p Global"
notice $nick "   Crea un nuevo Ignore; Si el usuario esta en el canal,"
notice $nick "   automaticamente se obtendra la mascara de el, de lo contrario,"
notice $nick "   tomara la mascara que usted especifique."
	}
	"unignore" {
notice $nick "\002<===--- unignore ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unignore <host>"
notice $nick "Flags Requeridas: (o) Op Global"
notice $nick "   Elimina el ignore que concuerde con la mascara especificada."
	}
	"chanset" {
notice $nick "\002<===--- chanset ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]chanset <canal> <modo> \[args\]"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Trabaja como el comando dcc .chanset."
	}
	"status" {
notice $nick "\002<===--- status ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]status"
notice $nick "Flags Requeridas: (m|m) Master Global o del Canal"
notice $nick "   Muestra informacion sobre el Bot."
	}
	"flags" {
notice $nick "\002<===--- flags ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]flags <handle>"
notice $nick "Flags Requeridas: (m|m) Master Global o del Canal"
notice $nick "   Muestra las flags de handle."
	}
	"ignorelist" {
notice $nick "\002<===--- ignorelist ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ignorelist"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Muestra la lista de ignores activos."
	}
	"banlist" {
notice $nick "\002<===--- banlist ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]banlist"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Muestra la lista de bans."
	}
	"save" {
notice $nick "\002<===--- save ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]save"
notice $nick "Flags Requeridas: (m) Master Global"
notice $nick "   Graba los archivos de Usuarios y Canales."
	}
	"reload" {
notice $nick "\002<===--- reload ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]reload"
notice $nick "Flags Requeridas: (m) Master Global"
notice $nick "   Recarga el archivo de usuarios."
	}
	"rehash" {
notice $nick "\002<===--- rehash ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]rehash"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Rehashes el bot."
	}
	"restart" {
notice $nick "\002<===--- restart ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]restart"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Reinicia el Bot."
	}
	"backup" {
notice $nick "\002<===--- backup ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]backup"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Crea una copia de seguridad del archivo de Usuarios."
	}
	"forcebans" {
notice $nick "\002<===--- forcebans ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]forcebans"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Resetea todos los bans para que concuerden con la lista del bot."
	}
	"jump" {
notice $nick "\002<===--- jump ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]jump <servidor>\[:puerto\]"
notice $nick "Flags Requeridas: (m) Master Global"
notice $nick "   Cambia al Bot de Servidor."
	}
	"die" {
notice $nick "\002<===--- die ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]die \[reason\]"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Apaga el Bot."
	}
	"help" {
notice $nick "<===--- Escriba \002 [string trim $BaRDaHLCPct]help <comando>\002 para obtener mas informacion sobre un comando especifico ---===>"
	}
	"say" {
notice $nick "\002<===--- say ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]say <texto>"
notice $nick "Flags Requeridas: (o) Op Global"
notice $nick "   Hace que el Bot diga el \002texto\002 en el \002canal\002."
	}
	"act" {
notice $nick "\002<===--- act ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]act <canal> <texto>"
notice $nick "Flags Requeridas: (o) Op Global"
notice $nick "   Hace que el Bot ejecute una Accion con el \002texto\002 en el \002canal\002."
	}
	"op" {
notice $nick "\002<===--- op ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]op <nick>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Da @p a \002nick\002 en el canal."
	}
	"up" {
notice $nick "\002<===--- up ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]up"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Te Da @p en el canal."
	}
	"down" {
notice $nick "\002<===--- down ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]down"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Te quita @p en el canal."
	}
	"disable" {
notice $nick "\002<===--- disable ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]disable <handle>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Evita que \002handle\002 use los comandos publicos."
	}
	"enable" {
notice $nick "\002<===--- enable ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]enable <handle>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Habilita a \002handle\002 para usar los comandos publicos."
notice $nick "   NOTA: Solo es necesario si un usuario a sido \002[string trim $BaRDaHLCPct]disable\002 deshabilitado."
	}
	"deop" {
notice $nick "\002<===--- deop ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]deop <nick>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Quita el @p a \002nick\002 en el canal."
	}
	"ban" {
notice $nick "\002<===--- ban ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ban <nick/host> <tiempo> <razon>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Si \002nick\002 se encuentra en el canal, el Bot obtiene"
notice $nick "   la mascara y la banea. Si no, el Bot tomara la mascara"
notice $nick "   indicada y le pondra el ban. \002tiempo\002 es la cantidad"
notice $nick "   de tiempo en minutos que el ban durara. Poniendo 0"
notice $nick "   se asignara un ban permanente. \002razonn\002 es"
notice $nick "   la razon por la cual se pone el ban."
	}
	"unban" {
notice $nick "\002<===--- unban ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unban <host>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Remueve el ban de \002host\002 de el Canal."
notice $nick "   Ej: [string trim $BaRDaHLCPct]unban *!*IDENTD*@*MAS.CA.RA.COM"
	}
	"voice" {
notice $nick "\002<===--- voice ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]voice <nick>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Da +voice a \002nick\002 en el canal."
	}
	"devoice" {
notice $nick "\002<===--- devoice ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]devoice <nick>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Quita el +voice a \002nick\002 en el Canal."
	}
	"link" {
notice $nick "\002<===--- link ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]link <bot>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Intenta conectarse con el \002bot\002."
	}
	"unlink" {
notice $nick "\002<===--- unlink ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]unlink <bot>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Intenta desconectarse de el \002bot\002."
	}
	"ping" {
notice $nick "\002<===--- ping ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]ping \[nick\]"
notice $nick "Modo de Uso: !ping \[nick\]"
notice $nick "Modo de Uso: ping \[nick\]"
notice $nick "Flags Requeridas: (-|-) Ninguna"
notice $nick "   PING \002nick\002 y muestra el LAG de en el canal."
notice $nick "   Si no se da ningun \002nick\002, le hara PING a usted."
	}
	"mode" {
notice $nick "\002<===--- mode ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]mode <modos>"
notice $nick "Flags Requeridas: (o|o) Op Global o del Canal"
notice $nick "   Cambia los \002modos\002 del Canal."
notice $nick "   Ej: [string trim $BaRDaHLCPct]mode +m"
	}
	"adduser" {
notice $nick "\002<===--- adduser ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]adduser <nick> \[host\]"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Agrega un usuario a la base de datos con el \002nick\002 como su"
notice $nick "   handle. Si el usuario esta en el canal, y no es especificado ningun \002host\002"
notice $nick "   el Bot obtendra el \002host\002 de el \002nick\002."
notice $nick "   De otra manera, usara el \002host\002 que usted especifique."
	}
	"part" {
notice $nick "\002<===--- part ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]part <#canal>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Saca a el Bot del \002canal\002."
	}
	"join" {
notice $nick "\002<===--- join ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]join <#canal>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Entra a el Bot a un \002canal\002."
	}
	"chattr" {
notice $nick "\002<===--- chattr ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]chattr <handle> <flags> \[canal\]"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Cambia las (\002flags\002) de un (\002handle\002)."
notice $nick "   Si no se especifica ningun \002canal\002, se cambiaran las flags"
notice $nick "   Globales del usuario."
	}
	"deluser" {
notice $nick "\002<===--- deluser ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]deluser <handle>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Elimina el \002handle\002 completamente del Bot."
	}
	"addbot" {
notice $nick "\002<===--- addbot ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]addbot <handle> <address:port>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Agrega un \002Bot\002."
	}
	"rmbot" {
notice $nick "\002<===--- rmbot ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]rmbot <handle>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Elimina el \002Bot\002."
	}
	"addhost" {
notice $nick "\002<===--- addhost ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]addhost <handle> <host>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Agrega el \002host\002 al archivo de Usuarios para \002handle\002."
	}
	"rmhost" {
notice $nick "\002<===--- rmhost ---===>\002"
notice $nick "Modo de Uso: [string trim $BaRDaHLCPct]rmhost <handle> <host>"
notice $nick "Flags Requeridas: (n) Owner del Bot"
notice $nick "   Elimina el \002host\002 del archivo de usuarios para \002handle\002."
	}
	"sex" {
notice $nick "Eres enfermo eh ???"
	}
	"me" {
notice $nick "Yo puedo hacer eso!"
notice $nick "Solo escribe \002[string trim $BaRDaHLCPct]help\002 para conocer mis comandos."
	}
	"him" {
notice $nick "Por que no lo ayudas tu $nick?"
	}
}
}
}

putlog "Comandos Publicos© by 1BaRDaHL * 1bardahl@linuxmail.org 1v[string trim $BaRDaHLCPver]  cargado."