Discord_slash适合任何刚接触 Discord_slash 的人,相当复杂,在我看来,这些文档有点奇怪且难以理解,因此这里有一个初学者指南,用于开始使用第三方 Discord.py 扩展。
要完全理解这一点,您还必须至少有一点不和谐的经验和Python的经验!
要安装该模块,只需在 Python“脚本”文件夹 CMD 中输入以下内容(Python 文件夹 > 脚本,然后在路径为“cmd”的顶部键入):
pip install discord-py-slash-command
Run Code Online (Sandbox Code Playgroud)
之后,不要忘记使用附加范围 applications.commands ( scope=bot%20applications.commands) 添加您的机器人。您可以获得链接或其他范围,如Discord 开发门户图片中所示

首先,我们将首先创建最简单的代码来使我们的第一个斜杠命令不一致:
pip install discord-py-slash-command
Run Code Online (Sandbox Code Playgroud)
现在,这将创建一个名为“test”的新斜杠命令、上面的描述以及一个名为“first_option”的可选选项,您还必须将其作为函数中的参数。
选项类型3表示用户只能输入字符串。
还有哪些其他类型显示得稍低一些,当您的命令出现不一致时是什么类型。
该命令现在是全局的,因此可以在 Discord 中您的机器人所在的任何位置调用它!如果您希望它特定于公会,请添加guild_ids=GUILD_IDSGUILD_IDS@slash.slash()作为您希望将此命令添加到选项中的所有服务器 ID 的列表。
还要小心,ctx因为它有新功能,但并非所有功能都受支持。ctx.channel.send由于无法定义通道,诸如此类的事情可能会失败。ctx.send将发送对该命令的直接响应。
您还可以通过添加来添加自定义选择
choices=[discord_slash.utils.manage_commands.create_option(name: str, description: str, option_type: Union[int, type], required: bool, choices: Optional[list])]
Run Code Online (Sandbox Code Playgroud)
到选项。
因此,我们首先了解如何手动删除斜杠命令;您可以通过以下方式执行此操作:
await discord_slash.utils.manage_commands.remove_all_commands(bot_id, bot_token, guild_ids: Optional[List of integers])
Run Code Online (Sandbox Code Playgroud)
要删除特定命令,您需要命令 ID来执行;
await discord_slash.utils.manage_commands.remove_slash_command(bot_id, bot_token, guild_id, command_id)
Run Code Online (Sandbox Code Playgroud)
如果我是对的,你可以使用以下命令获取命令 ID
await discord_slash.utils.manage_commands.get_all_commands(bot_id, bot_token, guild_id)
Run Code Online (Sandbox Code Playgroud)
选项类型如下:
| 类型 | 整数 |
|---|---|
| SUB_COMMAND | 1 |
| SUB_COMMAND_GROUP | 2 |
| 细绳 | 3 |
| 整数 | 4 |
| 布尔值 | 5 |
| 用户 | 6 |
| 渠道 | 7 |
| 角色 | 8 |
对于用户、频道和角色,用户可以选择直接通过菜单选择特定的内容,就像您提到的那样,这也将直接作为输入的类传递,而不是作为 ID 或其他内容传递。
以下是当您输入“/”时在 Discord 中的 2 张图片:
(我正在使用 BetterDiscord 主题,所以不要想知道为什么它看起来“奇怪”)
普通命令:
| 颜色 | 这是什么 | 示例是什么 |
|---|---|---|
| 红色的 | 命令名称,必须是 1-32 个字符的字符串 | “测试” |
| 绿色的 | 用户必须输入的参数 | “第一个选项” |
| 蓝色的 | 表示以下参数是可选的 | 在我们输入的这种情况下,它后面的所有内容都是“first_option”required=False |
| 黄色的 | 命令的描述,必须是 1-100 个字符的字符串 | “那些汉堡看起来很好吃” |
具体选项:
| 颜色 | 这是什么 | 示例是什么 |
|---|---|---|
| 绿色的 | 参数(“名称”是红色的,因为我没有输入或输入了错误值) | “first_option”,在示例中您只能为此输入一个字符串 ( option_type=3) |
| 红色的 | 我选择了可选参数“userbegrenzung”来输入一个值并查看说明 | 标红只是为了展示 |
| 黄色的 | 选项说明 | “请记下你想要的汉堡上的东西” |
我希望您现在对该模块有了更好的理解!如果您对此有任何疑问或建议,请随时发表评论!