Discord API Error: Cannot send an empty message
Discord API Error: Cannot send an empty message
我正在编写一个简单的 discord 机器人,它只是从列表中随机选择一个响应,但我将 运行 保留在同一个 Discord API 错误中。
这是我的代码。
client.on('messageCreate', message => {
const responses = [['Yehaw', 'Yehaw!!', 'Yahee', 'Cowboy shit']];
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length));
let randomMessage = responses[randomNumber];
if (message.author.bot) return;
if (message.content.includes ('Yehaw'))
message.channel.send(randomMessage);
});
这是我的错误信息
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
at async TextChannel.send (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:176:15) {
方法:'post',
路径:'/channels/976509969199407185/messages',
代码:50006,
http状态:400,
我尝试了几种消息选择方法的变体,但它们都抛出相同的错误
您收到此错误的原因是您尝试发送数组而不是文本。如果您仔细查看您的代码,您会注意到实际的响应数组位于另一个数组内,因此当您随机选择一个时,它将始终是完整数组而不是其中的一个响应。所以 randomMessage
将永远是这个数组 => ["Yehaw", "Yehaw!!", "Yahee", "Cowboy shit"]
。 discord.js
无法将数组作为文本发送,这就是您收到此错误的原因。所以你所要做的就是删除多余的方括号,这样你的最终代码可能看起来像这样:
client.on("messageCreate", (message) => {
const responses = ["Yehaw", "Yehaw!!", "Yahee", "Cowboy shit"];
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length));
let randomMessage = responses[randomNumber];
if (message.author.bot) return;
if (message.content.includes("Yehaw")) message.channel.send(randomMessage);
});
我正在编写一个简单的 discord 机器人,它只是从列表中随机选择一个响应,但我将 运行 保留在同一个 Discord API 错误中。
这是我的代码。
client.on('messageCreate', message => {
const responses = [['Yehaw', 'Yehaw!!', 'Yahee', 'Cowboy shit']];
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length));
let randomMessage = responses[randomNumber];
if (message.author.bot) return;
if (message.content.includes ('Yehaw'))
message.channel.send(randomMessage);
});
这是我的错误信息
DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
at async TextChannel.send (C:\Users\User\Desktop\DiscordBot\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:176:15) {
方法:'post', 路径:'/channels/976509969199407185/messages', 代码:50006, http状态:400,
我尝试了几种消息选择方法的变体,但它们都抛出相同的错误
您收到此错误的原因是您尝试发送数组而不是文本。如果您仔细查看您的代码,您会注意到实际的响应数组位于另一个数组内,因此当您随机选择一个时,它将始终是完整数组而不是其中的一个响应。所以 randomMessage
将永远是这个数组 => ["Yehaw", "Yehaw!!", "Yahee", "Cowboy shit"]
。 discord.js
无法将数组作为文本发送,这就是您收到此错误的原因。所以你所要做的就是删除多余的方括号,这样你的最终代码可能看起来像这样:
client.on("messageCreate", (message) => {
const responses = ["Yehaw", "Yehaw!!", "Yahee", "Cowboy shit"];
let randomNumber = Math.floor(Math.random() * Math.floor(responses.length));
let randomMessage = responses[randomNumber];
if (message.author.bot) return;
if (message.content.includes("Yehaw")) message.channel.send(randomMessage);
});