Inhaltsverzeichnis
DeafToAFK (MuMo Modul)
Dieses Modul für MuMo verschiebt Benutzer, die sich gerade stumm und staub bestellt haben, sofort in einen einstellbaren AFK-Kanal; beim „enttauben“ werden die Benutzer wieder in den vorherigen Kanal zurückgeschoben.
Bug behoben in Version 1.0.1
Details im Blog, siehe hier.
Neu in Version 1.0.0:
Die Statusobjekte werden nicht mehr im Dateisystem gespeichert sondern direkt in MuMo. Dies hat den Vorteil, dass Server mit viel IO nicht mehr zum Flaschenhals werden. Der Nachteil ist jedoch, dass beim Restart von MuMo der Status aller Benutzer verloren geht. Nach meiner Meinung überwiegt der Vorteil, da man sowas eher selten neustartet :)
Neu in Version 0.9.3:
Mitglieder der Gruppe, die in excluded_from_afk eingetragen ist, werden nicht verschoben; in der Standardeinstellung heißt diese Gruppe 'excludedafk'. Es gilt nur die Zugehörigkeit im Root-Kanal.
Das Script
Das Script und die .ini-Datei gibt es bei Github: https://github.com/Natenom/mumblemoderator-module-collection/tree/master/deaftoafk.
Installation
Siehe hier: Installation neuer Module für MuMo.
Wie man an die Kanal-ID herankommt, steht unter KanalID / ChannelID / channel_id.
Eigenschaften
- Für registrierte Benutzer wird der Status auch bei einem Disconnect gespeichert; sobald man auf den Server zurückkommt (man befindet sich ja noch im AFK-Kanal) und sich entstaubt, kommt man wieder in den vorherigen Kanal.
- Falls man den während AFK-Status den Server verlässt, sich entstaubt und wiederkommt, landet man zuerst im AFK-Kanal (da der Server das speichert), wird aber sofort wieder in den vorherigen Kanal verschoben.
- Für registrierte Benutzer wird die UserID gespeichert, für nicht registrierte Benutzer die SessionID.
- Wenn ein unregistrierter AFK-Benutzer den Server verlässt, wird sein Status verworfen; man hat ja nichts womit man ihn wiedererkennen könnte.
- Verlässt man den AFK-Kanal und entstaubt sich dann erst, dann wird man nicht mehr in den ursprünglichen Kanal verschoben sondern verbleibt wo man ist.
- Suppress-Status (grünes Redeverbot) wird gespeichert und wiederhergestellt.
- Wurde der vorherige Kanal gelöscht seit man AFK ist, so landet man beim entstauben im Standardkanal des Servers.
- Es wird das Löschen von Kanälen überwacht; ist ein AFK-Benutzer in einem dieser Kanäle drin, wird seine gespeicherte channel_id auf defaultchannel umgeschrieben und er landet dort nach dem Entstauben. Dies umgeht den „Bug“ von Mumble, dass die channel_id bei temporären Kanälen nicht eindeutig ist: Wird ein temporärer Kanal a erstellt, erhält er die id x. Wird a gelöscht und sofort danach b erstellt, so erhält dieser auch wieder die id x.
- Mitglieder der Gruppe, die in excluded_from_afk eingetragen ist, werden nicht verschoben; in der Standardeinstellung heißt diese Gruppe 'excludedafk'. Es gilt nur die Zugehörigkeit im Root-Kanal.
Todo
- Code schön machen …
- neben channel, state, usw. auch noch ein Feld „message“ speichern, damit man diese beim zurückschieben ausliest und dem Benutzer mitgibt.
Sinnvoll z. B. wenn der temp. Kanal zwischenzeitlich entfernt wurde, usw. - done:
Wenn ein Benutzer in einer bestimmten Ausnahmegruppe ist, wird er nicht vom Script erfasst. - solved:
Wird ein temporärer Kanal gelöscht und danach ein neuer erstellt, dann bekommt der neue die Kanal-ID des vorherigen Kanals, da diese wieder frei ist; dadurch landen Benutzer, die in der zwischenzeit AFK waren, dann in dem neuen, eigentlich falschen, Kanal.
Fixed: Es wird das Löschen von Kanälen überwacht, ist ein Benutzer in einem dieser Kanäle drin, wird seine gespeicherte channel_id auf defaultchannel umgeschrieben und er landet dort nach dem Entstauben.
Demonstration
Das Video hat keinen Ton: https://f.natenom.de/nidx/shv/mumble/2012_mumble_deaftoafk_demo.mp4