Comandos Personalizados
- como adiciono um comando de chat
- como faço o bot inserir o nome do espectador na resposta
- como faço um comando dar uma resposta aleatória
- como permito que apenas moderadores usem um comando
- como paro um comando sem excluí-lo
- quero que um comando responda a várias palavras diferentes
- como faço um comando funcionar apenas em um determinado jogo
- quero que o comando das regras do leilão responda apenas enquanto o leilão está em andamento
- como coloco o meu link do Discord em um comando sem reescrevê-lo em todo lugar
- o bot não responde ao meu comando !discord
- meu comando respondeu uma vez e depois ficou quieto
- como faço um comando !uptime
- de onde veio o comando !commands, e por que o bot responde ao !help
Vem com o strAImer: este módulo é instalado junto com o aplicativo, então não há nada para baixar. Ele aparece em Catálogo de Módulos → Integrados.
O que é esta página
Chat Bot → Comandos de Chat é onde ficam os comandos de texto personalizados; a própria página tem o cabeçalho Comandos Personalizados, "Gerenciar comandos de texto personalizados para o chat". Um comando é um gatilho que o chat digita e uma resposta que o bot escreve de volta, com variáveis substituídas nela.
Um comando funciona não importa onde você o escreva: no chat da plataforma, no chat do Painel de controle ou na caixa de mensagem do aplicativo. Só vale um comando de verdade — suas mensagens comuns nunca acionam o bot, então ele não acaba conversando sozinho.
Como configurar
A página tem duas abas, Comandos e Variáveis, cada um com a sua contagem entre parênteses. O botão no canto superior direito segue a aba em que está — Adicionar Comando ou Adicionar Variável.
Uma instalação nova não vem vazia: o módulo coloca um comando pronto para você ver o funcionamento. Ele se chama commands, responde a !commands, !help e !cmds, e escreve "Commands: {commands}", a lista de todos os seus comandos, com um tempo de espera de 15 segundos para todos. Edite ou exclua como qualquer outro; depois de excluído, ele não volta.
Um comando
- Abra Chat Bot → Comandos de Chat, mantenha-se na aba Comandos e pressione Adicionar Comando. O formulário tem o título Criar Comando.
- Nome do comando (para você) — um título que reconhecerá na lista, e espaços são permitidos: "Meu servidor do Discord". As maiúsculas são mantidas como digitadas. Um nome de uma palavra serve também como gatilho no chat; um nome com espaços não pode ser digitado, por isso tal comando precisa de pelo menos um gatilho e salvar sem um é recusado.
- Gatilhos que os espectadores digitam (separados por vírgula) — as palavras que disparam o comando, o marcador de posição mostra o formato:
discord, ds. O primeiro é o principal — é o que a lista{commands}mostra — enquanto o comando responde a todos eles. Escrevem-se sem!e separados por vírgulas. As maiúsculas também são mantidas aqui. - Modo de Ativação — A mensagem começa com !comando, ou Palavra em qualquer lugar da mensagem. O segundo é marcado no cartão com um distintivo palavra-chave.
- Resposta do Comando — o que o bot escreve, por exemplo "Junte-se ao nosso servidor, {user}!". Por baixo do campo está "Clique em uma variável para inseri-la na resposta:" e uma linha de chips —
{user},{target},{args},{count},{random:1-100},{choose:a|b|c},{randuser},{channel},{commands},{auction_rules},{time},{date},{math:},{repeat:3:}. Um clique coloca um no cursor. Três abas ficam acima da linha — Integrados, Seus e Base de Conhecimento — para que as suas próprias variáveis e os seus links de referência também estejam a um clique. - Tempo de Espera (seg) começa em 10, Tempo de Espera por Usuário (seg) em 0. Por baixo deles está a marca Moderadores e streamer ignoram o tempo de espera.
- Funções Permitidas — Todos, Assinante, VIP, Moderador, Transmissor. Todos estão marcados em um novo comando, e não marcar nenhuma também salva como Todos.
- Responder apenas quando — uma condição, Sempre por padrão. A seção abaixo a explica.
- Pressione Salvar, ou Cancelar. Sem um nome e uma resposta o formulário responde "Preencha o nome do comando e a resposta!" e permanece aberto.
- Um cartão tem como cabeçalho apenas o nome do comando, com o distintivo das funções ao lado e um distintivo de condição quando há uma. A linha por baixo contém os aliases, coloridos e com o seu
!, seguidos da resposta; depois vêm o tempo de espera, o tempo de espera por usuário e quantas vezes foi disparado. A linha mostra todos os gatilhos aos quais o comando responde: os seus mais o próprio nome quando ele é uma palavra só; uma repetição aparece uma vez. O interruptor desliga o comando sem excluí-lo; ao lado estão Editar e Excluir, e excluir pergunta "Excluir este comando?".
Uma variável sua
- Mude para a aba Variáveis e pressione Adicionar Variável — o formulário é Criar Variável.
- Nome da Variável — apenas letras, dígitos e
_; o campo converte para minúsculas o que digita e remove o resto. A dica por baixo mostra o resultado: "Usado nas respostas como {nome}". - Valores (um por linha) — o marcador de posição mostra três linhas, pizza, sushi, hambúrguer. "Um valor aleatório da lista é inserido quando o comando é ativado".
- Pressione Salvar. Um nome repetido é recusado com "Já existe uma variável com este nome!", um formulário incompleto com "Forneça um nome e pelo menos um valor!".
- O cartão mostra
{nome}, quantos valores contém e os próprios valores. Editar reabre o formulário como Editar Variável com o nome e os valores atuais preenchidos, para que os valores sejam corrigidos em vez de digitados novamente. Excluir avisa primeiro: "Excluir esta variável? Os comandos que a utilizam deixarão de substituí-la."
Responder apenas às vezes
Responder apenas quando contém uma condição, e Sempre — sem condição — é o que um novo comando obtém.
- Jogando um destes jogos — aparece um campo Jogos (separados por vírgulas). Parte de um nome é suficiente e as maiúsculas/minúsculas não importam, por isso
gtacorresponde a "GTA V" e "GTA Online". As plataformas escrevem o mesmo jogo de forma diferente, por isso liste todas as grafias —GTA, Grand Theft Auto— e qualquer uma delas corresponder é suficiente. A categoria é lida de todas as plataformas que estão atualmente ao vivo. - Há um leilão em andamento — enquanto o módulo de leilão tem um leilão ativo, pausado ou bloqueado.
- A stream está ao vivo / A stream está offline — o estado da stream conforme o módulo Estado da Stream reporta.
Responder quando a condição não se verificar é a segunda resposta. Usa as mesmas variáveis e links de referência — e a sua própria linha de chips, por isso um clique aí cai nesse campo e não no de cima. "Nenhum leilão no momento — o próximo é na sexta!" é uma resposta completa. Deixe-a vazia e o comando não diz nada; um comando silencioso não gasta o seu tempo de espera, por isso o próximo espectador que perguntar no momento certo ainda obtém uma resposta.
Salvar uma condição de jogo com o campo de jogos vazio é recusado: a condição nunca corresponderia e o comando ficaria silencioso para sempre.
Links de referência e regras de leilão
Mais duas coisas podem ser colocadas em uma resposta e são mantidas em um só lugar em vez de serem reescritas.
{discord},{boosty}e qualquer outro nome da Base de Conhecimento na barra lateral. Mude o link lá e todos os comandos seguem. Nomes que não conhece são deixados como estão,{discord}, por isso um erro de digitação é visível em vez de silencioso. A aba de chip Base de Conhecimento por baixo do campo de resposta os lista todos — não há nada para memorizar.{auction_rules}— a descrição escrita nas configurações do leilão, o mesmo texto que os espectadores veem.
As chaves são simples, como qualquer outra variável. Chaves duplas {{...}} ainda funcionam — essa era a grafia mais antiga, e os textos antigos continuam funcionando. As variáveis integradas são lidas primeiro, por isso uma referência chamada time não irá sobrepor a variável {time}; apenas evite nomear links com nomes de variáveis.
A referência
Referência de Variáveis no topo abre Variáveis Disponíveis — todas as variáveis integradas com o seu significado e um exemplo prático: {display_name}, {user.id}, {touser}, {args:0|default}, {count+10}, {channel} e o resto, com as suas próprias no final da lista.
Por que um comando não responde
Um comando que fica em silêncio deixa uma linha com [Skipped] no Console de Logs do Sistema, na parte de baixo da janela do aplicativo. A mesma linha diz o motivo entre colchetes:
[NoMatch]: nenhum comando responde a essa palavra. Confira a grafia do gatilho e se o interruptor do comando está ligado: um comando desligado conta como inexistente. Só as palavras digitadas com!vão para o log; um comando Palavra em qualquer lugar da mensagem não deixa linha nenhuma quando não corresponde.[Cooldown]: o comando respondeu há menos de Tempo de Espera (seg), 10 segundos em um comando novo, ou esse espectador ainda está sob o Tempo de Espera por Usuário (seg). O tempo de espera vale para você também, então digitar o mesmo comando duas vezes seguidas para testar dá uma resposta só. Marque Moderadores e streamer ignoram o tempo de espera para testar à vontade.[Permission]: o autor não tem nenhuma das Funções Permitidas. As funções mais altas incluem as mais baixas: um moderador passa em um comando de VIP ou de assinante, e você passa em todos.[Condition]: a condição de Responder apenas quando não foi cumprida e Responder quando a condição não se verificar está vazio. Um comando com A stream está ao vivo fica em silêncio fora do ar.
Nenhuma linha para um comando com ! significa que a mensagem nunca chegou ao aplicativo: a plataforma não está conectada em Conexões → Canais, ou o módulo está desligado. Uma linha com [Success] e nada no chat significa que a plataforma não aceitou a resposta. No YouTube o motivo comum é o bot: as respostas saem por ele, e um bot sem login para o chat não envia nada, com "No bot session" no log. Faça o login dele em Conexões → Bots.
O que não pode fazer
{channel}é o canal onde a mensagem foi escrita, por isso em uma stream multi-plataforma difere por chat: o seu nome da Twitch na resposta da Twitch, o seu nome do Kick na do Kick. Cada plataforma o escreve à sua maneira — o Kick não tem nome de exibição, apenas o identificador com que entrou — por isso não espere que os três correspondam exatamente.{randuser}escolhe entre espectadores que escreveram nesse chat na última meia hora, não entre todos os que estão assistindo: apenas a Twitch oferece uma lista de pessoas presentes, e mesmo essa é reduzida, enquanto o YouTube e o Kick não oferecem nenhuma. Cada plataforma mantém a sua própria lista, por isso uma resposta na Twitch nunca marca um espectador do YouTube. Logo após o aplicativo iniciar a lista está vazia e a variável recua para a pessoa que executou o comando; uma mensagem no chat a preenche. As próprias mensagens do seu bot são excluídas.- Não há variável para o tempo de live, o jogo atual ou o título da stream, então
!uptime,!gameou!titlenão podem ser montados aqui: um nome desconhecido como{uptime}é publicado do jeito que foi digitado. As variáveis integradas são exatamente as da Referência de Variáveis. O Agente de IA sabe as três enquanto você está ao vivo (veja o guia "Agente de IA"). - Um comando responde com texto no chat. Som, sobreposições e qualquer outra ação não fazem parte desta página.
- Os comandos não são direcionados a uma plataforma ou a um canal específico: uma lista serve o chat.
- A lista não tem pesquisa, ordenação nem arrastar para reordenar — os cartões se mantêm na ordem em que foram criados.
- Uma variável personalizada é uma lista para escolher uma linha aleatoriamente. Não mantém um valor por espectador, nenhum contador e nenhuma aritmética.
- Os tempos de espera são contados em segundos, por comando e por espectador. Não há limite diário, e a única exceção por função é a marca Moderadores e streamer ignoram o tempo de espera.
- Um comando tem uma condição, não várias combinadas. Não há condição por hora do dia e nenhuma por contagem de espectadores.