一个 Discord 机器人可以运行在它被邀请进入的任意多个服务器中;机器人账号并不绑定于单个服务器,你添加它的每个服务器都会拥有各自独立的设置。 从管理机器人到 Noxyr 本身,所有热门机器人都是这样工作的。人们真正容易混淆的是设置:把同一个机器人添加到第二个服务器,并不会复制你第一个服务器的配置;而借助 Noxyr 自定义机器人,你自己品牌化的机器人可以以同样的方式服务你管理的每一个服务器。

One bot connects out to three separate servers, each lighting up with its own independent settings. One bot Server A Server B Server C own tickets own settings own store

为什么 Discord 机器人不绑定于单个服务器

Discord 机器人是一个单独的应用,拥有一个令牌、一条网关连接,以及通过 OAuth2 在每个服务器上授予的一组权限。当你点击“添加到服务器”时,你并不是在创建机器人的新副本;而是在授权这个机器人账号在另一个服务器中读取和执行操作,权限则是你在该页面上授予的。机器人的代码只保持一条到 Discord 的开放连接,并为它所加入的每个服务器接收带有服务器(guild)ID 标记的事件。除了机器人自身的规模所允许的范围之外,平台本身并没有针对每个服务器的限制;Noxyr、MEE6、Dyno 或 Carl-bot 这类通用机器人,都是通过同一个账号在数百万个服务器中运行的。

如果你之前没有做过这件事,我们的将机器人添加到服务器指南详细介绍了邀请流程和权限。

将同一个机器人添加到多个服务器

  • 1. 获取机器人的邀请链接,可以从它的网站或 Top.gg 页面获取。切勿使用私信中粘贴的链接。
  • 2. 打开链接并从下拉菜单中选择一个服务器。你需要在该服务器上拥有“管理服务器”权限,才能看到它作为选项出现。
  • 3. 检查并确认它请求的权限。
  • 4. 对每个额外的服务器重复以上步骤。没有批量邀请的步骤;你需要逐个服务器授权机器人,因为 Discord 每次都要求拥有“管理服务器”权限的成员来授予它。

第 2 到第 4 步都不会改变机器人的身份。它在每个服务器中都是同一个账号、同一个头像、同一个令牌。

同一个机器人,不同服务器,不同设置

这正是让人困惑的地方:把机器人邀请到第二个服务器,并不会把第一个服务器的设置一起带过去。大多数可配置的机器人(包括 Noxyr)都会把设置存储在每个服务器的 ID 下。在服务器 A 中设置的工单分类、欢迎消息、反大规模破坏阈值或商店商品列表,对服务器 B 没有任何影响;邀请之后,你需要为每个服务器从头配置(或者有意识地进行复制)。

Noxyr 的控制面板明确体现了这一点:你管理的每个服务器都有自己的控制面板、自己的模块开关和自己的活动日志。如果你运行多个服务器,并希望复用一套已经运行良好的配置,而不是手动重新搭建,那么控制面板中的复制设置工具(在控制面板与命令对比指南中有介绍)可以应你的要求,在服务器之间复制可移植的部分:模块开关、颜色、文案、限制值。它会有意跳过频道 ID、商品和发票,因为这些内容只指向被复制服务器中才存在的东西。

Noxyr 自定义机器人如何服务每一个被邀请的服务器

以上所有内容对 Noxyr 本身同样适用。Noxyr 的自定义机器人功能将同样的“一个机器人,多个服务器”行为,应用到你自己品牌化的机器人上。你在 Discord 开发者门户中创建自己的应用,把它的令牌交给 Noxyr,然后它就会以你机器人的名称和头像(而不是 Noxyr 的)运行 Noxyr 的全部功能集,包括工单、商店、发票、抽奖、安全等。

一个 Discord 账号只能拥有一个自定义机器人,但这一个机器人可以在任意数量的服务器中工作,与其他任何机器人一样:把它邀请到你管理的每个服务器中,每个服务器都会以你的名称提供服务。前提是 Noxyr 也必须留在这些服务器中,因为你的自定义机器人运行在 Noxyr 的数据库和设置之上,而不是单独的数据库。设置本身需要投一次 Top.gg 票,这会将自定义机器人表单解锁 12 小时;之后,74 小时的宽限期会让机器人在所有被邀请的服务器中继续运行,只有设置页面会被锁定,而且即使投票窗口过期,也不会删除任何数据。完整的机制(包括投票窗口和故障排除)请参阅自定义机器人文档,自定义机器人设置指南则会逐步讲解如何创建应用。

如果 Noxyr 被踢出其中一个服务器会怎样

由于自定义机器人依赖于 Noxyr 在每个服务器中的存在,把 Noxyr 从某个服务器中移除,会在大约一分钟内让你的自定义机器人在该服务器中停止运行。它会私信移除 Noxyr 的人(如果是别人移除的,也会私信你),并附上邀请链接。你的自定义机器人所服务的其他服务器不受影响;只有 Noxyr 离开的那个服务器会停止。重新邀请 Noxyr 后,你的机器人会自动在该服务器中恢复,设置和历史记录都保持不变;而且在它无法运行期间,你的 Top.gg 投票窗口会被保留,而不会继续消耗。

常见问题

一个机器人能加入的服务器数量有上限吗?对于普通机器人,Discord 没有设置上限,不过机器人达到 100 个服务器后,需要通过 Discord 的验证才能继续增长。Noxyr 和它的自定义机器人都已通过验证。

机器人所在的所有服务器是否共享同一份数据?不共享,除非机器人被有意设计成那样。Noxyr 按服务器分别存储工单、商品、发票和设置;一个服务器中的修改永远不会出现在另一个服务器中。

我能否让同一个机器人在每个服务器中使用不同的名称?机器人的名称和头像在其 Discord 应用中设置一次,适用于它运行的所有地方。要使用不同的名称,就需要不同的机器人应用,这也是为什么管理多个品牌的代理机构需要为每个品牌(而不是每个服务器)准备单独的自定义机器人(和账号)。

将机器人添加到更多服务器需要付费吗?使用 Noxyr 不需要。它在每个服务器中都是免费的,自定义机器人唯一的成本是定期的 Top.gg 投票,而不是按服务器收取的费用。

如果想亲自试试,可以免费将 Noxyr 添加到一个服务器,或打开自定义机器人页面,为你管理的每个服务器设置你自己品牌化的机器人。