Discord.js(v13)SlashCommandBuilder addIntegerOption set Range

4

我想编写一个清除消息的斜杠命令。一切都很好,但有一件事我无法真正弄清楚:

如何在斜杠命令构建中设置整数选项的范围,或者是否有这样的东西,还是我需要采用老式方式并响应值超出范围?

以下是将注册的斜杠命令的数据:

data: new SlashCommandBuilder()
        .setName('clear')
        .setDescription('Clears specified amount of Messages')
        .addIntegerOption(option => {
            option
            .setName('amount')
            .setRequired(true)
            .setDescription('The Amount of Messages to clear')
        }),

2
我认为你不能设置范围,我相信你必须在回调函数中处理它(检查它是否大于最大值或小于最小值)。 - MrMythical
2
谢谢你修复我的写作 :) - Snoweuph
2个回答

4
正如Snoweuph所说,他们的答案是不正确的——你可以使用setMinValue()setMaxValue()设置最小最大值。
以下是代码示例:
data = new SlashCommandBuilder()
    .setName("example")
    .setDescription("wow look at me!")
    .addIntegerOption(option =>
        option.setName("integer")
            .setDescription("some name i guess")
            .setMinValue(0)
            .setMaxValue(22)
    );

在Discord中,如果用户选择的整数过大或过小,他们将收到一条错误消息。
这里是一个Discord聊天记录的示例:

enter image description here

这也适用于数字选项(文档)。


1
遗憾的是,没有设置范围的选项,但有一个新的东西叫做ephemeral,您可以在interaction.reply()中使用它作为设置。
示例:
interaction.reply({ content: "Your amount is bigger than 500", ephemeral: true"})

result

ephemeral 只让命令的用户看到回复,如果用户想要删除它,他可以通过按下蓝色文本“Nachricht verferfen”来完成,因为我的Discord设置为德语。 编辑 我需要更正一下,实际上对于整数选项,有最小值和最大值选项,对于某些其他选项(如字符串选项),您实际上可以编写自己的自动完成。

你知道这个问题是否在开发人员的关注列表中吗? - RedGuy11
很遗憾,这与discord.js本身无关,而是与discord api本身有关,discord.js无法实现discord本身没有的功能 :) - Snoweuph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接