release 1.3.9

This commit is contained in:
Newcomer1989
2020-08-03 13:02:27 +02:00
parent 2336177eca
commit d196dfb1f6
62 changed files with 3731 additions and 4211 deletions

View File

@@ -1,5 +1,5 @@
<?PHP
function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$select_arr) {
function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,&$db_cache) {
$starttime = microtime(true);
$nowtime = time();
$sqlexec = '';
@@ -8,7 +8,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
shutdown($mysqlcon,$cfg,1,"calc_user:".$lang['wiconferr']);
}
$addtime = $nowtime - $select_arr['job_check']['calc_user_lastscan']['timestamp'];
$addtime = $nowtime - $db_cache['job_check']['calc_user_lastscan']['timestamp'];
if($addtime > 1800) {
enter_logfile($cfg,4,"Much time gone since last scan.. set addtime to 1 second.");
@@ -18,13 +18,14 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$addtime = 1;
}
$sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='calc_user_lastscan'; UPDATE `$dbname`.`user` SET `online`=0 WHERE `online`=1; ";
$db_cache['job_check']['calc_user_lastscan']['timestamp'] = $nowtime;
$sqlexec .= "UPDATE `$dbname`.`job_check` SET `timestamp`=$nowtime WHERE `job_name`='calc_user_lastscan';\nUPDATE `$dbname`.`user` SET `online`=0 WHERE `online`=1;\n";
$multipleonline = $updatedata = $insertdata = array();
if(isset($select_arr['admin_addtime']) && count($select_arr['admin_addtime']) != 0) {
foreach($select_arr['admin_addtime'] as $uuid => $value) {
if(isset($select_arr['all_user'][$uuid])) {
if(isset($db_cache['admin_addtime']) && count($db_cache['admin_addtime']) != 0) {
foreach($db_cache['admin_addtime'] as $uuid => $value) {
if(isset($db_cache['all_user'][$uuid])) {
$sqlexec2 = '';
$isonline = 0;
foreach($allclients as $client) {
@@ -32,15 +33,15 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$isonline = 1;
$temp_cldbid = $client['client_database_id'];
if($value['timecount'] < 0) {
$select_arr['all_user'][$uuid]['count'] += $value['timecount'];
if($select_arr['all_user'][$uuid]['count'] < 0) {
$select_arr['all_user'][$uuid]['count'] = 0;
$select_arr['all_user'][$uuid]['idle'] = 0;
} elseif ($select_arr['all_user'][$uuid]['idle'] > $select_arr['all_user'][$uuid]['count']) {
$select_arr['all_user'][$uuid]['idle'] = $select_arr['all_user'][$uuid]['count'];
$db_cache['all_user'][$uuid]['count'] += $value['timecount'];
if($db_cache['all_user'][$uuid]['count'] < 0) {
$db_cache['all_user'][$uuid]['count'] = 0;
$db_cache['all_user'][$uuid]['idle'] = 0;
} elseif ($db_cache['all_user'][$uuid]['idle'] > $db_cache['all_user'][$uuid]['count']) {
$db_cache['all_user'][$uuid]['idle'] = $db_cache['all_user'][$uuid]['count'];
}
} else {
$select_arr['all_user'][$uuid]['count'] += $value['timecount'];
$db_cache['all_user'][$uuid]['count'] += $value['timecount'];
}
}
}
@@ -89,6 +90,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
unset($sqlexec2, $user, $usersnap);
}
}
unset($db_cache['admin_addtime']);
}
foreach ($allclients as $client) {
@@ -96,6 +98,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$name = $mysqlcon->quote((mb_substr($client['client_nickname'],0,30)), ENT_QUOTES);
$uid = htmlspecialchars($client['client_unique_identifier'], ENT_QUOTES);
$sgroups = array_flip(explode(",", $client['client_servergroups']));
if (!isset($multipleonline[$uid]) && $client['client_version'] != "ServerQuery" && $client['client_type']!="1") {
$clientidle = floor($client['client_idle_time'] / 1000);
if(isset($cfg['rankup_ignore_idle_time']) && $clientidle < $cfg['rankup_ignore_idle_time']) {
@@ -107,52 +110,53 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
} elseif($cfg['rankup_excepted_group_id_list'] != NULL && array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list'])) {
$except = 2;
} else {
if(isset($select_arr['all_user'][$uid]['except']) && ($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 2) {
$select_arr['all_user'][$uid]['count'] = 0;
$select_arr['all_user'][$uid]['idle'] = 0;
if(isset($db_cache['all_user'][$uid]['except']) && ($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 2) {
$db_cache['all_user'][$uid]['count'] = 0;
$db_cache['all_user'][$uid]['idle'] = 0;
enter_logfile($cfg,5,sprintf($lang['resettime'], $name, $uid, $client['client_database_id']));
$sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `uuid`='$uid'; ";
$sqlexec .= "DELETE FROM `$dbname`.`user_snapshot` WHERE `uuid`='$uid';\n";
}
$except = 0;
}
if(isset($select_arr['all_user'][$uid])) {
$idle = $select_arr['all_user'][$uid]['idle'] + $clientidle;
if ($select_arr['all_user'][$uid]['cldbid'] != $client['client_database_id'] && $cfg['rankup_client_database_id_change_switch'] == 1) {
enter_logfile($cfg,5,sprintf($lang['changedbid'], $name, $uid, $client['client_database_id'], $select_arr['all_user'][$uid]['cldbid']));
if(isset($db_cache['all_user'][$uid])) {
$idle = $db_cache['all_user'][$uid]['idle'] + $clientidle;
if ($db_cache['all_user'][$uid]['cldbid'] != $client['client_database_id'] && $cfg['rankup_client_database_id_change_switch'] == 1) {
enter_logfile($cfg,5,sprintf($lang['changedbid'], $name, $uid, $client['client_database_id'], $db_cache['all_user'][$uid]['cldbid']));
$count = 1;
$idle = 0;
} else {
$hitboost = 0;
$boosttime = $select_arr['all_user'][$uid]['boosttime'];
$boosttime = $db_cache['all_user'][$uid]['boosttime'];
if(isset($cfg['rankup_boost_definition']) && $cfg['rankup_boost_definition'] != NULL) {
foreach($cfg['rankup_boost_definition'] as $boost) {
if(isset($sgroups[$boost['group']])) {
$hitboost = 1;
if($select_arr['all_user'][$uid]['boosttime']==0) {
if($db_cache['all_user'][$uid]['boosttime']==0) {
$boosttime = $nowtime;
} else {
if ($nowtime > $select_arr['all_user'][$uid]['boosttime'] + $boost['time']) {
if ($nowtime > $db_cache['all_user'][$uid]['boosttime'] + $boost['time']) {
usleep($cfg['teamspeak_query_command_delay']);
try {
$ts3->serverGroupClientDel($boost['group'], $client['client_database_id']);
$boosttime = 0;
enter_logfile($cfg,5,sprintf($lang['sgrprm'], $select_arr['groups'][$boost['group']]['sgidname'], $boost['group'], $name, $uid, $client['client_database_id']));
enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$boost['group']]['sgidname'], $boost['group'], $name, $uid, $client['client_database_id']).' [Boost-Group]');
} catch (Exception $e) {
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid']));
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid']));
}
}
}
$count = $addtime * $boost['factor'] + $select_arr['all_user'][$uid]['count'];
$count = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['count'];
if ($clientidle > $addtime) {
$idle = $addtime * $boost['factor'] + $select_arr['all_user'][$uid]['idle'];
$idle = $addtime * $boost['factor'] + $db_cache['all_user'][$uid]['idle'];
}
}
}
}
if($cfg['rankup_boost_definition'] == 0 or $hitboost == 0) {
$count = $addtime + $select_arr['all_user'][$uid]['count'];
$count = $addtime + $db_cache['all_user'][$uid]['count'];
$boosttime = 0;
if ($clientidle > $addtime) {
$idle = $addtime + $select_arr['all_user'][$uid]['idle'];
$idle = $addtime + $db_cache['all_user'][$uid]['idle'];
}
}
}
@@ -173,58 +177,58 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$grpcount=0;
foreach ($cfg['rankup_definition'] as $time => $groupid) {
$grpcount++;
if(isset($cfg['rankup_excepted_channel_id_list'][$client['cid']]) || (($select_arr['all_user'][$uid]['except'] == 3 || $select_arr['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 1)) {
$count = $select_arr['all_user'][$uid]['count'];
$idle = $select_arr['all_user'][$uid]['idle'];
if(isset($cfg['rankup_excepted_channel_id_list'][$client['cid']]) || (($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 1)) {
$count = $db_cache['all_user'][$uid]['count'];
$idle = $db_cache['all_user'][$uid]['idle'];
if($except != 2 && $except != 3) {
$except = 1;
}
} elseif ($activetime > $time && !isset($cfg['rankup_excepted_unique_client_id_list'][$uid]) && ($cfg['rankup_excepted_group_id_list'] == NULL || !array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list']))) {
if (!isset($sgroups[$groupid])) {
if ($select_arr['all_user'][$uid]['grpid'] != NULL && $select_arr['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$select_arr['all_user'][$uid]['grpid']])) {
if ($db_cache['all_user'][$uid]['grpid'] != NULL && $db_cache['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$db_cache['all_user'][$uid]['grpid']])) {
usleep($cfg['teamspeak_query_command_delay']);
try {
$ts3->serverGroupClientDel($select_arr['all_user'][$uid]['grpid'], $client['client_database_id']);
enter_logfile($cfg,5,sprintf($lang['sgrprm'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id']));
if(isset($client_groups_rankup[$select_arr['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$select_arr['all_user'][$uid]['grpid']]);
$ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']);
enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id']));
if(isset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']]);
} catch (Exception $e) {
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$select_arr['all_user'][$uid]['grpid']]['sgidname'], $select_arr['all_user'][$uid]['grpid']));
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid']));
}
}
usleep($cfg['teamspeak_query_command_delay']);
try {
$ts3->serverGroupClientAdd($groupid, $client['client_database_id']);
$select_arr['all_user'][$uid]['grpsince'] = $nowtime;
enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $select_arr['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $client['client_database_id']));
$db_cache['all_user'][$uid]['grpsince'] = $nowtime;
enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $db_cache['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $client['client_database_id']));
if ($cfg['rankup_message_to_user_switch'] == 1) {
$days = $dtF->diff($dtT)->format('%a');
$hours = $dtF->diff($dtT)->format('%h');
$mins = $dtF->diff($dtT)->format('%i');
$secs = $dtF->diff($dtT)->format('%s');
sendmessage($ts3, $cfg, $uid, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$select_arr['groups'][$groupid]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$groupid]['sgidname'],$groupid), 2);
sendmessage($ts3, $cfg, $uid, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$db_cache['groups'][$groupid]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'],$groupid), 2);
}
} catch (Exception $e) {
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$groupid]['sgidname'], $groupid));
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'], $groupid));
}
$select_arr['all_user'][$uid]['grpid'] = $groupid;
$db_cache['all_user'][$uid]['grpid'] = $groupid;
}
if($grpcount == 1) {
$select_arr['all_user'][$uid]['nextup'] = 0;
$db_cache['all_user'][$uid]['nextup'] = 0;
}
break;
} else {
$select_arr['all_user'][$uid]['nextup'] = $time - $activetime;
$db_cache['all_user'][$uid]['nextup'] = $time - $activetime;
}
}
foreach($client_groups_rankup as $removegroup => $dummy) {
if($removegroup != NULL && $removegroup != 0 && $removegroup != $select_arr['all_user'][$uid]['grpid']){
if($removegroup != NULL && $removegroup != 0 && $removegroup != $db_cache['all_user'][$uid]['grpid']){
try {
usleep($cfg['teamspeak_query_command_delay']);
$ts3->serverGroupClientDel($removegroup, $client['client_database_id']);
enter_logfile($cfg,5,sprintf("Removed WRONG servergroup %s (ID: %s) from user %s (unique Client-ID: %s; Client-database-ID %s).", $select_arr['groups'][$removegroup]['sgidname'], $removegroup, $name, $uid, $client['client_database_id']));
enter_logfile($cfg,5,sprintf("Removed WRONG servergroup %s (ID: %s) from user %s (unique Client-ID: %s; Client-database-ID %s).", $db_cache['groups'][$removegroup]['sgidname'], $removegroup, $name, $uid, $client['client_database_id']));
} catch (Exception $e) {
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $select_arr['groups'][$removegroup]['sgidname'], $removegroup));
enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$removegroup]['sgidname'], $removegroup));
}
}
}
@@ -235,8 +239,8 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
"count" => $count,
"name" => $name,
"lastseen" => $nowtime,
"grpid" => $select_arr['all_user'][$uid]['grpid'],
"nextup" => $select_arr['all_user'][$uid]['nextup'],
"grpid" => $db_cache['all_user'][$uid]['grpid'],
"nextup" => $db_cache['all_user'][$uid]['nextup'],
"idle" => $idle,
"cldgroup" => $client['client_servergroups'],
"boosttime" => $boosttime,
@@ -244,14 +248,18 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
"nation" => $client['client_country'],
"version" => $client['client_version'],
"except" => $except,
"grpsince" => $select_arr['all_user'][$uid]['grpsince'],
"grpsince" => $db_cache['all_user'][$uid]['grpsince'],
"cid" => $client['cid']
);
$db_cache['all_user'][$uid]['count'] = $count;
$db_cache['all_user'][$uid]['idle'] = $idle;
$db_cache['all_user'][$uid]['boosttime'] = $boosttime;
$db_cache['all_user'][$uid]['except'] = $except;
} else {
$select_arr['all_user'][$uid]['grpid'] = '0';
$db_cache['all_user'][$uid]['grpid'] = 0;
foreach ($cfg['rankup_definition'] as $time => $groupid) {
if (isset($sgroups[$groupid])) {
$select_arr['all_user'][$uid]['grpid'] = $groupid;
$db_cache['all_user'][$uid]['grpid'] = $groupid;
break;
}
}
@@ -261,7 +269,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
"count" => 0,
"name" => $name,
"lastseen" => $nowtime,
"grpid" => $select_arr['all_user'][$uid]['grpid'],
"grpid" => $db_cache['all_user'][$uid]['grpid'],
"nextup" => (key($cfg['rankup_definition']) - 1),
"idle" => 0,
"cldgroup" => $client['client_servergroups'],
@@ -274,11 +282,26 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
"grpsince" => 0,
"cid" => $client['cid']
);
$db_cache['all_user'][$uid]['cldbid'] = $client['client_database_id'];
$db_cache['all_user'][$uid]['count'] = 0;
$db_cache['all_user'][$uid]['idle'] = 0;
$db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - 1);
$db_cache['all_user'][$uid]['firstcon'] = $nowtime;
$db_cache['all_user'][$uid]['boosttime'] = 0;
$db_cache['all_user'][$uid]['grpsince'] = 0;
$db_cache['all_user'][$uid]['except'] = $except;
enter_logfile($cfg,5,sprintf($lang['adduser'], $name, $uid, $client['client_database_id']));
}
$db_cache['all_user'][$uid]['name'] = $client['client_nickname'];
$db_cache['all_user'][$uid]['lastseen'] = $nowtime;
$db_cache['all_user'][$uid]['cldgroup'] = $client['client_servergroups'];
$db_cache['all_user'][$uid]['platform'] = $client['client_platform'];
$db_cache['all_user'][$uid]['nation'] = $client['client_country'];
$db_cache['all_user'][$uid]['version'] = $client['client_version'];
$db_cache['all_user'][$uid]['cid'] = $client['cid'];
}
}
unset($multipleonline,$allclients,$client,$select_arr);
unset($multipleonline,$allclients,$client);
if ($updatedata != NULL) {
$sqlinsertvalues = '';
@@ -286,7 +309,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$sqlinsertvalues .= "(".$updatearr['uuid'].",".$updatearr['cldbid'].",".$updatearr['count'].",".$updatearr['name'].",".$updatearr['lastseen'].",".$updatearr['grpid'].",".$updatearr['nextup'].",".$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].",".$updatearr['grpsince'].",".$updatearr['cid'].",1),";
}
$sqlinsertvalues = substr($sqlinsertvalues, 0, -1);
$sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `cldbid`=VALUES(`cldbid`),`count`=VALUES(`count`),`name`=VALUES(`name`),`lastseen`=VALUES(`lastseen`),`grpid`=VALUES(`grpid`),`nextup`=VALUES(`nextup`),`idle`=VALUES(`idle`),`cldgroup`=VALUES(`cldgroup`),`boosttime`=VALUES(`boosttime`),`platform`=VALUES(`platform`),`nation`=VALUES(`nation`),`version`=VALUES(`version`),`except`=VALUES(`except`),`grpsince`=VALUES(`grpsince`),`cid`=VALUES(`cid`),`online`=VALUES(`online`); ";
$sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `cldbid`=VALUES(`cldbid`),`count`=VALUES(`count`),`name`=VALUES(`name`),`lastseen`=VALUES(`lastseen`),`grpid`=VALUES(`grpid`),`nextup`=VALUES(`nextup`),`idle`=VALUES(`idle`),`cldgroup`=VALUES(`cldgroup`),`boosttime`=VALUES(`boosttime`),`platform`=VALUES(`platform`),`nation`=VALUES(`nation`),`version`=VALUES(`version`),`except`=VALUES(`except`),`grpsince`=VALUES(`grpsince`),`cid`=VALUES(`cid`),`online`=VALUES(`online`);\n";
unset($updatedata, $sqlinsertvalues);
}
@@ -296,7 +319,7 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,$se
$sqlinsertvalues .= "(".$updatearr['uuid'].",".$updatearr['cldbid'].",".$updatearr['count'].",".$updatearr['name'].",".$updatearr['lastseen'].",".$updatearr['grpid'].",".$updatearr['nextup'].",".$updatearr['idle'].",'".$updatearr['cldgroup']."',".$updatearr['boosttime'].",'".$updatearr['platform']."','".$updatearr['nation']."','".$updatearr['version']."',".$updatearr['except'].",".$updatearr['grpsince'].",".$updatearr['cid'].",1,".$updatearr['firstcon']."),";
}
$sqlinsertvalues = substr($sqlinsertvalues, 0, -1);
$sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`,`firstcon`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `cldbid`=VALUES(`cldbid`),`count`=VALUES(`count`),`name`=VALUES(`name`),`lastseen`=VALUES(`lastseen`),`grpid`=VALUES(`grpid`),`nextup`=VALUES(`nextup`),`idle`=VALUES(`idle`),`cldgroup`=VALUES(`cldgroup`),`boosttime`=VALUES(`boosttime`),`platform`=VALUES(`platform`),`nation`=VALUES(`nation`),`version`=VALUES(`version`),`except`=VALUES(`except`),`grpsince`=VALUES(`grpsince`),`cid`=VALUES(`cid`),`online`=VALUES(`online`),`firstcon`=VALUES(`firstcon`); ";
$sqlexec .= "INSERT INTO `$dbname`.`user` (`uuid`,`cldbid`,`count`,`name`,`lastseen`,`grpid`,`nextup`,`idle`,`cldgroup`,`boosttime`,`platform`,`nation`,`version`,`except`,`grpsince`,`cid`,`online`,`firstcon`) VALUES $sqlinsertvalues ON DUPLICATE KEY UPDATE `cldbid`=VALUES(`cldbid`),`count`=VALUES(`count`),`name`=VALUES(`name`),`lastseen`=VALUES(`lastseen`),`grpid`=VALUES(`grpid`),`nextup`=VALUES(`nextup`),`idle`=VALUES(`idle`),`cldgroup`=VALUES(`cldgroup`),`boosttime`=VALUES(`boosttime`),`platform`=VALUES(`platform`),`nation`=VALUES(`nation`),`version`=VALUES(`version`),`except`=VALUES(`except`),`grpsince`=VALUES(`grpsince`),`cid`=VALUES(`cid`),`online`=VALUES(`online`),`firstcon`=VALUES(`firstcon`);\n";
unset($insertdata, $sqlinsertvalues);
}