#javascript #node.js #discord.js
Вопрос:
Я играл с ботом discord, когда мой код начал выходить из-под контроля, потому что кода было слишком много. Поэтому я решил немного поработать с командами.
Сначала я попытался сделать это с помощью команды ping, но, похоже, это не сработало.
То main.js
:
const config = require("./config.json");
const Discord = require('discord.js');
const { clientUser } = require("discord.js");
const clients = new Discord.Client({ intents: 14087});
const prefix = "-scp ";
var version = '1.6.6';
const packageJSON = require("./package.json");
const fs = require(`fs`);
const commandFiles= fs.readdirSync('./commands/')
.filter(file => file.endsWith('.js'));
for(const file of commandFiles){
const command = require(`./commands/${file}`);
clients.commands.set(command.name,command)
}
clients.on("messageCreate", (message) => {
try{
if( message.content == prefix "ping" ){
clients.commands.get('ping').execute(message,args);
}
файл для «ping» — это ping.js
const Discord = require("discord.js");
module.exports = {
name:'ping',
description:"ping command",
execute(message,args){
const embed = new Discord.MessageEmbed()
.setTitle("Pong! 🏓")
.setDescription("clients's latency: "
`**${message.createdTimestamp - Date.now()}ms**`
"n" `API's Latency: **${Math.round(clients.ws.ping)}ms**`)
.setColor('RANDOM');
channel.send({embeds: });
}
}
Ошибка:
C:Users1loveDropboxMy PC (DESKTOP-MEST1TS)DesktopBot Core AssetsSCP bot assetsnode_modulesdiscord.jssrcrestRequestHandler.js:298
throw new DiscordAPIError(data, res.status, request);
^
> DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:Users1loveDropboxMy PC (DESKTOP-MEST1TS)DesktopBot Core AssetsSCP bot assetsnode_modulesdiscord.jssrcrestRequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:Users1loveDropboxMy PC (DESKTOP-MEST1TS)DesktopBot Core AssetsSCP bot assetsnode_modulesdiscord.jssrcrestRequestHandler.js:50:14)
at async TextChannel.send (C:Users1loveDropboxMy PC (DESKTOP-MEST1TS)DesktopBot Core AssetsSCP bot assetsnode_modulesdiscord.jssrcstructuresinterfacesTextBasedChannel.js:171:15) {
method: 'post',
path: '/channels/417093499167440896/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: []
}
}
Ответ №1:
Ошибка новичка, вы пытаетесь отправить embed
сообщение до того, как оно будет определено:
const embed = new Discord.MessageEmbed()
.setTitle("Pong! 🏓")
.setDescription("clients's latency: "
`**${message.createdTimestamp - Date.now()}ms**`
"n" `API's Latency: **${Math.round(clients.ws.ping)}ms**`)
.setColor('RANDOM');
channel.send({embeds: });
Комментарии:
1. Разве вам тоже не нужно
content: " "
отправить сообщение?2. содержимое не требуется при отправке встраивания самостоятельно
3. на самом деле это не решило проблему, но спасибо(я отредактировал сообщение)
4. Ты уверен? Каждый раз, когда я пытался отправить только вставку (без
content: " "
) Я получил ошибку API Discord — Не удается отправить пустое сообщение5. @Toasty используя 13.1.0, я смог отправить вставку без
content
опции. @какой-то ребенок играет в js, какую версию диджеев ты запускаешь?