Client-ID anhand des Namens herrausfinden

  • Hallo zusammen


    Ich habe eine Frage.
    ich möchte anhand eines php Scripts ein User vom TS kicken können
    Das Problem ist, das ich es so versucht habe:
    fputs($fp,"clientkick clid=2 reasonid=4 reasonmsg=Mach\sdich\svom\sAcker!");
    in der Datenbank hat mein Account die id 2 vom TS
    Da das aber nicht Funktioniert, frage ich mich wie ich es machen kann, das ich den Namen da nur eigebe und der mich dann kickt?


    Sprich ich habe das so gedacht
    fputs($fp,"clientkick clid=Beavis reasonid=4 reasonmsg=Mach\sdich\svom\sAcker!");
    Wie mach ich das?

    All in all it's just another brick in the wall

  • nimm das TS3 Framework ;)


    //edit: sollte gehen.

    3 Mal editiert, zuletzt von xGreekz7x ()

  • Die ts3admin.class.php ist besser, und der ersteller ist deutscher also kann dieser dir dabei besseren Support geben.


    Wenn du damit Probleme hast, dort sind beispiele bei und falls du das nicht verstehst kann ich dir dabei helfen.


    #e
    Das sind die Funktionen die die .class besitzt: http://ts3admin.info/manual/classes/ts3admin.html

  • Habe mal schnell drübergeschaut:


    clientGetIds


    clientGetIds(string $cluid) : array


    Displays all client IDs matching the unique identifier specified by cluid.


    Output:


    Array
    {
    [cluid] => nUixbdf/XakrrmsdffO30R/D8Gc=
    [clid] => 7
    [name] => Par0noid
    }


    author Par0noid Solutions
    access public



    evtl. hilft dir das weiter? habe es mir aber nicht näher angesehn

  • Kann man auch prüfen ob der User online ist auf den TS?
    Mit der Funktion?


    ist eigentlich easy
    try catch kennst du ja bestimmt aus der programmierung,
    dies kannst du auch hier benutzen


    PHP
    try
    {
         .....
         $virtualserver->clientGetByName($_SESSION["username"])->kick(TeamSpeak3::KICK_SERVER, "Du bist ein Fisch");
         echo "Client wurde Gekickt";
    }
    catch(Exception $e)
    {
         echo "Client ist nicht online";
    }

    mfg
    Ali ;)

  • Achso geht das :D


    Aber mal was anderes bei den hier
    TeamSpeak3::init();
    $instance = TeamSpeak3::factory("serverquery://".$tsip.":".$tsquery."");
    $instance->login($ts3user, $tspass);
    $virtualserver = $instance->serverGetByPort($tsport);
    $virtualserver->clientGetByName($_GET["name"])->clientBan($_GET["time"], $_GET["reason"]);
    echo 'Ban von '.$_GET["name"].' erfolgreich';
    Wiso passiert da nichts?

    All in all it's just another brick in the wall



  • PHP
    //Die PHP abfrage müsste dann so sein
    tstest.php?name=Cryptex&time=1&reason=Fisch

    mfg
    Ali ;)

  • Naja das klappt auch nicht
    das kommt bei raus:


    Fatal error: Uncaught exception
    'TeamSpeak3_Adapter_ServerQuery_Exception' with message 'insufficient
    client permissions (failed on b_client_ignore_bans)' in
    C:\xampp\htdocs\libraries\TeamSpeak3\Adapter\ServerQuery\Reply.php:314
    Stack trace:
    #0
    C:\xampp\htdocs\libraries\TeamSpeak3\Adapter\ServerQuery\Reply.php(91):
    TeamSpeak3_Adapter_ServerQuery_Reply->fetchError(Object(TeamSpeak3_Helper_String))
    #1
    C:\xampp\htdocs\libraries\TeamSpeak3\Adapter\ServerQuery.php(141):
    TeamSpeak3_Adapter_ServerQuery_Reply->__construct(Array, 'banclient
    clid=...', Object(TeamSpeak3_Node_Host), true)
    #2 C:\xampp\htdocs\libraries\TeamSpeak3\Node\Abstract.php(73):
    TeamSpeak3_Adapter_ServerQuery->request('banclient clid=...', true)
    #3 C:\xampp\htdocs\libraries\TeamSpeak3\Node\Server.php(90):
    TeamSpeak3_Node_Abstract->request('banclient clid=...', true)
    #4 C:\xampp\htdocs\libraries\TeamSpeak3\Node\Abstract.php(97):
    TeamSpeak3_Node_Server->request('banclient clid=...')
    #5 C:\xampp\htdocs\libraries\TeamSpeak3\Node\Server.php(898):
    TeamSpeak3_Node_Abs in C:\xampp\htdocs\libraries\TeamSpeak3\Adapter\ServerQuery\Reply.php on line 314
    bei den code
    $ts3_VirtualServer = TeamSpeak3::factory("serverquery://".$ts3user.":".$tspass."@".$tsip.":".$tsquery."/?server_port=".$tsport."");


    $name = $_GET["name"];
    $time = $_GET["time"];
    $reason = $_GET["reason"];


    $clientid = $ts3_VirtualServer->clientGetByName($name);
    $ts3_VirtualServer->clientBan($clientid, $time, $reason);

    All in all it's just another brick in the wall