es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comando “clear” del bot de Discord

Me gustaría que mi bot eliminara solo dos mensajes pero no sé qué comando tengo que hacer para que lo haga.

const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});

await lib.discord.channels['@0.1.1'].messages.destroy({
    message_id: `${context.params.event.message.id}`,
    channel_id: `${context.params.event.message.channel_id}`
  });
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar solo dos mensajes utilizando un bot de Discord, es necesario agregar un bucle al código que eliminará ambos mensajes uno tras otro. Aquí tienes un ejemplo de código que elimina los dos últimos mensajes en el canal:

    const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
    const channelId = context.params.event.message.channel_id;
    const lastMessages = await lib.discord.channels['@0.1.1'].messages.list({
      channel_id: channelId,
      limit: 2 // obtener solo los últimos 2 mensajes
    });
    
    // Recorre los últimos dos mensajes y los elimina
    for (let i = 0; i < lastMessages.length; i++) {
      await lib.discord.channels['@0.1.1'].messages.destroy({
        message_id: lastMessages[i].id,
        channel_id: channelId
      });
    }
    

    Este fragmento de código realiza lo siguiente:

    1. Obtiene el ID del canal actual donde se ha publicado el mensaje.
    2. Recupera los dos últimos mensajes en el canal.
    3. Recorre los dos últimos mensajes uno tras otro y los elimina utilizando el método messages.destroy.

    Por lo tanto, al ejecutar este código, puedes eliminar exactamente dos mensajes en el canal.

Comments are closed.