#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. боже , спасибо тебе огромное, наконец-то это работает ♥