Die Begrüßungsfunktion heißt Leute in einem Kanal willkommen. Eine Begrüßung hat zwei Hälften mit verschiedenem Publikum: eine kurze Zeile, die der ganze Raum liest, und die privaten Zeilen, die den Neuling einführen, ohne dass jemand sonst sie sieht.
Die zwei Hälften
| Einstellung | Wer es liest | Wann |
|---|---|---|
public_greeting |
Alle im Kanal | Nur beim ersten Mal, wenn dieser Bot diesen Spitznamen hier trifft |
greeting |
Nur der Neuling | Bei jedem Betreten, das das Wiederholungsfenster erlaubt |
onboarding_1 … onboarding_4
|
Nur der Neuling | Bei jedem Betreten, das das Wiederholungsfenster erlaubt |
farewell |
Hängt von farewell_delivery ab | Beim Verlassen |
So werden sie gesetzt
/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
Jede von ihnen nimmt none, um sie zu löschen. Eine gelöschte Zeile wird übersprungen, ein Bot mit nur einer Begrüßung verhält sich also genau wie immer. Die Einstiegszeilen sind nummeriert statt angehängt: onboarding_2 zweimal zu setzen ersetzt sie, und genau das erlaubt es, ein Provisionierungsskript mehr als einmal einzufügen.
Zustellung
| Modus | Wirkung |
|---|---|
public |
Eine Nachricht im Kanal. Sie bleibt im Verlauf. |
channel_notice |
Eine Notiz im Kanal. Sie bleibt im Verlauf. |
private_notice |
Eine Notiz, die nur der Neuling sieht, in der Ansicht dieses Kanals. Sie bleibt nicht im Verlauf. |
silent |
Es wird nichts gesendet. |
greeting_delivery gilt für die Begrüßung; onboarding_delivery gilt für die nummerierten Zeilen und fällt auf greeting_delivery zurück, wenn es nicht gesetzt ist. public_greeting ist immer öffentlich — genau dafür ist es da.
Wer als neu gilt
Der Bot merkt sich, wen er in jedem Kanal begrüßt hat, und das übersteht einen Neustart. Wen er nie getroffen hat, bekommt die öffentliche Zeile und die privaten. Wen er vor mehr als greeter_repeat_window Sekunden getroffen hat, bekommt die privaten erneut, aber dem Raum wird es kein zweites Mal gesagt. Wer eben noch hier war, bekommt nichts.
Ein Wiederholungsfenster von 0 heißt, es gibt kein Fenster: die privaten Zeilen gehen bei jedem Betreten raus. Die öffentliche Zeile geht weiterhin einmal pro Person raus, ein für alle Mal.
Platzhalter
Jede Zeile akzeptiert {nickname} für die Person, die kam, {channel} für den Raum, {botname} für den Bot und {prefix} für sein Befehlspräfix. Zeilen akzeptieren auch die IRC-Formatierungs-Escapes: \c04 rot, \b fett, \o Reset.
Den Raum lesbar halten
Nur ein Bot pro Kanal sollte begrüßen. Zwei Begrüßer heißen jeden Neuling zweimal willkommen, und deshalb steht ein Bot, der in jedem Raum steht, auf greeting none. Halte die öffentliche Zeile bei einem Satz: sie ist der einzige Teil einer Begrüßung, den der ganze Raum liest, und der einzige, der bleibt. Alles, was ein Neuling lernen muss, gehört in die private Hälfte.