Discord 里的 Anvil
一个机器人,一次邀请,不用注册任何应用。这里讲它发什么、发到哪里、能在你的服务器里改动什么——以及它哪天不动了,你该看哪里。
一个机器人,已经建好
#没有 Discord 应用要创建,没有令牌要生成,也没有密钥要粘贴。Anvil 运行一个所有氏族共用的机器人,所以接入就是一次邀请,仅此而已。
你仍然可以自带——在 Use your own bot instead (advanced) 下粘贴一个令牌,就会改用它。只有当你希望机器人在成员列表里显示你氏族的名字和头像时才值得;本指南里的一切在两种情况下表现完全相同。
接入它
#两件事,按这个顺序。机器人必须在你的服务器里,而 Anvil 必须知道哪个服务器是你的。
随后面板告诉你的是事实而不是你的意图:机器人是否真的是那个服务器的成员,以及它缺少哪些权限。那里的一行绿字,比一份保存好的表单更有价值。
设置 Webhook
#Anvil 通过 Webhook 发帖,每个频道一个,而且全都是可选的。在你把某个信息流指向某个频道之前,什么都不会发到任何地方——崭新的氏族是刻意安静,不是出了差错。
Anvil 机器人在你的服务器里时,Admin → Discord 顶部的 Set it up for me 会建好频道,并把每个信息流都指向它们。想手动设置,就打开 More settings → What goes where,先设 Clan & events 上的 Catch-all channel,再设 In-game (plugin) 上的 In-game catch-all:从下拉菜单里选一个频道,就会自动保存。没有机器人时,在 Discord 中打开该频道的 编辑频道 → 整合 → Webhook,创建一个,复制网址,在下拉菜单里选 Paste a webhook…,粘贴后按 Save。Webhook 网址可以向频道发帖,所以要像密码一样保管;如果泄露,请在 Discord 中删除并新建。Test,以及用来在两个 Webhook 之间轮换繁忙帖子的 Add another,都在 Post without a bot 下。
Leagues、Deadman 及其他模式
#Leagues、Deadman、hardcore 及其他模式运行在各自的世界中,使用各自的角色。它们的帖子始终带有标识,且从不计入排行榜或比赛。它们有自己的标签页:Admin → Discord → What goes where → Game modes。成员首次游玩某模式后,该模式会出现在那里。
每个模式都有一个开关和一个 To 频道。开启 Send game-mode posts to their own channels 即可使用这些频道;关闭则所有模式都发到普通频道,但仍带有标识。模式行上的 Posts 按钮会列出它发送的每种类型(常规类型以及该模式自己的活动),每种都有自己的开关。
在该列表下方,Custom thresholds 可让某模式发布的内容少于主游戏。Post drops rarer than 1 in…(至少 2)和 Post drops worth at least (gp)(至少 1,000)设定各自的下限(留空 = 与主游戏相同),然后按 Save drop thresholds:总是发布的物品仍会发布,但只因价值而计入的掉落则不会。Use its own level milestones 仅当升级同时符合两套规则时才发布。
来自其他插件或机器人的旧 Webhook
#机器人在你的服务器里时,Discord 页面会列出服务器里所有不属于 Anvil 的 Webhook。Coming from other plugins? 提供 Use the same channels,这样 Set it up for me 会发到你旧信息流原来发的地方,你的成员那边什么都不用变。
等你的成员都用上 Anvil 之后,前往 Remove old webhooks from other plugins,勾选要删掉的那些,按 Remove … webhooks,再按 Yes, remove them。这会在 Discord 里把它们永久删除——无法撤销。
这个列表包含任何不属于 Anvil 的 Webhook,而不只是其他插件的。有想保留的,比如另一个机器人的信息流?按 Keep,它就离开列表;Show kept 和 Put back 可以把它找回来。保留只是在这里隐藏它——Discord 里什么都不会变。
身份组与昵称
#两种同步默认关闭,需要在 Admin → Discord → Roles & nicknames 中启用,而且两者都以成员名单为依据。打开 Enable Discord role sync,保持 Auto-match in-game rank → Discord role by name 开启,按需选择通用的 Member roles 和 Guest roles,保存后按 Sync roles & nicknames now。每个人还必须关联一个 Discord 身份;同步报告会列出它无法识别的人。
Owner、Deputy Owner、Coordinator、Overseer、General、Captain、Lieutenant、Sergeant、Corporal 或 Recruit。自定义等级只要其 Discord 身份组使用同一名称,也同样适用。匹配不区分大小写,下划线视同空格,但多余的单词不会匹配:General 可以;OSRS General 不行。成员和访客身份组是另外选的,所以名称可以任意。斜杠命令
#机器人在你的服务器里响应 /bingo(棋盘、排名、规则、你自己的卡片),以及 /sotw、/stats、/coffer 等氏族命令。它们读取网站上的实时数据,所以没人需要离开 Discord 就能看到自己的位置。每条命令及其选项都有专门的页面。
机器人加入后大约一分钟它们才会出现。如果始终不出现,说明那次邀请授予了机器人却没有授予它的命令——这是两项独立权限,而较早的邀请链接只申请了其中一项。在 Discord 页面的 Connection 下重新运行 Invite / re-invite the bot 即可;这不会踢出机器人,也不会重置任何东西。
它发什么,什么时候发
#两个来源。当某处看起来不对时,值得分清哪个是哪个。
站点 发布活动:板开放、报名、开赛、排名、结果。它们从 Anvil 自身发出,无论有没有人装插件都照常工作。
插件 发布游戏里发生的事:掉落、宠物、死亡、等级、收集日志格、战斗成就。它们只对运行插件的成员存在,所以掉落频道安静,通常意味着插件安静,而不是 Webhook 坏了。
掉落阈值
#Anvil 默认为 1m gp 或 1 in 1,000。掉落满足其中任一条件即发布。任何人都不能将数值设得低于这些,设为 0 则关闭该项。
在 Admin → Discord → What goes where → Drops 下设置团队默认值:Default minimum drop value (gp)、Default: post drops rarer than 1 in… 和 Require both。开启 Require both 后,掉落必须同时满足价值and稀有度。
每个角色都遵循其所属团队的默认值,若无团队则遵循 Anvil 的默认值。玩家可以在 Settings 中自行设置数值。页面显示 Using clan default 或 Custom,Reset 可恢复默认。
Hard floor: never post drops more common than 1 in… 是严格的限制。成员在你团队的频道中不能设得比它更宽松。他们自己的 webhook 则不受此限。
为繁忙频道添加更多 webhook
#单个 webhook 的发送速度有限。对于繁忙的活动,请为同一频道添加更多 webhook。按 Busy channel? Let the bot add … more webhooks(需要 Manage Webhooks 权限),或将多个 webhook 链接粘贴到频道的输入框中。当你有 50 名或以上玩家、每分钟大量发帖,或 Discord 最近提示过 “slow down” 时,Anvil 会建议你添加更多。最多 10 个就足够了。
Anvil 会在它们之间轮流发送。如果 Discord 对某个 webhook 提示 “slow down”,该 webhook 会暂停片刻,由下一个接手发帖。如果某个 webhook 被删除或失效,它会被跳过 10 分钟。只要有一个 webhook 可用,帖子就会持续发出。
所有 webhook 都必须指向同一频道。如果不是,Anvil 会警告你。使用 Test 检测某个 webhook,或使用 Stop posting here 将其移除。
发布到 Discord
#管理员可以在管理菜单 Clan 下的 Post to Discord 以机器人身份发帖。选一个 Channel,写好 Message,然后按 Send message。较长的文本,比如一本规则手册,会自动拆成几条消息。
Send as an embed 默认开启,并增加可选的 Title 和 Accent colour;关掉它就发纯文本。Ping 用来选择要提及的身份组或 @everyone,Anvil 会在发送前先问你一下。
你发出的每条帖子都会列在 Sent from here 下。Edit 会在 Discord 里修改它而不再次提及任何人,Delete 会把它删掉。
当它安静下来
#按顺序来,因为每一条都排除下一条:
这里的一切都在 管理 → Discord 上:顶部是快速设置,下面是 More settings——Connection、What goes where、Event posts、Roles & nicknames、Team channels、Commands 和 Post without a bot。
卡住了,或者有什么不对? 在 Anvil 支持 Discord 中提问