Updates:

Mata al pato \_O< en el canal #Traffic-Games

OPCmds2_8.tcl

Iniciado por TerraChat, Oct 03, 2023, 09:57 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

TerraChat

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#
########################################## 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!"