#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
########################################## DESCRIÇÃO ##########################################
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# #
# Com essa TCL usar comandos de OP no canal: #
# #
# Comandos disponiveis: #
# !op <nick> (da op pra um determinado nick) #
# !deop <nick> (tira op de um determinado nick) #
# !voice <nick> (da voice pra um determinado nick) #
# !devoice <nick> (tira voice de um determinado nick) #
# !op (pega op) #
# !deop (tira op) #
# !voice (pega voice) #
# !devoice (tira voice) #
# !kick <nick> <motivo> (kicka um usuário) #
# !ban <host> (bane um host) #
# !kb <nick> <motivo> (kick e bane um usuário, bane a máscara) #
# !kn <nick> <motivo> (kick e bane um usuário, bane o nick) #
# !resetbans (remove todos os bans da lista do canal) #
# !addchan <#canal> (adiciona o bot em canal) #
# !delchan <#canal> (remove o bot de um canal) #
# !adduser <nick> (adiciona um usuário no bot) #
# !deluser <nick> (remove um usuário do bot) #
# !addhost <host> (adiciona um host em seu nick) #
# !delhost <host> (remove um host do seu nick) #
# !rehash (atualiza os arquivos do bot.) #
# !restart (renicializa o bot.) #
# !jump <servidor> (muda o bot de servidor) #
# !mode <+modo> (altera/muda modos do canal) #
# #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
########################################## INSTALAÇÃO #########################################
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# #
# Carregue apenas a OPCmds2_8.tcl #
# Coloque essa linha (source scripts/OPCmds2_8.tcl) no fim do seu arquivo conf. #
# Envie para o diretório /scripts e dê um '.rehash' na Party Line (chat) do seu bot, e a TCL #
# estará carregada! #
# #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
########################################## ATUALIZAÇÕES #######################################
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# #
# v2.8 #
# Sexta-feira, 3 de dezembro de 2004 às 12:20:25hr #
# add: comando para alterar modos do canal. #
# add: comando para reiniciar bot. #
# add: comando para atualizar bot. #
# add: comando para trocar o servidor do bot. #
# mod: sistema de !op, !deop, !voice e !devoice, podendo escolher nick agora ex: !op nick #
# v2.0 #
# Sexta-feira, 30 de janeiro de 2004 às 14:07:33hrs #
# add: comando para limpar lista de ban do canal. #
# add: 2 comando para adicionar e remover canais. #
# add: 2 comando para adicionar e remover usuários. #
# add: 2 comando para adicionar e remover hosts. #
# add: 2 opções para configuração de flags que permite o acesso aos comandos. #
# mod: algumas frases de respostas. #
# #
# v1.0 #
# !op, !deop, !voice, !devoice, !kick, !ban, !kb, !kn #
# #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# CONFIGURAÇÃO #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
#flags globais|locais que permitirá o usuário a adicionar e/ou remover canais e/ou usuários?
set ::ansjr(opcmds:flags1) "n|n"
#flags globais|locais que permitirá o usuário a utilizar os demais comandos?
set ::ansjr(opcmds:flags2) "o|o"
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# NÂO EDITE NADA ABAIXO DESTA LINHA ### NÂO EDITE NADA ABAIXO DESTA LINHA ### #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# NÂO EDITE NADA ABAIXO DESTA LINHA ### NÂO EDITE NADA ABAIXO DESTA LINHA ### #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
# NÂO EDITE NADA ABAIXO DESTA LINHA ### NÂO EDITE NADA ABAIXO DESTA LINHA ### #
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
bind pubm $::ansjr(opcmds:flags2) "*!*" OPCmds:pub
proc OPCmds:pub {n u h c a} {
global botnick
set tmpmod [lindex $a 1]
set a [string tolower $a]
set n [string tolower $n]
if {![string match *!* [string index $a 0]]} { return }
set cmd [string trim [lindex $a 0] !]
set vct [lindex $a 1]
switch $cmd {
"op" {
if {$vct == $n && [isop $n $c]} {
puthelp "privmsg $c :\[$n\]: você já está de @Op! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c] && [isop $vct $c]} {
puthelp "privmsg $c :\[$n\]: $vct já está de @Op! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c]} {
pushmode $c +o $vct
} elseif {[isop $n $c]} { puthelp "privmsg $c :\[$n\]: você já está de @Op! pare de abusar-me!"
} else {
pushmode $c +o $n
}
}
"deop" {
if {$vct == $n && ![isop $n $c]} {
puthelp "privmsg $c :\[$n\]: você já está sem @Op! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c] && ![isop $vct $c]} {
puthelp "privmsg $c :\[$n\]: $vct já está sem @Op! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c]} {
pushmode $c -o $vct
} elseif {![isop $n $c]} { puthelp "privmsg $c :\[$n\]: você já está sem @Op! pare de abusar-me!"
} else {
pushmode $c -o $n
}
}
"voice" {
if {$vct == $n && [isvoice $n $c]} {
puthelp "privmsg $c :\[$n\]: você já está de +voice! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c] && [isvoice $vct $c]} {
puthelp "privmsg $c :\[$n\]: $vct já está de +voice! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c]} {
pushmode $c +v $vct
} elseif {[isvoice $n $c]} { puthelp "privmsg $c :\[$n\]: você já está de +voice! pare de abusar-me!"
} else {
pushmode $c +v $n
}
}
"devoice" {
if {$vct == $n && ![isvoice $n $c]} {
puthelp "privmsg $c :\[$n\]: você já está sem +voice! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c] && ![isvoice $vct $c]} {
puthelp "privmsg $c :\[$n\]: $vct já está sem +voice! pare de abusar-me!"
} elseif {$vct != "" && [onchan $vct $c]} {
pushmode $c -v $vct
} elseif {![isvoice $n $c]} { puthelp "privmsg $c :\[$n\]: você já está sem +voice! pare de abusar-me!"
} else {
pushmode $c -v $n
}
}
"kick" {
if {[isop $n $c]} { puthelp "privmsg $c :\[$n\]: você está de @Op, que tal você mesmo kickar?" ; return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !kick <nick> <motivo>" ; return }
if {[isop [lindex $a 1] $c]} { puthelp "privmsg $c :\[$n\]: Que tal eu kickar você?" ; return }
if {[lindex $a 2] == ""} {
putserv "KICK $c [lindex $a 1] :Kick requerido por :$n"
} {
putserv "KICK $c [lindex $a 1] :[lrange $a 2 e]"
}
}
"ban" {
if {[isop $n $c]} { puthelp "privmsg $c :\[$n\]: você está de @Op, que tal você mesmo banir?" ; return }
if {[lindex $a 1] == ""} {
puthelp "privmsg $n :use: !ban *!*@host.com.br" ; return
} {
pushmode $c +b [lindex $a 1]
}
}
"kb" {
if {[isop $n $c]} { puthelp "privmsg $c :\[$n\]: você está de @Op, que tal você mesmo mesmo kickar e banir?" ; return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !kb <nick> <motivo>" ; return }
if {[isop [lindex $a 1] $c]} { puthelp "privmsg $c :\[$n\]: Que tal eu kickar você?" ; return }
scan [string tolower [getchanhost [lindex $a 1] $c]] "%\[^@]@%s" host host
if {[lindex $a 2] == ""} {
pushmode $c +b *!*@$host
putserv "KICK $c [lindex $a 1] :KickBan requerido por :$n"
} {
putserv "KICK $c [lindex $a 1] :[lrange $a 2 e]"
pushmode $c +b *!*@$host
}
}
"kn" {
if {[isop $n $c]} { puthelp "privmsg $c :\[$n\]: você está de @Op, que tal você mesmo kickar e banir?" ; return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !kn nick motivo" ; return }
if {[isop [lindex $a 1] $c]} { puthelp "privmsg $c :\[$n\]: Que tal eu kickar você?" ; return }
if {[lindex $a 2] == ""} {
pushmode $c +b [lindex $a 1]!*@*
putserv "KICK $c [lindex $a 1] :KickBan requerido por :$n"
} {
putserv "KICK $c [lindex $a 1] :[lrange $a 2 e]"
pushmode $c +b [lindex $a 1]!*@*
}
}
"resetbans" {
puthelp "privmsg $c :$n está solicitando remoção de todos os bans do $c..."
resetbans $c
}
"addchan" {
if {![matchattr $n $::ansjr(opcmds:flags1) $c]} { return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !addchan <#canal>" ; return }
if {[string index [lindex $a 1] 0] != "#"} { puthelp "privmsg $c :\[$n\]: canal inválido!" ; return }
if {[validchan [lindex $a 1]] && [onchan $botnick [lindex $a 1]]} { puthelp "privmsg $n :não adianta tentar adicionar um canal, no qual já estou!" ; return }
channel add [lindex $a 1]
#puthelp "privmsg $n :canal adicionado com sucesso."
savechannels
}
"delchan" {
if {![matchattr $n $::ansjr(opcmds:flags1) $c]} { return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !delchan <#canal>" ; return }
if {[string index [lindex $a 1] 0] != "#"} { puthelp "privmsg $c :\[$n\]: canal inválido!" ; return }
if {![validchan [lindex $a 1]]} { puthelp "privmsg $n :não adianta tentar me tirar de um canal, no qual não estou!" ; return }
channel remove [lindex $a 1]
#puthelp "privmsg $n :canal removido com sucesso."
savechannels
}
"adduser" {
if {![matchattr $n $::ansjr(opcmds:flags1) $c]} { return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !adduser <nick>" ; return }
if {[validuser [lindex $a 1]]} { puthelp "privmsg $n :impossível adicionar novo usuário, ␃3[lindex $a 1]␃ já consta em nosso banco de dados!" ; return }
adduser [lindex $a 1]
puthelp "privmsg $n :usuário adicionado com sucesso! por favor falar, para o usuário cadastrado que envie '/msg $botnick pass <senha>' para setar uma senha."
save
}
"deluser" {
if {![matchattr $n $::ansjr(opcmds:flags1) $c]} { return }
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !deluser <nick>" ; return }
if {![validuser [lindex $a 1]]} { puthelp "privmsg $n :impossível remover usuário, ␃3[lindex $a 1]␃ não consta em nosso banco de dados!" ; return }
deluser [lindex $a 1]
puthelp "privmsg $n :usuário removido com sucesso."
save
}
"addhost" {
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !addhost <host>" ; return }
puthelp "privmsg $n :host adicionado com sucesso."
addhost $n [lindex $a 1]
save
}
"delhost" {
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !delhost <host>" ; return }
if {[lsearch -exact [getuser $n hosts] [lindex $a 1]] <= -1} { puthelp "privmsg $n :host não encontrado!" ; return }
puthelp "privmsg $n :host removido com sucesso."
delhost $n [lindex $a 1]
save
}
"rehash" {
puthelp "privmsg $c :Atualizando arquivos..."
rehash
}
"restart" {
puthelp "privmsg $c :Reiniciando... volto já..."
restart
}
"jump" {
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !jump <servidor>" ; return }
puthelp "privmsg $c :Trocando de servidor..."
jump [lindex $a 1]
}
"mode" {
if {[lindex $a 1] == ""} { puthelp "privmsg $n :use: !mode <+modes>" ; return }
if {![botisop $c]} { puthelp "privmsg $c :\[$n\]: Eu não estou com @Op!" ; return }
puthelp "privmsg $c :Alterando modos do $c..."
pushmode $c $tmpmod
set tmpchan $c
set tmpnick $n
}
}
}
bind raw - 472 opcmd:raw472
proc opcmd:raw472 {a b c} {
puthelp "privmsg $::tmpchan :\[$::tmpnick\]: [lindex $c 1] não é um modo de canal válido!"
}
set ansjr(opcmds:versao) "2.8"
putlog "OP Cmds TCL v$ansjr(opcmds:versao) by Ja0zin <jaozin@canalxbot.com.br> - CARREDADO!"