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:
<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:
<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 3.1.1
-
Hanashi -
October 22, 2023 at 4:22 PM -
394.69 kB -
5 Downloads
Technische Änderungen
- jQuery Code entfernt
- TypeScript Code Update
- Database Objekte kommentiert
- Codestyle-Anpassungen
- SecretFormField nun komplett entfernt
- weitere Verbesserungen
-
-
Version 3.1.0
-
Hanashi -
September 8, 2023 at 4:39 PM -
394.9 kB -
4 Downloads
Diese Version setzt nun mindestens WSC 6.0.0 voraus.
- Anpassungen für WSC 6.0
- wcf\system\teamspeak\SecretFormField ist nun deprecated und wird in einer späteren Version entfernt
- Anpassungen für PHP 8.1/.2
- Deprecations wurden entfernt
- phpseclib wurde aktualisiert
-
-
Version 3.0.2
-
Hanashi -
March 22, 2023 at 8:36 AM -
2.42 MB -
13 Downloads
Fehlerbehebung
- behebt die Sicherheitslücke CVE-2023-27560 in phpseclib
-
-
Version 3.0.1
-
Hanashi -
September 30, 2022 at 9:59 AM -
385.28 kB -
8 Downloads
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
-
Hanashi -
July 16, 2021 at 1:50 PM -
370.59 kB -
98 Downloads
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
-
Hanashi -
July 15, 2021 at 1:20 PM -
252.03 kB -
7 Downloads
- CHANGE: Umstellung auf PSR-12
-
-
Version 2.1.0
-
Hanashi -
November 19, 2020 at 11:15 AM -
252.36 kB -
131 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
-
Hanashi -
October 24, 2020 at 3:30 PM -
251.32 kB -
15 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
-
Hanashi -
May 16, 2020 at 10:21 AM -
1.38 MB -
74 Downloads
FIX: Deprecated PHP 7.4 function
-
-
Version 1.5.6
-
Hanashi -
April 18, 2020 at 3:33 PM -
249.68 kB -
27 Downloads
Verbesserte Ausgabe bei Fehlern zum Besseren Debugging.
Mit SSH wurde fälschlicherweise eine ErrorException anstatt einer TeamSpeakException ausgegeben.
-




