如何在Discord.Net现有格式的Slash Command中接收用户输入?
在Discord.Net中通过特性添加Slash命令选项接收用户输入
完全可以不用SlashCommandBuilder,直接在你现有的特性式写法里添加命令选项来接收用户输入。只需要给处理方法加上参数,并搭配[SlashCommandOption]特性即可实现需求。
修改后的代码示例:
[SlashCommand("ping", "ping pong")] public async Task HandlePing( [SlashCommandOption(ApplicationCommandOptionType.String, "input_text", "要让机器人回复的文本", isRequired: true)] string input ) { await RespondAsync(input); }
关键说明:
[SlashCommandOption]特性用来定义命令的选项:- 第一个参数指定选项类型(这里用
ApplicationCommandOptionType.String接收文本输入) - 第二个参数是选项的内部名称(用户输入命令时,Discord会自动优化显示,无需手动输入该名称,直接写内容即可)
- 第三个参数是选项的描述,用于Discord命令菜单的提示
isRequired: true表示这个选项是必填项,用户必须输入内容才能执行命令
- 第一个参数指定选项类型(这里用
这样修改后,用户输入/ping dog,机器人就会直接回复dog,完全符合你的需求,同时保留了原有的特性式代码结构。
内容的提问来源于stack exchange,提问作者knoppies999
相关产品推荐
相关产品推荐

