迎新能力用来欢迎进入频道的人。一次欢迎由面向不同读者的两部分组成:整个聊天室都会读到的一行短句,以及只用于引导新人、其他人看不到的私下消息。
两个部分
| 设置项 | 谁会读到 | 何时 |
|---|---|---|
public_greeting |
频道里的所有人 | 只有这个机器人在这里第一次遇到这个昵称时 |
greeting |
只有新人 | 重复时间窗允许的每一次加入 |
onboarding_1 … onboarding_4
|
只有新人 | 重复时间窗允许的每一次加入 |
visitor_greeting |
只有访客 | 每次访客打开频道 |
farewell |
取决于 farewell_delivery | 离开时 |
如何设置
/bot set <name> public_greeting <text> /bot set <name> greeting <text> /bot set <name> onboarding_1 <text> /bot set <name> onboarding_2 <text> /bot set <name> greeting_delivery private_notice /bot set <name> onboarding_delivery private_notice /bot set <name> greeter_repeat_window 43200 /bot set <name> farewell none
它们都接受 none 来清除。被清除的行会被跳过,所以只有问候语的机器人行为和以前完全一样。引导消息是编号的而不是追加的:把 onboarding_2 设置两次会替换它,这正是让一份配置脚本可以被反复粘贴的原因。
机器人如何迎接访客
没有账户的访客可以阅读频道。 他们不能加入频道,也不能在其中发言。 访客不会收到 greeting 或 onboarding_1 … onboarding_4。 访客到来时,频道里不会发出任何消息。 设置 visitor_greeting 来欢迎他们。 只有该访客能看到。 每次访客打开频道时都会发送。 设置之前,没有机器人会欢迎访客。
/bot set <name> visitor_greeting <text>
发送方式
| 模式 | 效果 |
|---|---|
public |
频道里的一条消息。会保留在历史记录中。 |
channel_notice |
频道里的一条通知。会保留在历史记录中。 |
private_notice |
只有新人能在该频道视图中看到的通知。不会保留在历史记录中。 |
silent |
不发送任何内容。 |
greeting_delivery 管的是问候语;onboarding_delivery 管的是带编号的那些行,未设置时回退到 greeting_delivery。public_greeting 始终是公开的——它本来就是为此而设。
谁算是新人
机器人会记录它在每个频道欢迎过谁,这份记录在重启后依然保留。从未见过的人会收到公开的那一行和私下的几行。距离上次见面超过 greeter_repeat_window 秒的人会再次收到私下的内容,但聊天室不会被重复通知。刚刚还在这里的人什么也收不到。
重复时间窗为 0 表示没有时间窗:私下发送的内容在每次加入时都会发出。公开的那一行仍然是每人只发一次,永远如此。
占位符
每一行都接受 {nickname} 表示加入的人、{channel} 表示房间、{botname} 表示机器人、{prefix} 表示它的命令前缀。这些行同样接受 IRC 格式转义:\c04 红色、\b 粗体、\o 重置。
让聊天室保持可读
每个频道只应有一个机器人负责迎新。两个迎新机器人会把每位新人欢迎两次,这也是为什么在每个聊天室里都有的机器人要设成 greeting none。公开的那一行请保持一句话:它是整个聊天室唯一都会读到、也是唯一会留下的部分。新人需要了解的一切都放在私下发送的那一半。