Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

308
Visualizações
¿Cómo hago para que un bot de discordia deje de responder después de escribir "cállate"?

Empecé en este pequeño proyecto solo por diversión para el servidor de mi amigo. Quería que el bot le respondiera cada vez que dijera algo en su servidor y quería que el bot dejara de responder una hora después de decir "cállate" (sin prefijos). actualmente tengo esto

 client.on("message", function (message) { const amyID = "blahblah"; const jayID = "blahblah"; if (message.author.id == (jayID)) { if (message.content.includes("shut up")) { message.reply("sorry...") setTimeout(function () { }, 60000) } else { client.commands.get('replyToAmy').execute(message); } } })

setTimeout parece funcionar solo con funciones que estoy confundido sobre cómo puedo aplicarlo al client.on . Si setTimeout el bot comenzará a responder nuevamente. ¿Cómo puedo hacer que el bot deje de responder durante un tiempo determinado después de que el usuario diga "cállate"?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Una forma de hacerlo sería crear una variable booleana fuera de la client.on('message') . Luego, el bot seguirá enviando un mensaje siempre que la variable booleana se establezca en verdadero. Una vez que el usuario le dice al bot que se detenga, la variable booleana se establece en falso y puede crear un .setTimeout() durante el tiempo especificado después del cual la variable booleana volverá a ser verdadera. Y luego todo lo que tenemos que hacer es verificar si la variable booleana es verdadera o no cada vez que enviamos el mensaje. El código podría ser algo como esto:

 let keepReplying = true const userId = 'the users id' client.on('message', message => { if (message.author.id === userId) { if (message.content === 'stop') { keepReplying = false setTimeout(() => { keepReplying = true }, 60000) } } if (keepReplying) client.commands.get('replyToAmy').execute(message); })
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Quizás crear una lista para contener al usuario que dijo cállate y marca de tiempo y luego funciona para verificar al usuario de esa lista y comparar el tiempo con la marca de tiempo?

bueno, si la marca de tiempo del usuario> 1 hora, elimine eso de la lista

aunque hay una mejor manera, pero esta es la ruta fácil. y no la forma más efectiva, ya que sería demasiado desperdicio con muchos usuarios

pero a partir de su código parece que acaba de hacer un pequeño proyecto para un pequeño grupo de usuarios, por lo que no hay problema

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda