(узел:25372) Предупреждение об устаревании: Событие сообщения устарело. Вместо этого используйте messageCreate

#javascript #node.js #discord.js

Вопрос:

Я новичок в node.js и javascript, и хотел закодировать бота Discord для моего сервера. Я работаю над встраиваниями и застреваю. Всякий раз, когда я хочу запустить свой код, это появляется здесь:

 (node:15928) DeprecationWarning: The message event is deprecated. Use messageCreate instead
(Use `node --trace-deprecation ...` to show where the warning was created)
C:UsersLusorOneDriveDesktopdcbotnode_modulesdiscord.jssrcrestRequestHandler.js:298
      throw new DiscordAPIError(data, res.status, request);
            ^

DiscordAPIError: Cannot send an empty message
    at RequestHandler.execute (C:UsersLusorOneDriveDesktopdcbotnode_modulesdiscord.jssrcrestRequestHandler.js:298:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (C:UsersLusorOneDriveDesktopdcbotnode_modulesdiscord.jssrcrestRequestHandler.js:50:14)
    at async TextChannel.send (C:UsersLusorOneDriveDesktopdcbotnode_modulesdiscord.jssrcstructuresinterfacesTextBasedChannel.js:171:15) {
  method: 'post',
  path: '/channels/872588467211763804/messages',
  code: 50006,
  httpStatus: 400,
  requestData: {
    json: {
      content: undefined,
      tts: false,
      nonce: undefined,
      embeds: undefined,
      components: undefined,
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: undefined,
      message_reference: undefined,
      attachments: undefined,
      sticker_ids: undefined
    },
    files: []
  }
}
 

И вот мой код:

 const { Client, Attachment, Message, MessageEmbed } = require("discord.js");

module.exports = {
    name: "rules",
    description: "Embeds!",
    execute(message, args, Discord) {
        const newEmbed = new MessageEmbed()
        .setColor('#e38f0e')
        .setTitle('Rules')
        .setDescription("Welcome in Valhalla's Game Center! Please read the Rules caredfully!")
        .addFields(
            { name: 'Regular field title', value: 'Some value here' },
            { name: 'u200B', value: 'u200B' },
            { name: 'Inline field title', value: 'Some value here'},
            { name: 'Inline field title', value: 'Some value here'},
        )
        .setImage('https://i.imgur.com/AfFp7pu.png')
        .setTimestamp()
        .setFooter('Some footer text here', 'https://i.imgur.com/AfFp7pu.png');

         message.channel.send(newEmbed);

        

    }
}
 

Я буквально перепробовал все и не смог найти ничего полезного.

Комментарии:

1. Ошибка довольно проста. Используйте messageCreate вместо message

2. Ошибка , которая останавливает ваш код, это не DeprecationWarning: The message event is deprecated. ошибка, это DiscordAPIError: Cannot send an empty message

3. что message я должен заменить ? @Elitezen

Ответ №1:

Я нашел ответ на ваш вопрос, даже если это не было причиной вашей проблемы.

Где у вас есть

 client.on('message', message =>......
 

измените значение 'message' на 'messageCreate' .
Вам больше не нужно менять сообщения на messageCreate, только это. Меня это тоже беспокоило.

Ответ №2:

Похоже, что метод отправки «встроенного сообщения» на канал (отсюда) заключается в следующем

 channel.send({ embeds: [exampleEmbed] });
 

Итак, для вашего кода попробуйте изменить

 message.channel.send(newEmbed);
 

Для

 message.channel.send({ embeds: [newEmbed] });
 

Комментарии:

1. боже , спасибо тебе огромное, наконец-то это работает ♥