Как отправлять и удалять сообщения в Discord.js

Чтобы отправить сообщение, а затем удалить его с помощью Discord.js, вы можете использовать следующие методы:

Метод 1: использование тайм-аута

const channel = message.channel;
channel.send('This message will be deleted soon.')
  .then(sentMessage => {
    setTimeout(() => {
      sentMessage.delete();
    }, 5000); // Deletes the message after 5 seconds (adjust the time as needed)
  })
  .catch(console.error);

Метод 2: использование async/await

async function sendMessageAndDelete() {
  try {
    const channel = message.channel;
    const sentMessage = await channel.send('This message will be deleted soon.');
    setTimeout(() => {
      sentMessage.delete();
    }, 5000); // Deletes the message after 5 seconds (adjust the time as needed)
  } catch (error) {
    console.error(error);
  }
}
sendMessageAndDelete();

Метод 3. Использование функции awaitReply (пользовательская функция)

async function awaitReply(message, content, time = 5000) {
  const filter = m => m.author.id === message.author.id;
  await message.channel.send(content);
  try {
    const collected = await message.channel.awaitMessages(filter, {
      max: 1,
      time,
      errors: ['time']
    });
    const reply = collected.first();
    await reply.delete();
    return reply;
  } catch (error) {
    console.error(error);
    return null;
  }
}
async function sendMessageAndDelete() {
  try {
    const sentMessage = await awaitReply(message, 'This message will be deleted soon.');
    setTimeout(() => {
      sentMessage.delete();
    }, 5000); // Deletes the message after 5 seconds (adjust the time as needed)
  } catch (error) {
    console.error(error);
  }
}
sendMessageAndDelete();

Обратите внимание, что во всех этих методах messageотносится к объекту сообщения, полученному в событии message.