迎新能力用來歡迎進入頻道的人。一次歡迎由面向不同讀者的兩個部分組成:整個房間都會讀到的一行短句,以及只引導新人、別人看不到的私訊內容。
兩個部分
| 設定項目 | 誰會讀到 | 何時 |
|---|---|---|
public_greeting |
頻道裡的所有人 | 只有這個機器人在這裡第一次遇到這個暱稱時 |
greeting |
只有新人 | 重複時間窗允許的每一次加入 |
onboarding_1 … onboarding_4
|
只有新人 | 重複時間窗允許的每一次加入 |
farewell |
取決於 farewell_delivery | 離開時 |
如何設定
/bot set <name> public_greeting <text>\n/bot set <name> greeting <text>\n/bot set <name> onboarding_1 <text>\n/bot set <name> onboarding_2 <text>\n/bot set <name> greeting_delivery private_notice\n/bot set <name> onboarding_delivery private_notice\n/bot set <name> greeter_repeat_window 43200\n/bot set <name> farewell none
它們都接受 none 來清除。被清除的行會被跳過,所以只有問候語的機器人行為和以前完全一樣。引導訊息是編號的而不是附加的:把 onboarding_2 設定兩次會替換它,這正是讓一份佈建腳本可以被反覆貼上的原因。
投遞
| 模式 | 效果 |
|---|---|
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。公開的一行請保持一句話:它是整個房間唯一會讀到、也是唯一會留下的部分。新人需要了解的一切都屬於私訊的那一半。