Hallo Zusammen!
ich besitze einen Teamspeak und habe dazu einen Channel-Creator. (eigentlich 2)
Bitte schaltet nicht sofort weg, denn ich vermute, dass der TS teil wenig damit zutun hat.
Es ist so, dass in dem einen Channel-Creator ein Teil vorhanden ist, der im anderen manuell eingestellt werden muss: Die automatische Erkennund der UUID
(→ Jede Identität hat eine UUID)
Doch, bei dem Channel-Creator, wo die automatisch erkannt wird, funktioniert das Createn nicht...
Mir geht es aber darum, dass die automatisch im anderen erkannt wird.
CODES:
Automatische Erkennenung
<?PHPrequire_once('libs/TeamSpeak3/TeamSpeak3.php');require_once('config.php');require_once('libs/recaptcha/src/autoload.php');require_once('libs/chadd.php');
$type = @$_GET['type'];
function Response($code, $header, $msg) { $resp = array( "code" => $code, "header" => $header, "msg" => $msg, ); $data = json_encode($resp); echo $data; exit;}
switch($type) {
case 0:
$request = json_decode(file_get_contents("php://input"));
$recaptcha = new \ReCaptcha\ReCaptcha($secret);$resp = $recaptcha->verify($request->captcha_resp, $_SERVER['REMOTE_ADDR']);
if($resp->isSuccess()) {
if($chadd->CheckCookie()) { Response(406, "Error :(", "You can't create a channel again."); }
//REPLACE bad words $request->channelname = $chadd->ReplaceBadString($badwords, $request->channelname);
if($chadd->CheckStringIP($request->channelname)) { Response(403, "Error :(", "In your Channel Name is no IP Adress or Domain allowed."); }
if($chadd->CheckStringDomain($request->channelname)) { Response(403, "Error :(", "In your Channel Name is no IP Adress or Domain allowed."); }
if($request->quality < 1 || $request->quality > 10) { $request->quality = 7; }
switch ($request->codec) { case 1: define("TS3_CODEC", TeamSpeak3::CODEC_OPUS_VOICE); break;
case 2: define("TS3_CODEC", TeamSpeak3::CODEC_CELT_MONO); break;
case 3: define("TS3_CODEC", TeamSpeak3::CODEC_SPEEX_ULTRAWIDEBAND); break;
default: define("TS3_CODEC", TeamSpeak3::CODEC_OPUS_VOICE); }
try {
$ts3_VirtualServer = TeamSpeak3::factory("serverquery://$ts3_username:$ts3_password@$ts3_host:$ts3_q_port/?server_port=$ts3_s_port"); $ts3_VirtualServer->selfUpdate(array('client_nickname'=> $ts3_nick));
$client = $ts3_VirtualServer->clientGetByUid($request->uuid); $groups = $client['client_servergroups']; $group_matches = 0;
foreach($allowed_groups as $g) { if(in_array($g, $allowed_groups)) { $group_matches++; } }
if($group_matches <= 0) { Response(403, "Not Authorized", "Not allowed to use this tool, you are not in a whitelisted group."); }
$cid = $ts3_VirtualServer->channelCreate(array( "channel_name" => $request->channelname, "channel_password" => $request->password, "channel_topic" => $channel_topic, "channel_codec" => TS3_CODEC, "channel_codec_quality" => $request->quality, "channel_flag_permanent" => FALSE, "cpid" => $cpid, "channel_description" => $channel_description, ));
//log cid with IP (abuse) $usr_ip = $_SERVER['REMOTE_ADDR']; $ts3_VirtualServer->logAdd("Channel $cid created from IP:$usr_ip", TeamSpeak3::LOGLEVEL_INFO);
$token = $ts3_VirtualServer->privilegeKeyCreate(0x01, "$chadmin_group_id" ,"$cid", "TOKEN created from CHADD.");
$chadd->SetCookie();
$resp = array( "code" => 1, "header" => "All fine! :)", "token" => (string)$token, "url" => "$server_conn_url?port=$ts3_s_port&cid=$cid&channelpassword=$request->password&token=$token", );
$json = json_encode($resp); echo $json; exit;
}
catch (TeamSpeak3_Exception $e) { Response(500, "TS3-Error: "+ $e->getCode(), $e->getMessage()); }
} else { $errors = $resp->getErrorCodes(); if(count($errors) >= 1) { Response(403, "Error :(", $errors[0]); }}
break;
case 1:
try { $ts3_VirtualServer = TeamSpeak3::factory("serverquery://$ts3_username:$ts3_password@$ts3_host:$ts3_q_port/?server_port=$ts3_s_port"); $ts3_VirtualServer->selfUpdate(array('client_nickname'=> $ts3_nick)); $clients = $ts3_VirtualServer->clientList(array('connection_client_ip' => $_SERVER['REMOTE_ADDR']));
$matches = count($clients); if($matches > 1 || $matches <= 0) { Response(404, "Client not found.", "Could not determine your Unique ID. Enter your Unique ID."); }
if($matches == 1) { foreach($clients as $c) {
if(count($c->getClones()) > 1) { Response(404, "Client not found.", "Could not determine your Unique ID. Enter your Unique ID."); }
$resp = array( "code" => 200, "header" => "Authenticated", "uuid" => (string)$c['client_unique_identifier'], "name" => (string)$c['client_nickname'], );
$json = json_encode($resp); echo $json; exit;
} } }catch (TeamSpeak3_Exception $e) { Response(500, "TS3-Error: "+ $e->getCode(), $e->getMessage());}
break;
}?>
Alles anzeigen
Manuelle Version:
<?phprequire_once ("TeamSpeak3.php");include ('config.php');error_reporting(0);
$ChannelName = $_POST['name'];$ChannelPassword = $_POST['password'];$idUnica = $_POST['idts'];
if (!$ChannelName || !$idUnica) { echo "Bitte fülle alle Felder aus!"; exit();}
$ts3_VirtualServer = TeamSpeak3::factory("serverquery://" . $UserAdmin . ":" . $PWQuery . "@" . $IP_TS . ":" . $PuertoQuery . "/?server_port=" . $PuertoTS . "");$ListaDeChannels = $ts3_VirtualServer->request("channellist")->toString();
if (strpos($ListaDeChannels, $ChannelName)) { echo "Es existiert bereits ein Channel mit diesem Name!"; exit();}
$clID = $ts3_VirtualServer->clientGetByUid($idUnica);$top_cid = $ts3_VirtualServer->channelCreate(array( "channel_name" => $ChannelName, "channel_password" => $ChannelPassword, "channel_codec" => TeamSpeak3::CODEC_SPEEX_WIDEBAND, "channel_flag_permanent" => FALSE,));
$clID = $ts3_VirtualServer->clientGetByUid($idUnica);$infoCliente = $ts3_VirtualServer->execute("clientgetnamefromuid", array( "cluid" => $idUnica))->toList();$cldbid = strval($infoCliente['cldbid']);$ts3_VirtualServer->execute("clientmove", array( "clid" => $clID, "cid" => $top_cid));$ts3_VirtualServer->execute("setclientchannelgroup", array( "cldbid" => $cldbid, "cid" => $top_cid, "cgid" => '5'));echo "Dein Channel wurde erstellt!"?>
Nun möchte ich, dass beim manuellen die UUID auch automatisch erkannt wird, da ich nicht weiß, was im ersten der Teil dafür ist.
Ich hoffe, dass reicht an informationen
___________
Simuletsplay