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

255
Visualizações
Discordbot lee mensajes DM y los registra

Quiero que mi bot lea solo los mensajes de DM y los envíe a un canal de discordia, pero mi código envía spam al mensaje infinitamente, envía spam 5 veces y luego se detiene durante unos segundos y luego vuelve a enviar spam, además, el bot no lee solo los mensajes de DM y lee también los mensajes del gremio, así que si envío algo en el gremio, el contenido se envía como spam.

¿Qué quiero? Si alguien envía '¡Hola!' (contenido del mensaje) al bot en DM, el bot debe enviar "¡Hola!" (contenido del mensaje) al canal especificado (canal de registros).

 const Discord = require("discord.js"); const client = new Discord.Client({ intents:['DIRECT_MESSAGES'], partials: ['MESSAGE'] }); client.on('ready', () =>{ console.log('Bot Online!'); //bot successfully logged in }); client.on('message', async (message) => { await client.channels.cache.get('CHANNEL ID').send(message.content); console.log(message.content); //log messages return; }); // Authorizing client.login('LOGIN');
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

La cosa es que cuando el bot envía el mensaje al canal de registro. También desencadena el evento de message nuevamente. Para evitar esto, simplemente agregue

 if(message.author.bot) return;

Tu código se vería como

 client.on('message', async (message) => { if(message.author.bot) return; await client.channels.cache.get('CHANNEL ID').send(message.content); console.log(message.content); //log messages return; });

Si solo quieres recibir mensajes directos

Puedes usar

 if(message.guild) return;
 client.on('message', async (message) => { if(message.guild) return; await client.channels.cache.get('CHANNEL ID').send(message.content); console.log(message.content); //log messages return; });
about 4 years ago · Juan Pablo Isaza Relatório

0

Verificar si el mensaje proviene de un gremio debería detener esto. Regrese antes si el mensaje.guild es verdadero (en message.guild de message.guild es null , que es un valor falso)

 if (message.guild) return;

Pondría esto en la parte superior de la devolución de llamada del evento para que nada se ejecute si está en un gremio

about 4 years ago · Juan Pablo Isaza Relatório

0

Para Discord.js v13 use el CANAL parcial también, espero que funcione

Por cierto

 if (message.channel.type != "DM") return;
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