等级与经验
在频道里写下的每条消息可获得 15 到 25 点经验,随机抽取。
每位成员每分钟只计一次收益:连发十条消息,所得不会多于一条。
机器人、私信和系统消息(加入、置顶)不产生任何收益。
从等级 L 升到下一级需要 5 × L² + 50 × L + 100 点经验。
因此每上一档代价都会提高,而数据库只存累计经验:等级由它推算得出。
最后一列假设的是一场普通对话,按平均收益计算。它给出的是数量级,实际所需时间取决于消息之间相隔多久,因为计数器每分钟只保留一次收益。
每次升级时,机器人会在写下该消息的频道作出回应。
这条公告在控制台中设置:嵌入消息或纯文本、标题、描述、颜色,除常用变量外还可使用
{level} 和 {xp}。机器人无法发言的频道不会阻断任何东西:等级照样到手,只是公告发不出去。
该模块默认开启。关闭它会停止收益和公告,但不会清除任何东西:
排行榜留在数据库里,重新开启时完好如初。要修正个别情况,
/xp 可以增加、扣除或直接设定某位成员的经验;
/rank 和
/leaderboard 用来查看结果。
处罚、历史记录与备注
机器人发出的每一次处罚都会被记录:封禁、临时封禁、踢出、禁言、警告,甚至包括解除操作
(解封、撤销警告)。每一条都会获得自己的十二位编号。
操作的先后顺序并非无关紧要。私信在处罚之前发出,封禁之后,机器人与此人不再共处同一服务器,也就无法再给对方发消息。
而记录则在调用 Discord 之前完成,以便编号先存在;若 Discord 拒绝该操作,记录会被回滚,
档案里不会留下一条幽灵处罚。
临时封禁会为自己安排解除时间。到期时,机器人会确认这次封禁期间没有被管理员重新施加:
如果被重新施加了,它不会解除。期间执行的永久 /ban 会取消已安排的解除。
备注(/note,每次处罚最多 25 条)绝不会展示给
相关成员:它们服务于管理员之间的沟通,几个月后,当没有人还记得当时的来龙去脉时。
门口的防护
三套彼此独立的机制,可以叠加,也可以单独使用:
-
验证码:成员到达时必须完成一道挑战才能拿到身份组。
默认为:3 次尝试、5 分钟,失败则踢出。请求通过私信发出;
若成员关闭了私信,机器人会在你指定的分类下创建一个临时验证频道,仅其本人可见,之后删除。
-
通过网站验证:成员点击一个按钮,在网站上完成,回来时便获得身份组。
这里机器人本身不授予任何东西:由网站向 Discord 核验身份,然后再分配身份组。
-
反突袭:它针对的不是个人,而是流量。在 10 秒内超过 8 次加入(默认值),
它会发出警报、隔离或踢出。账号年龄过滤可以让被卷入浪潮的老成员通行。
隔离身份组是这三者的共同点:在成员到达时施加,限制新来者能看到和能做的事,
通过验证后即移除。只要它还在,控制权就在你手里,没有什么能阻止你手动放行某个人。
工单
一个发布在频道里的面板,最多 25 种请求类型(Discord 下拉菜单的上限),
每一种都有:自己的表情、颜色、欢迎消息、开单表单,以及可以访问它的团队。
开单会在请求者与该团队之间创建一个私密频道。关闭时,对话会以 HTML 形式归档到归档频道,频道消失之后,交流内容依然可读。
音乐与 DJ 身份组
播放依赖专门的音频基础设施。若它不可用,音乐命令会如实说明,
机器人的其余一切照常运作。
控制当前播放的那些命令(/pause、/resume、 /stop、/loop、/volume)仅限 DJ。DJ 指的是:
服务器所有者、管理员、持有“管理服务器”权限的成员,或持有由
/dj add 添加的身份组的成员。因此,只要还没有配置 DJ 身份组,
这些命令就只回应这三类人。员工身份组是另一份名单:它们不赋予 DJ 身份。
只读命令(/queue、/nowplaying、/lyrics)
以及添加曲目(/play)对所有人开放。
抽奖
可接受的时长:从 10 秒到 28 天,写法自由
(30m、1h30m、2d)。每个服务器最多 20 场
进行中的抽奖,每次开奖最多 20 位中奖者。
开奖始终由机器人执行,绝不由网站执行:只有它能在开奖当下核实中奖者仍在服务器上,
并且持有参与所需的身份组。若无人出面认领,/giveaway reroll 可以重新开奖。
日志
21 种事件,分为 5 个类别(消息, 成员, 审核, 语音, 服务器),每一种都可单独开关。
每个类别都能指向自己的频道:审核在一边,消息在另一边。
消息内容从不存入数据库。某条消息被删除时,机器人会在你指定的频道发布一条
嵌入消息,仅此而已。由机器人自己执行的操作(通过 /ban 的封禁)只记录一次,
由指明管理员的审核日志负责。
备份
一次备份为服务器的结构拍下快照(身份组、频道、权限)并回传一个私密编号,通过私信发送。每位所有者可保留 3 份备份。它不含任何消息:
它不是聊天记录。该编号会把这套结构恢复到当前服务器,因此也可以通过在别处导入来克隆一个服务器。
临时语音频道
加入触发频道,就会创建一个由该成员拥有的频道:他可以重命名它、限制其访问权限,或限定人数上限。
频道一空即消失,无需任何清理。