mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-12-23 17:38:44 +00:00
313 lines
10 KiB
PHP
313 lines
10 KiB
PHP
|
<?php
|
||
|
|
||
|
require_once('common.php');
|
||
|
require_once('functions_tool_main.php');
|
||
|
require_once('functions_tool_player_locator.php');
|
||
|
|
||
|
if (!tool_admin_applications_check('tool_player_locator')) nt_common_redirect('index.php');
|
||
|
|
||
|
nt_common_add_debug('-- Starting on \'tool_player_locator.php\'');
|
||
|
|
||
|
$tpl->assign('tool_title', "Player Locator");
|
||
|
|
||
|
$view_domain_id = nt_auth_get_session_var('view_domain_id');
|
||
|
$view_shard_id = nt_auth_get_session_var('view_shard_id');
|
||
|
|
||
|
if (!$view_domain_id)
|
||
|
{
|
||
|
$view_domain_id = $nel_user['group_default_domain_id'];
|
||
|
$view_shard_id = $nel_user['group_default_shard_id'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['domain']))
|
||
|
{
|
||
|
if ($view_domain_id != $NELTOOL['GET_VARS']['domain'])
|
||
|
{
|
||
|
$view_domain_id = $NELTOOL['GET_VARS']['domain'];
|
||
|
nt_auth_set_session_var('view_domain_id', $view_domain_id);
|
||
|
|
||
|
$view_shard_id = null;
|
||
|
nt_auth_unset_session_var('view_shard_id');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['shard']))
|
||
|
{
|
||
|
$view_shard_id = $NELTOOL['GET_VARS']['shard'];
|
||
|
nt_auth_set_session_var('view_shard_id', $view_shard_id);
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['refdata']))
|
||
|
{
|
||
|
$tmp_data = unserialize(base64_decode($NELTOOL['GET_VARS']['refdata']));
|
||
|
if (is_array($tmp_data))
|
||
|
{
|
||
|
$NELTOOL['POST_VARS'] = $tmp_data;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$current_refresh_rate = nt_auth_get_session_var('current_refresh_rate');
|
||
|
|
||
|
if (isset($HTTP_POST_VARS['services_refresh']))
|
||
|
{
|
||
|
if ($current_refresh_rate != $HTTP_POST_VARS['services_refresh'])
|
||
|
{
|
||
|
$current_refresh_rate = $HTTP_POST_VARS['services_refresh'];
|
||
|
nt_auth_set_session_var('current_refresh_rate',$current_refresh_rate);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if ($current_refresh_rate == null)
|
||
|
{
|
||
|
$current_refresh_rate = 0;
|
||
|
}
|
||
|
elseif ($current_refresh_rate > 0)
|
||
|
{
|
||
|
$tpl->assign('nel_tool_refresh', '<meta http-equiv=refresh content="'. $current_refresh_rate .'">');
|
||
|
}
|
||
|
|
||
|
$tpl->assign('tool_refresh_list', $refresh_rates);
|
||
|
$tpl->assign('tool_refresh_rate', $current_refresh_rate);
|
||
|
|
||
|
$tpl->assign('tool_domain_list', $nel_user['access']['domains']);
|
||
|
$tpl->assign('tool_domain_selected', $view_domain_id);
|
||
|
|
||
|
$tpl->assign('tool_shard_list', $nel_user['access']['shards']);
|
||
|
$tpl->assign('tool_shard_selected', $view_shard_id);
|
||
|
|
||
|
$tool_shard_filters = tool_main_get_shard_ids($view_shard_id);
|
||
|
$tpl->assign('tool_shard_filters', $tool_shard_filters);
|
||
|
|
||
|
if (tool_admin_applications_check('tool_player_locator_display_players')) $tpl->assign('restriction_tool_player_locator_display_players', true);
|
||
|
if (tool_admin_applications_check('tool_player_locator_locate')) $tpl->assign('restriction_tool_player_locator_locate', true);
|
||
|
if (tool_admin_applications_check('tool_player_locator_userid_check')) $tpl->assign('restriction_tool_player_locator_userid_check', true);
|
||
|
if (tool_admin_applications_check('tool_player_locator_csr_relocate')) $tpl->assign('restriction_tool_player_locator_csr_relocate', true);
|
||
|
|
||
|
if ($view_domain_id)
|
||
|
{
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
$AS_Name = tool_main_get_domain_name($view_domain_id);
|
||
|
$AS_Host = tool_main_get_domain_host($view_domain_id);
|
||
|
$AS_Port = tool_main_get_domain_port($view_domain_id);
|
||
|
$AS_ShardName = tool_main_get_shard_name($view_shard_id);
|
||
|
$AS_Application = tool_main_get_domain_data($view_domain_id, 'domain_application');
|
||
|
$AS_RingSQL = tool_main_get_domain_data($view_domain_id, 'domain_sql_string');
|
||
|
|
||
|
$tpl->assign('tool_page_title', 'Player Locator - '. $AS_Name . ($AS_ShardName != '' ? ' / '. $AS_ShardName : ''));
|
||
|
|
||
|
$tool_as_error = null;
|
||
|
|
||
|
if ($AS_Host && $AS_Port)
|
||
|
{
|
||
|
$adminService = new MyAdminService;
|
||
|
if (@$adminService->connect($AS_Host, $AS_Port, $res) === false)
|
||
|
{
|
||
|
nt_common_add_debug($res);
|
||
|
$tpl->assign('tool_domain_error', $res );
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (isset($NELTOOL['POST_VARS']['services_pl']))
|
||
|
{
|
||
|
$tool_services_pl = $NELTOOL['POST_VARS']['services_pl'];
|
||
|
$tpl->assign('tool_post_data', base64_encode(serialize($NELTOOL['POST_VARS'])));
|
||
|
|
||
|
switch ($tool_services_pl)
|
||
|
{
|
||
|
case 'display players':
|
||
|
|
||
|
if (tool_admin_applications_check('tool_player_locator_display_players'))
|
||
|
{
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list))
|
||
|
{
|
||
|
$service_command = 'displayPlayers';
|
||
|
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
//nt_common_add_debug("about to run 'displayPlayers' on '$service' ...");
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (sizeof($command_return_data))
|
||
|
{
|
||
|
$player_data = tool_pl_parse_display_players($command_return_data);
|
||
|
$tpl->assign('tool_player_data', $player_data);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
// case 'csr relocate':
|
||
|
case 'ani':
|
||
|
case 'ari':
|
||
|
case 'lea':
|
||
|
|
||
|
if (tool_admin_applications_check('tool_player_locator_csr_relocate'))
|
||
|
{
|
||
|
$relocate_su = $NELTOOL['POST_VARS']['pl_su'];
|
||
|
$relocate_shardid = $NELTOOL['POST_VARS']['relocate_shardid'];
|
||
|
$relocate_eid = $NELTOOL['POST_VARS']['relocate_eid'];
|
||
|
|
||
|
if ($relocate_eid != 'na' && $relocate_shardid != 'na')
|
||
|
{
|
||
|
$service = $relocate_su;
|
||
|
$service_command = 'cs.relocChar ' . $relocate_eid . ' ' . $relocate_shardid;
|
||
|
|
||
|
nt_common_add_debug("about to run command '$service_command' on '$service' ...");
|
||
|
|
||
|
$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
}
|
||
|
|
||
|
if (sizeof($command_return_data))
|
||
|
{
|
||
|
$relocate_data = tool_pl_parse_relocate($command_return_data);
|
||
|
$tpl->assign('tool_relocate_data', $relocate_data);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//break;
|
||
|
|
||
|
case 'locate':
|
||
|
|
||
|
if (tool_admin_applications_check('tool_player_locator_locate'))
|
||
|
{
|
||
|
$tool_locate_name = trim($NELTOOL['POST_VARS']['services_pl_locate']);
|
||
|
$tpl->assign('tool_locate_value', $tool_locate_name);
|
||
|
|
||
|
$service_list = tool_main_get_checked_services();
|
||
|
if (sizeof($service_list) && ($tool_locate_name != ''))
|
||
|
{
|
||
|
$service_command = 'playerInfo '. $tool_locate_name;
|
||
|
nt_log("Domain '$AS_Name' : '$service_command' on ". implode(', ',array_values($service_list)));
|
||
|
|
||
|
$tpl->assign('tool_service_select_list', array_combine($service_list, $service_list));
|
||
|
//$tpl->assign('tool_execute_result', '');
|
||
|
$command_return_data = array();
|
||
|
|
||
|
reset($service_list);
|
||
|
foreach($service_list as $service)
|
||
|
{
|
||
|
nt_common_add_debug("about to run 'playerInfo' on '$service' ...");
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// the locator displays a nice output, no need for the raw one
|
||
|
//$tpl->assign('tool_execute_command', $service_command);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (sizeof($command_return_data))
|
||
|
{
|
||
|
$locate_data = tool_pl_parse_locate($command_return_data);
|
||
|
$tpl->assign('tool_locate_data', $locate_data);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
case 'Compute User IDs and Clear SQL Cache':
|
||
|
|
||
|
if (tool_admin_applications_check('tool_player_locator_userid_check'))
|
||
|
{
|
||
|
$check_su = $NELTOOL['POST_VARS']['pl_su'];
|
||
|
|
||
|
tool_pl_fix_character_check_list($AS_Application);
|
||
|
|
||
|
$service = $check_su;
|
||
|
$service_command = 'sqlObjectCache.clearCache';
|
||
|
nt_common_add_debug("about to run command '$service_command' on '$service' ...");
|
||
|
|
||
|
$adminService->serviceCmd($service, $service_command);
|
||
|
if (!$adminService->waitCallback())
|
||
|
{
|
||
|
nt_common_add_debug('Error while waiting for callback on service \''. $service .'\' for command : '. $service_command);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isset($NELTOOL['GET_VARS']['eid']))
|
||
|
{
|
||
|
$locate_eid = $NELTOOL['GET_VARS']['eid'];
|
||
|
|
||
|
// someday i'll do something here :)
|
||
|
}
|
||
|
|
||
|
$status = $adminService->getStates();
|
||
|
nt_common_add_debug($status);
|
||
|
|
||
|
$domainServices = tool_main_parse_status($status);
|
||
|
|
||
|
$filteredServices = array();
|
||
|
reset($domainServices);
|
||
|
foreach($domainServices as $aKey => $aService)
|
||
|
{
|
||
|
// we are only interested in EGS
|
||
|
if ($aService['ShortName'] == 'EGS')
|
||
|
{
|
||
|
$filteredServices[] = $aService;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl->assign('tool_services_list', $filteredServices);
|
||
|
|
||
|
$tpl->assign('shard_su_name', tool_main_get_su_from_status($domainServices));
|
||
|
|
||
|
// user_id == 0 check system
|
||
|
if (tool_admin_applications_check('tool_player_locator_userid_check'))
|
||
|
{
|
||
|
$user_check_list = tool_pl_get_character_check_list($AS_Application, $AS_RingSQL);
|
||
|
$tpl->assign('user_check_list', $user_check_list);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$tpl->display('tool_player_locator.tpl');
|
||
|
|
||
|
?>
|