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
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:
Lass deine Nutzer die Serververbindung im ACP mit Hilfe der option.xml auswählen:
<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
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:
<?php
namespace wcf\action;
use wcf\system\teamspeak\MyPluginTeamSpeakHandler;
class MyAction extends AbstractAction {
public function execute() {
parent::execute();
// TeamSpeak-Befehl: serverlist
$serverlist = MyPluginTeamSpeakHandler::getInstance()->serverlist();
// TeamSpeak-Befehl: clientlist -uid -country
$clientlist = MyPluginTeamSpeakHandler::getInstance()->clientlist(['-uid', '-country']);
// TeamSpeak-Befehl: sendtextmessage targetmode=1 target=1 msg=Hello\sWorld!
MyPluginTeamSpeakHandler::getInstance()->sendtextmessage(['targetmode' => 1, 'target' => 1, 'msg' => 'Hello World!']);
}
}
Display More
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:
<?php
use wcf\system\teamspeak\MyPluginTeamSpeakHandler;
// TemSpeak-Befehl: serverlist
MyPluginTeamSpeakHandler::getInstance()->serverlist();
// TemSpeak-Befehl: clientlist -uid -away -groups
MyPluginTeamSpeakHandler::getInstance()->clientlist(['-uid', '-away', '-groups']);
// TemSpeak-Befehl: clientdbfind pattern=Hanashi
MyPluginTeamSpeakHandler::getInstance()->clientdbfind(['pattern' => 'Hanashi']);
// TemSpeak-Befehl: clientdbfind pattern=FPMPSC6MXqXq751dX7BKV0JniSo= -uid
MyPluginTeamSpeakHandler::getInstance()->clientdbfind(['pattern' => 'FPMPSC6MXqXq751dX7BKV0JniSo=', '-uid']);
// TemSpeak-Befehl: sendtextmessage targetmode=2 target=12 msg=Hello\sWorld!
MyPluginTeamSpeakHandler::getInstance()->sendtextmessage(['targetmode' => 2, 'target' => 12, 'msg' => 'Hello World!']);
Display More
-
Version 2.1.0
- 252.36 kB
- 52 Downloads
- FIX: Parameter bei HTTP/HTTPS-Query wurden falsch übergeben
- FIX: Infinite Loop
- FEATURE: Voraussetzungen für multiplen Server Select eingebaut
-
Version 2.0.0
- 251.32 kB
- 13 Downloads
- 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
- 1.38 MB
- 72 Downloads
FIX: Deprecated PHP 7.4 function
-
Version 1.5.6
- 249.68 kB
- 27 Downloads
Verbesserte Ausgabe bei Fehlern zum Besseren Debugging.
Mit SSH wurde fälschlicherweise eine ErrorException anstatt einer TeamSpeakException ausgegeben.
-
Version 1.5.4
- 251.24 kB
- 211 Downloads
- CHANGE; Umstellung auf MEDIUMINT damit höhere Ports verwendet werden können
-
Version 1.5.3
- 249.74 kB
- 25 Downloads
- FIX: Behebt Fehlermeldung wenn keine Verbindung zum TS-Server aufgebaut werden konnte
-
Version 1.5.2
- 249.74 kB
- 146 Downloads
- FIX: Download und Upload von Dateien
- FIX: wenn Datei beim Filetransfer nicht gefunden wurde, wird nun Exception geworfen
-
Version 1.5.0
- 249.71 kB
- 42 Downloads
- FEATURE: es wird nun libssh2 anstatt phpseclib verwendet, wenn dieses installiert ist
-
Version 1.4.1
- 249.52 kB
- 17 Downloads
- CHANGE: Datenbank-Datentypen sinnvoll geändert
- CHANGE: Klasse TeamSpeak umbenannt in TeamSpeakConnectionHandler und verweist nun auf TeamSpeakRawHandler undTeamSpeakSshHandler
- FEATURE: das Filetransfer Protokoll von TeamSpeak kann nun genutzt werden (siehe: AbstractTeamSpeakHandler::uploadFile() und AbstractTeamSpeakHandler::downloadFile())
- FEATURE: Methode zum Berechnen der Client Base64 UID hinzugefügt (siehe TeamSpeakUtil::generateClientBase64UID())
- FEATURE: wenn Debug-Modus vom WSC aktiv ist, werden selbst abgefangene Exceptions geloggt (siehe ACP -> Verwaltung -> Fehler)
- FEATURE: Berechnung der korrekten Icon-ID hinzugefügt (siehe TeamSpeakUtil::getCorrectIconID())
- FEATURE: Snapshot-Funktionalität hinzugefügt (siehe AbstractTeamSpeakHandler::createSnapshot() und AbstractTeamSpeakHandler::deploySnapshot())
- FIX: Filetransfer kann nun auch mit großen Dateien arbeiten
SeraphLP
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.
Hanashi Author
Hallo, die API synchronisiert nichts. Sie ist lediglich eine Schnittstelle für Entwickler.
Eisengrind
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.
Hanashi Author
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