Teamspeak 3 Projekte
Privatprojekt, Open Source
Durch meine Leidenschaft als Gamer bin ich damals – wie viele Gamer – zum Nutzer von Teamspeak geworden; damals noch Teamspeak 2. Highlight des Jahres 2009 war dann die Veröffentlichung der ersten Teamspeak 3 Beta Version. Durch meine damalige Arbeit bei Heidtec.org (Hoster für Gameserver) habe ich mich nicht nur mit dem Client, sondern eben auch intensiv mit dem Server und dessen Installation sowie seinen zahlreichen Konfigurationsmöglichkeiten beschäftigt.
Bis heute hat diese Leidenschaft gehalten. Seit 2011 hoste ich inzwischen meinen eigenen kleinen Teamspeak 3 Server, auf dem inzwischen mehrere Hundert Leute am Tag vorbeischauen, um sich mit ihren Freunden beim Zocken zu unterhalten.
Als Programmierer kamen mir natürlich auch zig Projektideen, die man in Verbindung mit einem Teamspeak 3 Server und seinem umfangreichen Telnet Interface umsetzten könnte:

Statistik
Die Statistik wird regelmäßig ausgeführt und sammelt diverse Daten über den Server und dessen Benutzer. So wird z.B. protokolliert wie viele Benutzer online sind, wie lange Benutzer mit anderen Benutzern interagieren, wie viele Beschwerden gegen Benutzer vorliegen und einige andere Dinge.
Zum Zeitpunkt der Veröffentlichung war dies noch eine eigenständige Webseite. Heute ist die Funktionalität der Statistik jedoch in die Gamer SuchTy’s Webseite integriert.
Basierend auf den Daten der Statistik liefert die Webseite dort Informationen zur Uptime des Servers, der Anzahl bekannter Benutzer und diverse Benutzerrekorde. Daten wie „Benutzer online“, „Benutzerrekorde“ und „Anzahl bekannter Benutzer“ werden in einem Graphen visualisiert. Hierbei steht der gesamte Zeitraum seit Beginn der Aufzeichnung zur Verfügung.
Seit 2018 werden die Daten der Statistik zudem von einem eigens entwickelten Ranking-System dazu verwendet Benutzern automatisch eine entsprechende Servergruppe zuweisen.

Update Notifications
Leider bietet Teamspeak 3 bis heute keine integrierte Möglichkeit, um Besitzer eines Servers über eine neue Version zu informieren. Daher ist zeitgleich mit der Statistik ein kleines Script entstanden, welches die Version des Servers regelmäßig überprüft und mich via Poke auf dem Server benachrichtigte, sollte eine neue Version verfügbar sein.
Seit 2018 ist eine überarbeitete Version dieses Scripts als Open Source verfügbar. Inzwischen wird die von Teamspeak bereitgestellte API zum Überprüfen der Version verwendet und Benachrichtigungen werden schlicht per E-Mail versendet, sodass nicht länger Rechte für die Verwendung des Teamspeak3-Query benötigt werden.

Multi-Actions
Ein weiteres Feature, das schon lange überfällig ist, ist die Möglichkeit mehrere Benutzer kicken, bannen, verschieben oder anschreiben zu können. Zumindest für Administratoren wären diese Funktionalitäten in manchen Fällen äußerst praktisch. Daher ist auch hier eine kleine Webseite entstanden, auf der sich Moderatoren meines Servers anmelden können, um die oben genannten Aktionen auf mehrere Benutzer gleichzeitig ausüben zu können.
Leider hat sich dieses Projekt nicht bewährt, da sich eine Webseite als zu umständlich herausstellte – da Admins bei einem Zwischenfall zunächst die Webseite aufrufen, sich anmelden und anschließend noch die korrekten Personen auswählen mussten. Besonders Letzteres hat sich als schwierig herausgestellt, da Störenfriede gerne zwischen verschiedenen Channeln hin und her springen, was die Auswahl auf der Webseite umso schwieriger für die Admins gestaltete.

Complaint Notifications
Teamspeak 3 bietet die Möglichkeit Beschwerden gegen andere Benutzer einzureichen. Erreich ein Benutzer eine bestimmte Anzahl von Beschwerden, die vom Server Administrator eingestellt werden kann, wird der betroffene Benutzer für eine bestimmte Zeit vom Server ausgeschlossen. Das Problem an dieser Funktion ist, dass sie von Taugenichtsen leicht missbraucht werden könnte. Denn ist die benötigte Anzahl der Beschwerden relativ niedrig angesetzt, könnte es ganz leicht missbraucht werden, um unschuldige vom Server auszuschließen. Ist der Wert jedoch zu hoch eingestellt, wird die Funktion quasi ausgehebelt und kleinere Benutzergruppen können gegen Unruhestifter nichts mehr ausrichten.
Bei jeder Beschwerde kann ein Grund mit angegeben werden. Interessant war hierbei zu sehen, wie genau Benutzer diese zum Teil formuliert haben. Denn in den meisten Fällen handelte es sich hierbei nicht um einen einfachen Grund XY, sondern meistens wurden darin die Moderatoren adressiert, doch bitte etwas zu tun. Doof nur, dass die Moderatoren von den Beschwerden nichts mitbekommen, da ja eigentlich der Server alles regeln sollte.
Also habe ich ein kleines Script geschrieben, welches in regelmäßigen Abständen auf neue Beschwerden überprüft. Sollten gerade Moderatoren online sein, werden diese vom Server nun über die neuen Beschwerden informiert, sodass sie den betroffenen Benutzern besser und schneller helfen können. Das Ganze wurde also in eine Art Ticketsystem umgewandelt, wo für es viele offenbar ohnehin schon hielten.
Zudem fließen eingereichte Beschwerden nun auch in die Statistik eines Benutzers mit ein und beeinflussen so die Servergruppe, welcher ein Benutzer vom Ranking zugewiesen wird.

Balance Channel 2.0
Ich persönlich bin ein Freund von kompakten und übersichtlichen Channelbäumen. Doof nur, dass inzwischen so viele Benutzer auf dem Server sind, dass die vorhandenen Channel oft nicht mehr reichen. Die Möglichkeit, temporäre Channel erstellen zu können, wird von vielen Benutzern einfach nicht genutzt, da sie vermutlich auf den meisten Server nicht aktiviert ist.
Also musste ein Script her, das Abhilfe schafft. Die Aufgabe von Balance Channel ist es, die Anzahl der freien Channel zu überwachen und bei Bedarf neue Channel zu erstellen bzw. auch wieder zu entfernen, sollten diese nicht mehr benötigt werden. Die Channel erhalten hierbei einen konfigurierten Namen, Beschreibung und Symbol, wodurch sie von permanenten Channel leicht hervorgehoben werden. Im Gegensatz zu den permanenten Channeln, werden die Balance Channel nicht nummerisch, sondern alphabetisch indexiert.
Die Anzahl der gewünschten freien Channel, bestimmte Channel Rechte, der Channelname und die Beschreibung können hierbei je Eltern-Channel einzeln konfiguriert werden, sodass Balance Channel so flexibel wie möglich an einen Server anpassbar ist.

Messages
Teamspeak bietet die Möglichkeit offline Nachrichten an andere Benutzer zu senden. Leider scheinen die Empfänger diese meist nicht zu bemerken, da Teamspeak lediglich ein kleines unauffälliges Symbol am unteren Rand des Fensters anzeigt, um auf ungelesene offline Nachrichten hinzuweisen. Dieses Script benachrichtigt Benutzer mittels Poke über ihre ungelesenen offline Nachrichten.
Auch das Ranking-System macht sich dieses Script zu eigen, da Benutzer mittels offline Nachrichten über Änderungen an ihrer Servergruppe informiert werden.

Blacklist
Um zu verhindern, dass Benutzer anstößige oder reservierte Nicknamen verwenden, überwacht dieses Script die Nicknamen aller Benutzer, die gerade online sind. Sollte ein Benutzer einen Nicknamen verwenden, der ein gesperrtes Wort beinhaltet, wird dieser mittels Poke durch das Script verwarnt. Es können verschiedene Filter eingerichtet werden & für jeden dieser Filter kann die Anzahl der Verwarnungen, die Dauer des Bans sowie ein Multiplikator für Wiederholungstäter definiert werden.
Je nach Filter erhält der Benutzer also eine bestimmte Anzahl an Verwarnungen vom Server. Wird der gesperrte Teil des Nicknamen nicht innerhalb der Frist entfernt, wird der Benutzer für eine bestimmte Zeit vom Server gebannt. Sollte der Benutzer bereits zuvor Verwarnungen erhalten haben (egal welcher Filter anschlug), wird die Anzahl der alten Verwarnungen mit dem Multiplikator des aktuellen Filters multipliziert, um die neue Dauer des Bans zu ermitteln. Für Wiederholungstäter fällt die Strafe also jedes Mal höher aus – unbegrenzt.
Neben Nicknamen von Benutzern werden auch die Namen temporärer Channel überwacht, welche von den Nutzern frei definiert werden können. Sollen hier ein Filter anschlagen, wird der betroffene Begriff schlicht zensiert und eine Warnung an die Nutzer des jeweiligen Channels übermittelt.

Ranking
Dieses Skript war bereits in Planung, seit ich den Teamspeak Server 2012 in Betrieb genommen habe. Doch zuvor mussten zunächst die Projekte Statistics, Complaint Notifications, Blacklist, Messages & Community Website realisiert werden, da dieses Skript auf Daten und Funktionen jedes dieser Projekte zurückgreift.
Basierend auf dem Verhalten eines Benutzers wird dieser automatisch einer Servergruppe zugewiesen. Wer in der Community aktiver ist als andere, der erreicht auch schneller eine neue Gruppe (Statistics & Community Website). Wer hingegen negativ auffällt und andere stört, wird eine oder sogar mehrere Gruppen herabgestuft (Complaints & Blacklist). Zusätzlich werden die Benutzer über eine Hoch- bzw. Herabstufung der Gruppe via offline Message informiert (Messages).