成员只需用 /birthday set 登记一次生日,机器人就会在当天于你选择的频道里送上生日祝福,还可以附带一个临时的生日身份组。

🎂 工作原理
- 启用 生日,并打开 生日 页面。
- 选择公告频道、发布时间和时区。在设置频道之前不会发布任何公告。
- 编写消息,并告诉成员运行
/birthday set。
到了当天,机器人会发布你的公告,如果你配置了生日身份组就会发放,并在时长结束后收回。
🗓️ 一个生日,所有服务器通用
设置了文字前缀后,同样的操作也可以通过普通消息完成,例如 !birthday set 14 July。参见 文字命令与前缀。
成员的日期是按 Discord 账号存储一次的,而不是每个服务器存一次。已经在另一个运行 YAWBDB 的服务器上登记过生日的人,什么都不用输入:在这里运行 /birthday set,就等于选择加入。
这意味着:
- 不必在五个不同的服务器里重复输入同一个日期。
/birthday remove只会在这个服务器上退出。日期仍会为其他服务器保留。/birthday forget会在所有服务器上彻底删除这条记录。即使某个服务器关闭了这个功能,这个命令也始终有效。
没有人能在他没有选择加入的服务器上看到成员的生日。
⌨️ 成员命令
| 命令 | 作用 |
|---|---|
/birthday set |
保存日期。包括日、月,以及可选的出生年份。 |
/birthday get |
显示你自己的生日;如果其他成员在这里选择加入了,也可以查看他们的。 |
/birthday next |
列出这个服务器上即将到来的生日。 |
/birthday remove |
停止在这个服务器上公布你的生日。 |
/birthday forget |
把你的生日从 YAWBDB 中彻底删除。 |
所有回复都是私密的,只有运行命令的人才能看到。当天的公告是唯一公开的内容。
出生年份是可选的,只用来显示年龄。省略年份的成员,永远不会被显示年龄。
💻 在面板中设置
成员也可以在自己的面板个人资料里设置或移除自己的生日,完全不用碰 Discord,前提是他们的 Discord 账号已关联到面板账号,因为面板正是通过这个关联知道哪个生日是他们的。
规则与 /birthday set 相同:日、月和可选的年份,修改之后同样有 30 天锁定。这是整个账号通用的日期,并不绑定于某一个服务器,和 /birthday set 写入的记录完全一样,只是它给你的是一个界面,而不是一条斜杠命令。
⚙️ 设置
| 设置 | 作用 |
|---|---|
| 公告频道 | 发布消息的位置。必填。 |
| 公告时间 / 时区 | 当天的生日在当地的哪个整点发布。这个时间之后,发布窗口会保持开放两小时。 |
| 要提及的身份组 | 与公告一起被提及。可选。 |
| 生日身份组 | 在当天发放,并自动移除。可选。 |
| 身份组保留时长 | 生日身份组保留多少小时,范围从 1 到 168(一周)。 |
| 最少入服天数 | 加入时间短于此值的成员,当年会被跳过。 |
| 超过此人数则合并 | 同一天的生日超过这个数量时,会合并成一条消息发布,而不是分成几条。 |
| 显示年龄 | 显示年龄,仅限主动提供了出生年份的成员。 |
| 同时通过私信祝贺 | 通过私信把同样的消息发给被公布的成员,但不带身份组提及。关闭了私信的成员,和其他人一样只会看到频道里的帖子。 |
为什么有两小时的窗口? 当天的公告只会在你选定的时间到之后两小时之间发布。在这个窗口之外不会发布任何内容,所以在晚上把日期设为“今天”的成员,要等到明年,而不会触发一次立即的提及。
✍️ 编写公告
消息使用与 嵌入构建器 相同的编辑器来编写:上方是一行纯文字,下方是完整的嵌入内容,右侧是实时预览。
这些占位符可以用在文字中,也可以用在嵌入内容的任何地方:标题、描述、字段、页脚:
| 占位符 | 会变成 |
|---|---|
{mention} |
对该成员的提及;在合并的消息中则是对所有人的提及 |
{user} |
与 {mention} 相同 |
{age} |
他们即将满的年龄。在合并的消息中为空;如果他们没有提供出生年份,或者 显示年龄 已关闭,也为空 |
{count} |
有多少位成员正在被庆祝 |
如果消息和嵌入内容都留空,机器人会退回使用一句朴素的 “🎂 Happy birthday @member!”,而不是在某人生日当天什么都不发。
公告绝不会提及 @everyone 或 @here。
🛡️ 没有人能霸占聚光灯
生日公告是在公共频道里的一次提及,所以很容易被滥用。有几项措施可以防止这一点:
- 每个服务器每年一次。 无论成员改写日期多少次,在某个服务器上,他们每个日历年最多被公布一次。退出再重新加入,也不会重置这个限制。
- 命令本身从不发布任何公告。 只有定时检查才会发布,所以把日期设成今天并不会触发消息。
- 修改有频率限制。 第一次保存是免费的,因为人们会输错。之后再修改日期,就会锁定 30 天。
- 最少入服时间。 设置它,可以防止全新的账号加入、认领今天、然后收获一次提及。
- 上文所述的两小时窗口。
如果某位成员确实输错了日期、现在被锁定了,工作人员可以在 生日 页面上解除锁定。
🧑💼 面板这一侧
生日页面会列出所有选择加入的人,按生日临近的程度排序,并为被锁定或今年已经公布过的成员加上徽章。
- 解锁:为确实输错的成员解除 30 天的修改冷却。
- 移除:删除该成员的生日,仅限这个服务器。他们在其他服务器上的记录不受影响。
🏆 生日与等级
如果启用了 等级,奖励图 会增加一个 生日时 触发器。它每年对每位成员触发一次,就在他们的公告发出之后。
你可以把它接到任何动作上:发放额外的 XP、赠送当天的个人 XP 倍率、分配身份组、发送私信。和所有跨功能的触发器一样,在启用生日功能之前,这个节点在调色板中会一直处于锁定状态。
✅ 权限
生日功能需要在公告频道拥有基础机器人权限(View Channels、Send Messages、Embed Links),如果使用生日身份组,还需要 Manage Roles。参见 功能权限。
机器人的身份组在 Server Settings → Roles 中必须位于生日身份组之上,否则 Discord 会拒绝分配。
要提及某个身份组,要么把该身份组设为可被提及,要么授予机器人 Mention @everyone, @here, and All Roles 权限。
💡 最佳实践
- 选一个你的服务器里大家真正醒着的时间:凌晨 03:00 的公告就白发了。
- 在公开的服务器上,把 最少入服天数 保持在一周或更长。
- 除非你的社区确实想要,否则保持 显示年龄 关闭;很多人愿意分享日期,但不愿意分享年份。
- 使用合并阈值:在大型服务器上,连续五次单独提及像刷屏,而一条带有五个提及的消息则像一场庆祝。
❓ 没有发布任何公告
- 是否设置了频道,机器人能否在那里发送消息和嵌入链接?
- 今天的公告时间是否已经过去?窗口只有两小时宽。
- 该成员今年是否已经被公布过了?请查看生日页面上的徽章。
- 他们加入的时间是否短于 最少入服天数?
- 这个生日是否真的登记在这个服务器上?成员可能在别处保存了日期,但没有在这里选择加入。