Wiki / Core Features / 生日

生日

更新者 Maxime_48 · 2小时前 · 浏览量:124

语言: English Français Deutsch Español Português (Brasil) Italiano Nederlands Polski Türkçe Русский 日本語 한국어 中文

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

生日设置页面:左侧是公告频道、身份组和消息选项,右侧是已登记的生日列表


🎂 工作原理

  1. 启用 生日,并打开 生日 页面。
  2. 选择公告频道、发布时间和时区。在设置频道之前不会发布任何公告。
  3. 编写消息,并告诉成员运行 /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 的公告就白发了。
  • 在公开的服务器上,把 最少入服天数 保持在一周或更长。
  • 除非你的社区确实想要,否则保持 显示年龄 关闭;很多人愿意分享日期,但不愿意分享年份。
  • 使用合并阈值:在大型服务器上,连续五次单独提及像刷屏,而一条带有五个提及的消息则像一场庆祝。

❓ 没有发布任何公告

  • 是否设置了频道,机器人能否在那里发送消息和嵌入链接?
  • 今天的公告时间是否已经过去?窗口只有两小时宽。
  • 该成员今年是否已经被公布过了?请查看生日页面上的徽章。
  • 他们加入的时间是否短于 最少入服天数?
  • 这个生日是否真的登记在这个服务器上?成员可能在别处保存了日期,但没有在这里选择加入。