tyx-shells - bouncer, eggdrop-bot und shell zu günstigen preisen
Inhalt
Tutorial: Away-Funktionen
3.4.1 Verhalten bei Verbindungstrennung des Clients
Away-Nachricht
Beendet der Benutzer seinen IRC-Client, so bieten fast alle Bouncer die Möglichkeit, eine Away-Nachricht zu setzen, einen Offlinenick zu benutzen oder/und eine "Abschiedsnachricht" in alle Channels zu schicken.
Die Away-Nachricht setzt man normalerweise mit /away <Nachricht>, sie wird dann angezeigt, wenn ein User in das Query des Benutzers schreibt oder eine Whois-Abfrage abruft.
Mit dem Befehl
wird der Bouncer angewiesen, unmittelbar nach der Verbindungstrennung des Clients im IRC die Awaynachricht zu setzen. Als Antwort erhalten wir:
Einen Away-Text zu setzen ist generell immer zu empfehlen, denn es stört andere IRC-Benutzer nicht und erlaubt einem Benutzer, der eine Nachricht an den Client schicken will, sofort zu sehen, ob der Bouncer im Moment nur die Verbindung aufrecht erhält oder ob der Gesprächspartner auch das Query liest. Allerdings sollte auf Farben, Unterstreichung, Fettdruck etc. wie fast immer verzichtet werden. Will man das Setzen eines Away-Textes unterbinden, so führt man SETAWAY ohne ein Argument aus:
Away-Nick
Soll der Bouncer den Nicknamen ändern, wenn der Benutzer hinter dem Bouncer die Verbindung trennt, so benutzen wir den Befehl
und erhalten die Antwort
Das Benutzen dieser Funktion kann unter bestimmten Umständen jedoch zu Fehlverhalten des Bouncers führen: Ist der gewählte Awaynick zu lang für das jeweilige IRC-Netzwerk, so kann es vorkommen, dass der Bouncer in kurzen Abständen immer wieder den Nicknamen zu Awaynick und wieder zurück ändert, während der Client nicht verbunden ist. Kicks und eventuelle Bans sind damit fast immer verbunden. Als "Workaround" empfiehlt es sich, während man zum Bouncer verbunden ist, den Nick manuell auf den Awaynick zu ändern. Klappt dies einwandfrei, so wird der Bouncer in den seltensten Fällen Probleme haben. Falls doch, ist der Awaynick fast immer der Grund.
Allerdings gehört der Awaynick auch zu den weniger populären Befehlen, da der Nickname nicht dazu da ist, den Anwesenheitszustand des Benutzers darzustellen. In bestimmten Channels kann die Benutzung dieser Option daher zum Kick führen.
Will man nicht, dass der Bouncer einen Awaynick benutzt, so führt man den Befehl einfach ohne Angabe eines Nicknames aus, d.h. der Befehl lautet
und erzeugt die Antwort
Leave-Nachricht
Nun zur am wenigsten zu empfehlenden Möglichkeit, den anderen Benutzern im IRC zu signalisieren, dass man nicht da ist: der Leavemessage. Der Effekt, den eine Leavemessage hat, ist ungefähr der eines /ame-Befehls (Action, wie mit /me, nur in alle Channel gleichzeitig). Das heißt, in dem Moment, in dem der Client die Verbindung zum Bouncer trennt, sendet der Bouncer ein /me in alle Channels, in dem er ist.
Von vielen IRC-Benutzern wird dies als Verstoß gegen die Netiquette betrachtet und kann daher oft dazu führen, dass der Bouncer aus Channels gekickt/gebannt wird. Von daher sollte man sich vor Benutzung dieser Funktion überlegen, ob es wirklich nötig ist, jedem Benutzer in jedem Channel mitzuteilen, dass man jetzt Offline geht und ob es womöglich viele Benutzer stören würde (besonders in "seriöseren" Channels ist eine Leavemessage quasi unter Garantie ein Kick).
Wer es sich gründlich überlegt hat, kann eine Leavemessage mit dem Befehl
einrichten. Die Antwort des Bouncers lautet
und die erzeugte Action in den IRC-Channels beim Verlassen des Bouncers hat die Form
Um die Leavemessage zu entfernen, führt man den Befehl ohne Argumente aus:
Alle drei Befehle lassen sich beliebig kombinieren - aber, wie bereits geschildert, sollte auf SETAWAYNICK und SETLEAVEMSG verzichtet werden. Die SETAWAY-Funktion ist aber generell zu empfehlen und stellt auch die einzig korrekte und offizielle Möglichkeit da, seinen Anwesenheitszustand kundzutun.
3.4.2 Logging
Sobald der IRC-Client geschlossen ist, ist die Verbindung zum Bouncer unterbrochen. Zwar ist der Bouncer weiterhin im IRC und kann Nachrichten entgegennehmen, doch wie gelangen diese zum Client?
Wenn der Bouncer in Abwesenheit des Benutzers ein oder mehrere Queries entgegengenommen hat, "begrüßt" er den Benutzer nach seinem Verbindungsaufbau zum Bouncer mit folgender Nachricht:
Präziser gesagt, wird diese Nachricht immer dann angezeigt, wenn das Nachrichtenlog nicht leer ist. Daher ist es wichtig, dieses nach dem Abruf der geloggten Queries zu löschen, um beim nächsten Verbinden nur dann die Nachricht wieder zu erhalten, wenn auch ein neuer Eintrag im Log ist. Vorerst jedoch wollen wir das Nachrichtenlog ausgeben. Wie die Nachricht schon suggeriert, führen wir daher den Befehl
aus und erhalten eine Ausgabe in der Form:
Würde beispielsweise der Benutzer mit dem Nicknamen "Spiderman" und der Hostmask "peter@parker-spider.de" während Abwesenheit des Bouncerbesitzers diesem am Abend des 4. Mai 2005 ein freundliches "Hallo!" ins Query schreiben, so sähe der entstehende Eintrag im Querylog ungefähr so aus:
Sind mehrere Queries geloggt worden, so werden diese in Eingangsreihenfolge zeilenweise aufgelistet. Wichtig ist auch, dass nicht nur Queries im Nachrichtenlog landen, sondern auch Notices (mit /notice) und Kicks, d.h. wird der Bouncer während Abwesenheit des Clients aus einem Channel gekickt, erzeugt dies einen Log-Eintrag der Form
Nachdem das Nachrichtenlog gelesen wurde, empfiehlt es sich, es zu löschen. Tun wir dies nicht, so erhalten wir beim nächsten Einloggen auf den Bouncer auf jeden Fall wieder den Hinweis, dass es neue Nachrichten gäbe, obwohl es gar keinen neuen Eintrag im Logfile gibt. Um dies zu Umgehen, leeren wir das Nachrichtenlog mit dem Befehl
und erhalten eine Bestätigung:




