Greeter 機能はチャンネルに来た人を迎えます。歓迎は読み手の違う二つの半分でできています。部屋全体が読む短い一行と、ほかの誰にも見えないまま新しい人を案内する私的な行です。
二つの半分
| 設定項目 | 誰が読むか | いつ |
|---|---|---|
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 |
チャンネルへの notice。履歴に残ります。 |
private_notice |
そのチャンネルの表示の中で、来た人だけに見える notice。履歴には残りません。 |
silent |
何も送られません。 |
greeting_delivery は挨拶に、onboarding_delivery は番号付きの行に効き、設定されていなければ greeting_delivery に従います。public_greeting は常に公開です。そのためのものだからです。
誰が「新しい」か
ボットはチャンネルごとに誰を迎えたかを記録し、その記録は再起動しても残ります。一度も会ったことがない人には公開の行と私的な行が届きます。greeter_repeat_window 秒より前に会った人には私的な行がもう一度届きますが、部屋には二度は伝えません。ついさっきまでいた人には何も届きません。
繰り返しの時間枠が 0 のときは枠がないという意味で、私的な行は参加のたびに送られます。公開の行は変わらず一人につき一度だけです。
プレースホルダー
どの行でも {nickname} は参加した人、{channel} は部屋、{botname} はボット、{prefix} はそのコマンド接頭辞になります。行では IRC の書式エスケープも使えます: \c04 赤、\b 太字、\o リセット。
部屋を読みやすく保つ
挨拶するボットはチャンネルにつき一つにしてください。挨拶役が二つあると新しい人は二度迎えられるので、すべての部屋にいるボットは greeting none にしてあります。公開の行は一文にとどめてください。歓迎のうち部屋全体が読む唯一の部分であり、残る唯一の部分です。新しい人が知るべきことはすべて私的な半分に置きます。