【发布时间】:2021-10-18 18:16:20
【问题描述】:
在使用 Discord.js v13 创建命令时,我遇到了一个我似乎无法弄清楚的有趣错误。
如果我使用命令处理系统并通过不久前为开发人员应用程序创建的 Application Commands 功能 Discord 创建带有 channel 输入字段的命令,我运行运行 Node.js 应用程序时出现以下错误:
F:\Development\eco-bot\node_modules\@discordjs\builders\dist\interactions\slashCommands\Assertions.js:44
throw new TypeError(`Expected to receive a ${instanceName} builder, got ${input === null ? 'null' : 'undefined'} instead.`);
^
TypeError: Expected to receive a SlashCommandChannelOption builder, got undefined instead.
at Object.assertReturnOfBuilder (F:\Development\eco-bot\node_modules\@discordjs\builders\dist\interactions\slashCommands\Assertions.js:44:15)
at MixedClass._sharedAddOptionMethod (F:\Development\eco-bot\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\CommandOptions.js:76:22)
at MixedClass.addChannelOption (F:\Development\eco-bot\node_modules\@discordjs\builders\dist\interactions\slashCommands\mixins\CommandOptions.js:40:21)
at Object.<anonymous> (F:\Development\eco-bot\commands\faq.js:7:10)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
在提出任何关于它的问题之前,是的,所有其他命令都已正确加载并发送到 Discord 的应用程序命令 API,并且 Discord 会正确注册它们。
这是产生问题的代码:
const { SlashCommandBuilder } = require('@discordjs/builders')
module.exports = {
data: new SlashCommandBuilder()
.setName("faq")
.setDescription("Send a FAQ question and answer in selected channel")
.addChannelOption(channel => {
channel
.setName("channel")
.setDescription("Channel you want to send the FAQ embed in")
.setRequired(true)
}),
async execute (interaction) {
await interaction.reply("Pong! :ping_pong:")
}
}
【问题讨论】:
标签: javascript node.js discord discord.js bots