Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!