[How to][PHP] TS3 Framework

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [How to][PHP] TS3 Framework

      Hallo liebe Community,
      da ich öfters gesehen habe, dass einige User hier Probleme mit dem TS3 Framework haben
      möchte ich euch zeigen, wie ihr mit dem TS3 Framework und PHP arbeiten könnt.

      Als aller erstes müsst ihr euch dieses Framework runterladen:
      Download


      Wir fangen mit einem neuen Dokument an und includieren das Framework

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. ?>


      Der nächste Schritt ist, das bestimmen der Serverdaten ( IP, Port, Query User, Query Passwort und Query Port, Query Nickname ).
      Dafür erstellen wir ein Array.
      Der Ts Port ist standartmäßig: 9987 und der Query Port: 10011.

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "UCP_Administrator" // Der Name des Query Admins ( Für messages z.b bei Kick )
      10. );
      11. ?>
      Alles anzeigen


      Jetzt musst eine Verbindung mit dem Server her.

      PHP-Quellcode

      1. $server = array(
      2. "tsip" => "localhost",
      3. "tsport" => "9987",
      4. "ts_query_admin" => "serveradmin",
      5. "ts_query_password" => "*******",
      6. "ts_query_port" => "10011",
      7. "ts_query_user_nick" => "UCP_Administrator" // Der Name des Query Admins ( Für messages z.b bei Kick )
      8. );
      9. try {
      10. TeamSpeak3::init();
      11. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      12. } catch(Exception $e) {
      13. echo "Es konnte keine Verbindung zum TS3 Server hergestellt werden! ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      14. }
      Alles anzeigen


      Nachdem dies Getan ist, können wir mit dem eigentlichen Coding an.

      Kick Funktion:
      Als erstes machen wir eine Kick Funktion, wo der Username bekannt sein musst:

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $clientid = $ts3_VirtualServer->clientGetByName("xGreekz7x");
      15. if( $clientid->kick(TeamSpeak3::KICK_SERVER, "Du wurdest einfach so gekickt.") )
      16. echo "xGreekz7x wurde erfolgreich gekickt!";
      17. } catch(Exception $e) {
      18. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      19. }
      20. ?>
      Alles anzeigen

      Ban Funktion:
      Hier musst der Username ebenfalls bekannt sein.
      Zeit wird in sekunden angegeben!
      Sollte die Zeit auf 0 sein, wird der User permanent gebannt!

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $clientid = $ts3_VirtualServer->clientGetByName("xGreekz7x");
      15. if($clientid->ban(1, "Du wurdest einfach so gebannt!"))
      16. echo "xGreekz7x wurde erfolgreich gebannt!";
      17. } catch(Exception $e) {
      18. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      19. }
      20. ?>
      Alles anzeigen


      Anstups Funktion:
      Man kann den User auch vom UCP aus anstupsen.
      Hier für, wird nur eine Message benötigt.

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $clientid = $ts3_VirtualServer->clientGetByName("xGreekz7x");
      15. if ( $clientid->poke("Anstups Message") )
      16. echo "xGreekz7x wurde erfolgreich angestupst!";
      17. } catch(Exception $e) {
      18. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      19. }
      20. ?>
      Alles anzeigen


      Server Gruppe einteilen:
      Jetzt kommen wir mal zu etwas interessanterem,
      und zwar wie man Server Rechte vergeben kann, egal ob der
      User Offline oder Online ist.
      Dafür wird aber die Eindeutige Identifikations ID des User benötigt kurz: UID.
      Ebenfalls wird die ID der Server Gruppe benötigt.

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $client = $ts3_VirtualServer->clientFindDb("alDSXALBlc6yq4HAFEpFdzd1BVQ=", true);
      15. if( $ts3_VirtualServer->serverGroupClientAdd(6, $client[0]) )
      16. echo "xGreekz7x wurde erfolgreich in die Gruppe 6 gesetzt!";
      17. } catch(Exception $e) {
      18. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      19. }
      20. ?>
      Alles anzeigen


      Server Gruppe entfernen:
      Hierfür, werden ebendfalls die UID, und die Server Gruppen ID benötigt.

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "*******",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $client = $ts3_VirtualServer->clientFindDb("alDSXALBlc6yq4HAFEpFdzd1BVQ=", true);
      15. if( $ts3_VirtualServer->serverGroupClientDel(6, $client[0]) )
      16. echo "xGreekz7x wurde erfolgreich aus der Gruppe 6 entfernt!";
      17. } catch(Exception $e) {
      18. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      19. }
      20. ?>
      Alles anzeigen


      edit v1:

      User - Beschreibung ändern

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "SKP8GIg8",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $client = $ts3_VirtualServer->clientGetByUid("RZdtla/OSPZWgN9Jf9xn+/rIp5k=");
      15. $properties = array("client_description" => "trololol beschreibung");
      16. if( $client->modify( $properties ) )
      17. echo "xGreekz7x erfgolreich bearbeitet!";
      18. } catch(Exception $e) {
      19. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      20. }
      21. ?>
      Alles anzeigen


      edit v2:

      Servergruppen Token erstellen.

      PHP-Quellcode

      1. <?php
      2. require_once('libraries/TeamSpeak3/TeamSpeak3.php');
      3. $server = array(
      4. "tsip" => "localhost",
      5. "tsport" => "9987",
      6. "ts_query_admin" => "serveradmin",
      7. "ts_query_password" => "SKP8GIg8",
      8. "ts_query_port" => "10011",
      9. "ts_query_user_nick" => "trolbob"
      10. );
      11. try {
      12. TeamSpeak3::init();
      13. $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$server["ts_query_admin"].":".$server["ts_query_password"]."@".$server["tsip"].":".$server["ts_query_port"]."/?server_port=".$server["tsport"]."&nickname=".$server["ts_query_user_nick"]."");
      14. $token = $ts3_VirtualServer->tokenCreate ( TeamSpeak3::TOKEN_SERVERGROUP, $sgID ); // sgID = ID der Servergruppe
      15. echo $token;
      16. } catch(Exception $e) {
      17. echo "Fehler!<br/>ErrorID: <b>". $e->getCode() ."</b>; Error Message: <b>". $e->getMessage() ."</b>;";
      18. }
      19. ?>
      Alles anzeigen


      Ich hoffe dieses Kleine Tutorial hilft euch,
      mit dem TS3 Framework zu arbeiten.

      Dieses Tutorial, wird von mir regelmäßig erweitert.
      Solltet ihr noch wünsche für die nächsten Funktionen haben, könnt
      ihr mich gerne per PN kontaktieren.

      MfG xGreekz7x

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von xGreekz7x ()

    • Sehr schön erklärt :)

      + Die Preise liegen bei 5-100+€ Ablauf:
      + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
      + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
      + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



      edmix23

      + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!


      +Paypal!
      +Direkte Banküberweisung


    • erstmal danke für dein kleines Tutorial und ich hoffe du kannst mir bei meinem Problem helfen.
      Ich bin zur Zeit dabei ein Control Panel für virtual-RP zu erstellen.
      Dabei soll man sich darüber im TeamSpeak registrieren können.

      => Neue User bekommen die TS-Gruppe "Unregistriert", durch Eingabe der UID im Panel wird diese auf "Registriert" geändert.

      Da es bereits zu Beginn bei mir zu Problemen kam, keine Error-Meldung kam aber auch die Gruppe sich nicht ändern wollte, hab ich mir einfach mal die foreach schleife ausgeben lassen, also die komplette liste der UID's die er durchläuft

      das ergebnis: es werden nur 25 UID's angezeigt, mehr nicht... es kommen keine neuen UID's mehr hinzu obwohl sich viel mehr Leute auf dem TS befinden.
      Auch meine UID ist nicht zu finden
      über ts selber (Rechte -> Alle Clients anzeigen) lassen sich allerdings alle UID's problemlos anzeigen (auch meine)

      woran könnte das liegen ? :(
    • derHobbit schrieb:

      erstmal danke für dein kleines Tutorial und ich hoffe du kannst mir bei meinem Problem helfen.
      Ich bin zur Zeit dabei ein Control Panel für virtual-RP zu erstellen.
      Dabei soll man sich darüber im TeamSpeak registrieren können.

      => Neue User bekommen die TS-Gruppe "Unregistriert", durch Eingabe der UID im Panel wird diese auf "Registriert" geändert.

      Da es bereits zu Beginn bei mir zu Problemen kam, keine Error-Meldung kam aber auch die Gruppe sich nicht ändern wollte, hab ich mir einfach mal die foreach schleife ausgeben lassen, also die komplette liste der UID's die er durchläuft

      das ergebnis: es werden nur 25 UID's angezeigt, mehr nicht... es kommen keine neuen UID's mehr hinzu obwohl sich viel mehr Leute auf dem TS befinden.
      Auch meine UID ist nicht zu finden
      über ts selber (Rechte -> Alle Clients anzeigen) lassen sich allerdings alle UID's problemlos anzeigen (auch meine)

      woran könnte das liegen ? :(
      Das weiß ich jetzt auch nicht so genau,
      ich habe es nur testweise auf meinen localhost TS gemacht.
      Kannst dich gerne bei mir per PN melden, dann könnten wir mal zsm. iwann schauen
      woran es liegen könnte ^^

      MfG