如何在Nextcord中为Slash命令添加多个SlashOption?
可以为Slash命令添加多个SlashOption,具体实现方法如下
当然可以添加多个SlashOption,只需要在命令函数的参数列表中依次定义每个选项即可。以下是基于你的代码修改后的完整实现:
修改后的代码
async def announce(interaction: Interaction, buysell: str = SlashOption( name="bto-stc", description="选择交易类型", choices={"BTO": "BTO", "STC": "STC"}), stock: str = SlashOption( name="stock", description="输入股票代码"), price: float = SlashOption( name="price", description="输入交易价格"), quantity: int = SlashOption( name="quantity", description="输入合约数量"), expiry: str = SlashOption( name="expiry", description="选择到期月份", choices={"Jan": "January", "Feb": "February", "Mar": "March"})): # 创建Embed并添加所有选项字段 embed = nextcord.Embed(description=f"**Options Entry**", color=0x00FF00) embed.add_field(name="** [🎟️] Contract:**", value=f"*{buysell}* *{stock}*", inline=False) embed.add_field(name="** [💰] Price:**", value=f"*{price}*", inline=False) embed.add_field(name="** [📦] Quantity:**", value=f"*{quantity}*", inline=False) embed.add_field(name="** [📅] Expiry:**", value=f"*{expiry}*", inline=False) await interaction.response.send_message(embed=embed, ephemeral=False)
关键说明
- 每个
SlashOption对应Discord命令中的一个输入项,可根据需求定义不同类型的参数(字符串、整数、浮点数等) - 建议为每个
SlashOption添加description参数,用户输入命令时能看到每个选项的提示说明 - 如果需要固定选项,像
buysell和expiry一样,通过choices参数设置键值对,键是用户看到的选项,值是代码中接收的实际值 - 在Embed中依次添加每个选项对应的字段,即可把用户输入的所有内容展示出来
修改后用户调用/announce命令时,会依次看到所有定义的选项,输入完成后Embed会完整显示所有选择内容,和你期望的效果一致。
内容的提问来源于stack exchange,提问作者Jinxed
相关产品推荐
相关产品推荐

