WoltLab Cloud TeamSpeak-API 3.0.2

Dieses Plugin dient als Schnittstelle zwischen weiteren Plugins und Ihrem TeamSpeak-Server. Dieses Plugin ist vor allem für Entwickler relevant. Es kann allerdings auch als Basis-Plugin für andere Plugins dienen.

Es können verschiedenen Server-Verbindungen eingestellt werden, auf diese dann von anderen Plugins zugegriffen werden können.


Unterstützt RAW, SSH, HTTP und HTTPS-Querys.

Information für WoltLab-Cloud-Kunden

Achtung: In der WoltLab-Cloud funktionieren lediglich HTTP und HTTPS-Serverquerys. RAW- und SSH-Querys sind in der WoltLab-Cloud nicht funktionsfähig.

Das heißt, dass der TeamSpeak-Server HTTP- bzw. HTTPS-Querys aktviert haben muss um das Plugin in der WoltLab Cloud einzusetzen.

Support

Support gibt es in meinem Supportforum oder auf meinem Discord-Server.

Fragen und Antworten

Wie erstelle ich eine neue Verbindung?

Gehe ins ACP -> Konfiguration -> TeamSpeak -> Server -> TeamSpeak-Server hinzufügen.

Wie kann ich die API in meinem Plugin implementieren?

Füge die Abhängigkeit zu diesem Plugin in deiner package.xml ein:


XML: package.xml
<requiredpackage minversion="3.0.1">eu.hanashi.wsc.teamspeak-api</requiredpackage>

Lass deine Nutzer die Serververbindung im ACP mit Hilfe der option.xml auswählen:

XML: option.xml
<option name="my_plugin_teamspeak_identity">
    <categoryname>my_category</categoryname>
    <optiontype>TeamSpeakConnectionSelect</optiontype>
</option>

Den Namen (im Beispiel my_plugin_teamspeak_identity) und die richtige Kategorie (im Beispiel my_category) musst du natürlich selbst wählen.

Nun erstellst du eine PHP-Klasse im Verzeichnis lib/system/teamspeak welche die Klasse AbstractTeamSpeakHandler erbt:

PHP: MyPluginTeamSpeakHandler.class.php
<?php
namespace wcf\system\teamspeak;

class MyPluginTeamSpeakHandler extends AbstractTeamSpeakHandler {
    protected $teamspeakID = MY_PLUGIN_TEAMSPEAK_IDENTITIY;
}

Den Datei- und Klassennamen darfst du natürlich selbst wählen. Vergiss dabei nicht die richtige Konstante anstatt MY_PLUGIN_TEAMSPEAK_IDENTITIY einzusetzen.

Nun kannst du in anderen Klassen auf die TeamSpeak-API zugreifen. Hier ein Beispiel in einer Action-Klasse:

Wie führe ich einen TeamSpeak-Befehl aus?

Der TeamSpeak-Befehl ist immer gleich der Methode. Die Parameter werden als Array an die Parameter übergeben. Hier einige Beispiele:

Images

  • Version 3.0.2

    Fehlerbehebung

    • behebt die Sicherheitslücke CVE-2023-27560 in phpseclib
  • Version 3.0.1

    Verbesserungen

    • Codestyle-Anpassungen
    • Primary Key in Install-Script hinzugefügt
    • TypeScript Formatierung (siehe Repository)
    • phpseclib aktualisiert
    • XML-Stil vereinheitlicht
    • Template-Formatierung vereinheitlicht

    Fehlerbehebung

    • im ACP Menü war eine falsche Seite zum Anlegen eines TeamSpeak-Servers verlinkt
  • Version 3.0.0

    Achtung: Es wird nun mindestens WoltLab Suite 5.3 vorausgesetzt.

    • CHANGE: Umstellung auf Database PHP API
    • CHANGE: Umstellung auf FormBuilder
    • CHANGE: ungenutzte uses entfernt
    • CHANGE: Umstellung auf GuzzleHttp für HTTP/HTTPS-Query
    • CHANGE: Umstellung des JavaScript-Codes auf TypeScript
    • CHANGE: phpseclib2 auf phpseclib3 aktualisiert
    • FEATURE: Query-Passwort wird beim Bearbeiten des Servers im ACP nicht mehr ausgegeben
    • FEATURE: bessere Auswahl der TeamSpeak-Server
    • FEATURE: bessere Fehlerausgabe wenn Server nicht angelegt werden kann
  • Version 2.1.1

    • CHANGE: Umstellung auf PSR-12
  • Version 2.1.0

    • FIX: Parameter bei HTTP/HTTPS-Query wurden falsch übergeben
    • FIX: Infinite Loop
    • FEATURE: Voraussetzungen für multiplen Server Select eingebaut
  • Version 2.0.0

    • FEATURE: die Nutzung von HTTP- und HTTPS-Server-Querys ist nun möglich
    • CHANGE: Rohe Rückgaben beim execute wurden entfernt
    • CHANGE: Code-Optimierungen
  • Version 1.5.7

    FIX: Deprecated PHP 7.4 function

  • Version 1.5.6

    Verbesserte Ausgabe bei Fehlern zum Besseren Debugging.

    Mit SSH wurde fälschlicherweise eine ErrorException anstatt einer TeamSpeakException ausgegeben.

  • Version 1.5.4

    • CHANGE; Umstellung auf MEDIUMINT damit höhere Ports verwendet werden können
  • Version 1.5.3

    • FIX: Behebt Fehlermeldung wenn keine Verbindung zum TS-Server aufgebaut werden konnte
  • In der Übersicht steht "Support gibt es in mein Supportforum" Der link dazu ist Broken.

    Könnte der Entwickler dies bitte beheben Danke

    • Hallo,


      vielen Dank für die Info. Notfalls steht die Webseite auch rechts in der Sidebar: https://hanashi.dev


      Die Links werde ich zeitnah korrigieren.

    • Danke dir

    • Trotzdem mal ne Frage.

      Ich muss TS API ganz normal installieren und das das TeamSpeak Sync dan dann Funktioniert das Ja.

      Ich habe die Aktuelle Version und PHP 7.2
      Weil ich habe die andere Version von Teamspeak Sync aber der Support ist für Arsch.

      Ich frage voher will nicht wieder Geld in den sand setzten weil ich gerne so was haben möchte

    • Hallo,

      Quote

      Ich muss TS API ganz normal installieren und das das TeamSpeak Sync dan dann Funktioniert das Ja.

      TeamSpeak-Sync liefert die API direkt mit. Du kannst sie also vorher manuell installieren oder mit TeamSpeak-Sync automatisch mit installieren. Natürlich muss das Plugin danach noch entsprechend konfiguriert werden. Mehr dazu findest bei mir im FAQ unter TeamSpeak (das FAQ ist auch ohne Registrierung aufrufbar).

      Quote

      Ich habe die Aktuelle Version und PHP 7.2

      TeamSpeak-Sync läuft auf WoltLab Suite 5.3 und höher. Als PHP Version würde ich mindestens PHP 7.4 empfehlen (noch besser PHP 8.0 oder höher). PHP 7.2 erhält aktuell keine Sicherheitsupdates mehr, mehr dazu findest du hier: https://www.php.net/supported-versions.php

      Ich persönlich unterstütze nur noch PHP 7.4+ und ab November nur noch PHP 8.0+

    • Aha Never Mind hab die Version PHP Version 7.4.28

  • Sehr geiles Plugin

    Ich habe nur ein einziges Problem:

    Die User werden zwar synchronisiert, jedoch wenn sie auf dem Teamspeak reconnecten dann sind die nicht mehr synchronisiert.

    • Hallo, die API synchronisiert nichts. Sie ist lediglich eine Schnittstelle für Entwickler.

  • Kleine Idee für Entwickler:
    Ein TS Bot der, wenn etwas in eine bestimmtes Forum gepostet wurde, daraufhin Member eine bestimmte TS Gruppe via Chat anschreibt, mit folgendem Inhalt:

    Titel,

    Anfangsteil des Inhalts und

    Link zum Posting.


    Quasi ein Notify Funktion für TS3.

    • Sowas ähnliches ist geplant, insofern TS5 global Chats bekommt. Dann wollte ich das wie beim Discord-Sync machen, dass neue Forenbeiträge in einen globalen Chat gepostet werden. Aber erstmal abwarten :)

      Like 1