Improved method of connection to Teamspeak server.
This commit is contained in:
Wruczek 2017-02-01 16:31:32 +01:00
parent 1ffaee0730
commit c33e17c66e
4 changed files with 24 additions and 17 deletions

View File

@ -54,7 +54,7 @@ function getBanlist() {
global $lang; global $lang;
try { try {
$tsAdmin = TeamSpeak3::factory(getTeamspeakURI() . "#no_query_clients"); $tsAdmin = getTeamspeakConnection("#no_query_clients");
$bans = $tsAdmin->banList(); $bans = $tsAdmin->banList();

View File

@ -20,7 +20,7 @@ function getAdminList() {
$localIcons = array(100, 200, 300, 400, 500, 600); $localIcons = array(100, 200, 300, 400, 500, 600);
try { try {
$tsAdmin = TeamSpeak3::factory(getTeamspeakURI()); $tsAdmin = getTeamspeakConnection();
$output = ""; $output = "";

View File

@ -4,29 +4,35 @@ require_once __DIR__ . '/../config/config.php';
require_once __DIR__ . "/../lib/ts3phpframework/libraries/TeamSpeak3/TeamSpeak3.php"; require_once __DIR__ . "/../lib/ts3phpframework/libraries/TeamSpeak3/TeamSpeak3.php";
function pingTeamspeakServerFromConfig() { function pingTeamspeakServerFromConfig() {
return pingTeamspeakServer(getTeamspeakURI() . "&use_offline_as_virtual=1&no_query_clients=1"); return pingTeamspeakServer(getTeamspeakConnection("?use_offline_as_virtual=1&no_query_clients=1"));
} }
function pingTeamspeakServer($uri) { function pingTeamspeakServer() {
try { try {
$tsAdmin = TeamSpeak3::factory($uri); $tsAdmin = getTeamspeakConnection();
if (!$tsAdmin->getProperty("virtualserver_status")) if ($tsAdmin->isOffline())
throw new Exception("Server is offline"); throw new Exception("Server is offline");
return $tsAdmin->getInfo(); return $tsAdmin->getInfo();
} catch (TeamSpeak3_Exception $e) { } catch (TeamSpeak3_Exception $e) {
return false; return false;
} }
} }
function getTeamspeakURI() { function getTeamspeakConnection($arguments = '') {
try {
global $config; global $config;
$host = $config['teamspeak']['host']; $host = $config['teamspeak']['host'];
$login = $config['teamspeak']['login']; $login = $config['teamspeak']['login'];
$passwd = $config['teamspeak']['password']; $passwd = $config['teamspeak']['password'];
$sport = $config['teamspeak']['server_port']; $sport = $config['teamspeak']['server_port'];
$qport = $config['teamspeak']['query_port']; $qport = $config['teamspeak']['query_port'];
return "serverquery://$login:$passwd@$host:$qport/?server_port=$sport";
$tsNodeHost = TeamSpeak3::factory("serverquery://$host:$qport/$arguments");
$tsNodeHost->login($login, $passwd);
return $tsNodeHost->serverGetByPort($sport);
} catch (Exception $e) {
throw $e;
}
} }

View File

@ -17,8 +17,9 @@ function getViewer() {
global $lang; global $lang;
try { try {
$tsAdmin = TeamSpeak3::factory(getTeamspeakURI() . "#no_query_clients"); $tsAdmin = getTeamspeakConnection("#no_query_clients");
return $tsAdmin->getViewer(new TeamSpeak3_Viewer_Html("lib/ts3phpframework/images/viewer/", "lib/ts3phpframework/images/flags/", "data:image")); $base = "lib/ts3phpframework/images";
return $tsAdmin->getViewer(new TeamSpeak3_Viewer_Html("$base/viewer/", "$base/flags/", "data:image"));
} catch (TeamSpeak3_Exception $e) { } catch (TeamSpeak3_Exception $e) {
return '<div class="alert alert-danger"><p class="text-center">' . translate($lang["general"]["scripterror"], [$e->getCode(), $e->getMessage()]) . '</p></div>'; return '<div class="alert alert-danger"><p class="text-center">' . translate($lang["general"]["scripterror"], [$e->getCode(), $e->getMessage()]) . '</p></div>';
} }