Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
¿Cómo hago que mi bot de Discord escriba en un canal específico mientras alguien está escribiendo en el dms de los bots?

Quiero que mi bot de Discord escriba en un canal específico mientras un usuario escribe en el dms de bots para que parezca que el usuario está escribiendo a través del bot. Me las arreglé para que mi bot comience a escribir en el canal cada vez que alguien está escribiendo en el dms de bots, pero no se detiene cuando el usuario deja de escribir todavía.

Gracias por tu ayuda

Ahora quiero que el bot lo haga al revés, por eso agregué las siguientes líneas al código. Aún no funciona. El mensaje de error es el siguiente: "(node:38868) UnhandledPromiseRejectionWarning: TypeError: dmToTypeIn.startTyping is not a function"

 Client.on("typingStart", async function(channel, user){ if(user.bot){ return; } let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID) if(channel.type === "dm"){ if(openTicketsByUserID[user.id]){ console.log("one") channelToTypeIn.startTyping() } else{ return; } } })

El nuevo código:

 Client.on("typingStart", async function(channel, user) { function Sleep(milliseconds) { return new Promise(resolve => setTimeout(resolve, milliseconds)); } if (channel.type === "dm") { if (openTicketsByUserID[user.id]) { let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID); channelToTypeIn.startTyping(); } let fulfilled = false; while (!fulfilled) { if (!user.typingIn(user.dmChannel)) { let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID); fulfilled = true; channelToTypeIn.stopTyping(true); } } }

↓↓↓ La parte que aún no funciona ↓↓↓

 if(openTicketsByChannelID[channel.id]){ let dmToTypeIn = Client.users.fetch(openTicketsByChannelID[channel.id].userID) dmToTypeIn.startTyping(); } let fulfilled = false; while(!fulfilled){ if(!user.typingIn(channel)){ let dmToTypeIn = Client.channels.get(openTicketsByChannelID[channel.id].userID) fulfilled = true; dmToTypeIn.stopTyping(true); } } });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debe verificar si el usuario está escribiendo con el método User.typingIn

 Client.on("typingStart", async function(channel, user) { if (user.bot) { return; } let channelToTypeIn = Client.channels.cache.get(openTicketsByUserID[user.id].ticketID); if (channel.type === "dm") { if (openTicketsByUserID[user.id]) { channelToTypeIn.startTyping(); } } let fulfilled = false; while (!fulfilled) { if (!user.typingIn(user.dmChannel)) { fulfilled = true; channelToTypeIn.stopTyping(true); } } });

¡Puedes usar esto para hacer tu propio evento personalizado!

 Client.on("typingStart", async (channel, user) => { let fulfilled = false; while (!fulfilled) { if (!user.typingIn(channel)) { fulfilled = true; Client.emit("typingStop", channel, user) } } })

y escucha con

 Client.on("typingStop", async (channel, user) => { //code for when user stops typing })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda