斜杠命令(/help)提供菜单、自动补全和经过校验的选项;前缀命令($help)则是普通消息,输入更快,对于 2022 年之前就使用过 Discord 的人来说也很熟悉。你无需二选一:Noxyr 让每条命令都支持两种方式,默认前缀为 $,每个服务器都可以更改。下面介绍两者实际的区别,以及各自在什么情况下更有优势。
简短的历史
多年来,每个机器人都使用前缀:!play、?ban、-help。后来 Discord 推出了斜杠命令,并在 2022 年通过取消大多数机器人读取消息内容的权限,要求认证机器人使用斜杠命令。斜杠命令因此成为标准,一代用户从未学过前缀的用法。但仍有许多服务器更喜欢直接输入 $help,而不是滚动浏览菜单;而且手机键盘让斜杠菜单操作起来很麻烦,因此同时支持两者的机器人能让所有人都满意。
斜杠命令的优势
- 便于发现。输入
/,所有命令都会连同说明一起出现,无需帮助页面。 - 参数校验。频道选项只接受频道,数字选项只接受数字。错误会在机器人处理之前就被拦截。
- 自动补全。在输入时搜索歌曲、商品或播放列表,只有斜杠命令可以做到。
- 表单。弹出式表单(模态框),例如
/quick catalog add或建议箱,只能通过斜杠交互打开。 - 私密回复。仅你自己可见的临时回复,是斜杠命令的功能。
前缀命令的优势
- 速度。
$skip只需五次击键。无需菜单,也无需等待选择器加载。 - 任何客户端、任何场景。消息就是消息,在最老的手机上,或通过其他平台的桥接,都能使用。
- 肌肉记忆。用
!命令输入了十年的老成员和工作人员,不想重新学习。 - 复制粘贴。工作人员指南可以写“运行
$ticket close reason:spam”,大家直接复制粘贴即可。
Noxyr 如何同时支持两者
每条斜杠命令都有一个同名的前缀版本,子命令和选项也完全相同。Noxyr 会将消息解析为斜杠命令会生成的相同结构,然后运行相同的代码,因此权限和行为完全一致。以下几条规则需要了解:
- 子命令紧跟命令名:
$ticket close、$music settings、$referrals link。 - 选项格式为
名称:值:$sticky set text:"Read the rules" delay:300。引号可以将包含空格的内容保持在一起。未命名的单词会按顺序填入必填选项,因此$play never gonna give you up可以直接使用。 - 提及或名称均可使用:
#channel、@role、原始 ID,或频道或身份组的纯名称。 - 是与否:布尔选项接受 yes/no、on/off、true/false。
- 文件:将图片附加到消息中,即可填入附件选项。
- 私密回复会发送到你的私信。当某条命令的回复只应给你本人看时,回复会发送到你的私信,并附注说明来自哪个服务器,因为普通消息无法设为临时可见。
- 表单仅限斜杠使用。如果某条命令会打开弹出表单,其前缀版本会提示你改为运行斜杠命令。
更改前缀
/prefix view 显示当前前缀,/prefix set prefix:! 用于更改(一到五个字符,不含空格,因此 !、?、n! 或 nx. 都可以),/prefix reset 则恢复为 $。前缀按服务器单独设置,你的自定义机器人也使用同一个前缀。如果服务器中的其他机器人已经在使用 !,请选择其他前缀,以免两个机器人同时响应同一条消息。
你的服务器应该使用哪一种?
两者都用。让新成员使用斜杠菜单,因为它本身就具有引导性;让工作人员和老成员输入前缀命令。唯一需要统一的是文档:请用同一种风格编写内部指南,以免有人怀疑 $ 和 / 的行为是否不同。在 Noxyr 上两者的行为完全相同。
常见问题
前缀命令需要消息内容意图吗?需要,而 Noxyr 已经具备该权限。如果你运行的是自定义机器人,那么在设置时需要开启的两项意图中就包括它。
可以关闭前缀命令吗?如果你希望让它们不那么显眼,可以选择一个不常见的前缀;斜杠命令无论如何都会继续工作。
前缀在不同服务器之间是共享的吗?不是,每个服务器都有自己的前缀。