我正在尝试在discord.js v12中创建表情符号列表命令。但是,如果我在带有许多表情符号的服务器上运行命令,则会收到“无效的表单主体”错误,因为嵌入说明的字符数不能超过2048个。因此,我试图拆分消息。这是我的代码:
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'emojis',
description: "Gets a guild's emojis",
async run(client, message, args) {
const charactersPerMessage = 2000;
const emojis = message.guild.emojis.cache.map((e) => {
return `${e} **-** \`:${e.name}:\``;
});
const numberOfMessages = Math.ceil(emojis.length / charactersPerMessage);
const embed = new MessageEmbed().setTitle(`Emoji List`);
for (i = 0; i < numberOfMessages; i++) {
message.channel.send(
embed.setDescription(
emojis.slice(i * charactersPerMessage, (i + 1) * charactersPerMessage)
)
);
}
},
};
即使在此之后,我仍然收到相同的“无效主体形式”错误。这是我得到的错误:
(node:211) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
embed.description: Must be 2048 or fewer in length.
at RequestHandler.execute (/home/runner/Utki-the-bot/node_modules/discord.js/src/rest/RequestHandler.js:170:25)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:211) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:211) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
你能帮帮我吗?预先感谢!