Discord. js | Создание сообщения снайперской команды - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь заставить бота регистрировать / снимать сообщение, когда кто-то говорит «zsnipe», я хочу знать, как мне сделать «zsnipe» командой, но она не работает, я что-то делаю не так? вот код:


      bot.on('messageDelete', message => {
          
        const embed8 = new Discord.MessageEmbed() 
          .setAuthor(`${message.author.username}#${message.author.discriminator}`, message.author.avatarURL({dynamic : true}))
          .setDescription(message.content)

      if (message.content === 'zsnipe'){
        message.channel.send(embed8)
      }
      })

Мы будем благодарны за вашу помощь!

1 Ответ

0 голосов
/ 03 августа 2020

Вот код, который сохраняет последнее удаленное сообщение в канале и позволяет его восстановить, когда кто-то скажет zsnipe.

Предупреждение: удаленные сообщения будут будут потеряны при перезапуске бота.

const deletedMessages = new Discord.Collection();

bot.on('message', async message => {
  if (message.author.bot) return;

  const args = message.content.trim().split(/\s+/g);
  const command = args.shift().toLowerCase();

  switch (command) {
    case 'zsnipe':
      const msg = deletedMessages.get(message.channel.id);
      if (!msg) return message.reply('could not find any deleted messages in this channel.');

      const embed = new Discord.MessageEmbed()
        .setAuthor(msg.author.tag, msg.author.avatarURL({ dynamic: true }))
        .setDescription(msg.content);

      message.channel.send(embed).catch(err => console.error(err));

      break;
});

bot.on('messageDelete', message => {
  deletedMessages.set(message.channel.id, message);
});
...