JDA Discord Bot:设置INTEGER选项范围并触发内置错误的方法
解决JDA中Discord斜杠命令整数选项的数值范围校验问题
要触发Discord内置的数值范围错误提示,你需要用OptionData类定义选项,而非直接调用addOption的简化重载方法。OptionData提供了setMinValue()和setMaxValue()方法,专门用来配置整数选项的数值范围,配置后Discord客户端会自动完成输入校验并弹出内置错误提示。
修改后的代码示例:
jda.updateCommands().addCommands( Commands.slash("casino", "casino commands.") .addSubcommands( new SubcommandData("slots", "Play slots in the Casino.") .addOption(new OptionData(OptionType.INTEGER, "amount", "the amount of money you want to bet.", true) .setMinValue(1) // 设置最小下注金额 .setMaxValue(10000) // 设置最大下注金额 ) ) ).queue();
关键说明:
OptionData的第四个参数true标记该选项为必填项,若允许可选可改为falsesetMinValue()和setMaxValue()仅对OptionType.INTEGER和OptionType.NUMBER类型的选项生效- 配置完成后,用户输入超出范围的数值时,Discord会直接在客户端层面拦截并显示内置错误,无需额外编写if判断逻辑
内容的提问来源于stack exchange,提问作者EntchenEric
相关产品推荐
相关产品推荐

