【发布时间】:2021-07-15 19:46:29
【问题描述】:
目前只是在 discord.js 的 master 分支中使用按钮,但我似乎遇到了问题。我不能再像以前那样使用message.channel.send 发送嵌入,而且我总是收到此错误:
throw new DiscordAPIError(data, res.status, request);
^
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\Users\%USERNAME%\Desktop\Arduino Projects\Discord Turret\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\%USERNAME%\Desktop\Arduino Projects\Discord Turret\node_modules\discord.js\src\rest\RequestHandler.js:50:14) {
method: 'post',
path: '/channels/750542030836334692/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
},
files: []
}
}
其余代码运行良好,发送常规字符串也可以,但我无法发送嵌入。如果有人对此有任何建议,请告诉我。谢谢!
require('dotenv').config();
const config = require('../config.json');
const { Client, MessageButton, Intents, MessageEmbed } = require('discord.js');
// Create new Client
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_INTEGRATIONS,
],
});
// Set Status
client.once('ready', () => {
console.log('Discord Ready');
client.user.setActivity('Arduino Uno', { type: 'LISTENING' });
});
// Create Buttons
const buttons = {
up: new MessageButton()
.setCustomId('up')
.setLabel('⏫')
.setStyle('PRIMARY'),
down: new MessageButton()
.setCustomId('down')
.setLabel('⏬')
.setStyle('PRIMARY'),
left: new MessageButton()
.setCustomId('left')
.setLabel('⏪')
.setStyle('PRIMARY'),
right: new MessageButton()
.setCustomId('right')
.setLabel('⏩')
.setStyle('PRIMARY'),
};
// Check Message Content
client.on('messageCreate', (message) => {
if (!message.content.startsWith(process.env.PREFIX) || message.author.bot) return;
const args = message.content.slice(process.env.PREFIX.length).trim().split(/ +/);
const command = args.shift().toLowerCase();
switch (command) {
case 'up':
const upEmbed = new MessageEmbed().setDescription('This is the up button');
message.channel.send(controllerEmbed, buttons.up);
break;
}
});
// Login to Bot
client.login(process.env.TOKEN);
【问题讨论】:
标签: javascript discord discord.js