Пример #1
0
function ShowOverviewPage()
{
    global $CONF, $LNG, $PLANET, $USER, $db, $resource;
    $PlanetRess = new ResourceUpdate();
    $PlanetRess->CalcResource();
    $PlanetRess->SavePlanetToDB();
    $template = new template();
    $template->getplanets();
    $AdminsOnline = $AllPlanets = $Moon = array();
    foreach ($template->UserPlanets as $ID => $CPLANET) {
        if ($ID == $_SESSION['planet'] || $CPLANET['planet_type'] == 3) {
            continue;
        }
        if (!empty($CPLANET['b_building']) && $CPLANET['b_building'] > TIMESTAMP) {
            $Queue = explode(';', $CPLANET['b_building_id']);
            $CurrBuild = explode(',', $Queue[0]);
            $BuildPlanet = $LNG['tech'][$CurrBuild[0]] . " (" . $CurrBuild[1] . ")<br><span style=\"color:#7F7F7F;\">(" . pretty_time($CurrBuild[3] - TIMESTAMP) . ")</span>";
        } else {
            $BuildPlanet = $LNG['ov_free'];
        }
        $AllPlanets[] = array('id' => $CPLANET['id'], 'name' => $CPLANET['name'], 'image' => $CPLANET['image'], 'build' => $BuildPlanet);
    }
    if ($PLANET['id_luna'] != 0) {
        $Moon = $db->uniquequery("SELECT `id`, `name` FROM " . PLANETS . " WHERE `id` = '" . $PLANET['id_luna'] . "';");
    }
    if (!empty($PLANET['b_building'])) {
        $Queue = explode(';', $PLANET['b_building_id']);
        $CurrBuild = explode(',', $Queue[0]);
        $Build = $LNG['tech'][$CurrBuild[0]] . ' (' . $CurrBuild[1] . ')<br><div id="blc">"' . pretty_time($PLANET['b_building'] - TIMESTAMP) . '</div>';
        $template->execscript('BuildTime();');
    } else {
        $Build = $LNG['ov_free'];
    }
    $Teamspeak = '';
    if ($CONF['ts_modon'] == 1) {
        if ($CONF['ts_version'] == 2) {
            include_once ROOT_PATH . "includes/libs/teamspeak/class.teamspeak2." . PHP_EXT;
            $ts = new cyts();
            if ($ts->connect($CONF['ts_server'], $CONF['ts_tcpport'], $CONF['ts_udpport'], $CONF['ts_timeout'])) {
                $tsdata = $ts->info_serverInfo();
                $tsdata2 = $ts->info_globalInfo();
                $ts->disconnect();
                $trafges = pretty_number($tsdata2["total_bytessend"] / 1024 / 1024 + $tsdata2["total_bytesreceived"] / 1024 / 1024);
                $Teamspeak = sprintf($LNG['ov_teamspeak_v2'], $CONF['ts_server'], $CONF['ts_udpport'], $USER['username'], $tsdata["server_currentusers"], $tsdata["server_maxusers"], $tsdata["server_currentchannels"], $trafges);
            } else {
                $Teamspeak = $LNG['ov_teamspeak_not_online'];
            }
        } elseif ($CONF['ts_version'] == 3) {
            $ip = $CONF['ts_server'];
            $port = $CONF['ts_tcpport'];
            $t_port = $CONF['ts_udpport'];
            $sid = $CONF['ts_timeout'];
            require_once ROOT_PATH . "includes/libs/teamspeak/class.teamspeak3." . PHP_EXT;
            $tsAdmin = new ts3admin($ip, $t_port);
            if ($tsAdmin->connect()) {
                $tsAdmin->selectServer($sid);
                #$tsAdmin->login($username, $password); Insert the SA Account Details, if Teamspeak banned you.
                $sinfo = $tsAdmin->serverInfo();
                $tsAdmin->logout();
                $tsAdmin->quit();
                $trafges = round($sinfo['connection_bytes_received_total'] / 1024 / 1024 + $sinfo['connection_bytes_sent_total'] / 1024 / 1024, 2);
                $Debug = $tsAdmin->getDebugLog();
                if ($Debug == "Error while fetching: 'error id=518 msg=not logged in'<br>") {
                    $Teamspeak = sprintf($LNG['ov_teamspeak_v3'], $ip, $port, $USER['username'], $sinfo['virtualserver_password'], $sinfo['virtualserver_clientsonline'] - 1, $sinfo['virtualserver_maxclients'], $sinfo['virtualserver_channelsonline'], $trafges);
                } else {
                    $Teamspeak = $Debug;
                }
            } else {
                $Teamspeak = $LNG['ov_teamspeak_not_online'];
            }
        }
    }
    $OnlineAdmins = $db->query("SELECT `id`,`username` FROM " . USERS . " WHERE `onlinetime` >= '" . (TIMESTAMP - 10 * 60) . "' AND `authlevel` > '0';");
    while ($AdminRow = $db->fetch_array($OnlineAdmins)) {
        $AdminsOnline[$AdminRow['id']] = $AdminRow['username'];
    }
    $db->free_result($OnlineAdmins);
    $template->loadscript('mbContainer.js');
    $template->loadscript('overview.js');
    $template->execscript('GetFleets(true);');
    $template->page_header();
    $template->page_topnav();
    $template->page_leftmenu();
    $template->page_planetmenu();
    $template->page_footer();
    $template->assign_vars(array('user_rank' => sprintf($LNG['ov_userrank_info'], pretty_number($USER['total_points']), $LNG['ov_place'], $USER['total_rank'], $USER['total_rank'], $LNG['ov_of'], $CONF['users_amount']), 'is_news' => $CONF['OverviewNewsFrame'], 'news' => makebr($CONF['OverviewNewsText']), 'planetname' => $PLANET['name'], 'planetimage' => $PLANET['image'], 'galaxy' => $PLANET['galaxy'], 'system' => $PLANET['system'], 'planet' => $PLANET['planet'], 'buildtime' => $PLANET['b_building'], 'userid' => $USER['id'], 'username' => $USER['username'], 'build' => $Build, 'Moon' => $Moon, 'AllPlanets' => $AllPlanets, 'AdminsOnline' => $AdminsOnline, 'Teamspeak' => $Teamspeak, 'messages' => $USER['new_message'] > 0 ? $USER['new_message'] == 1 ? $LNG['ov_have_new_message'] : sprintf($LNG['ov_have_new_messages'], pretty_number($USER['new_message'])) : false, 'planet_diameter' => pretty_number($PLANET['diameter']), 'planet_field_current' => $PLANET['field_current'], 'planet_field_max' => CalculateMaxPlanetFields($PLANET), 'planet_temp_min' => $PLANET['temp_min'], 'planet_temp_max' => $PLANET['temp_max'], 'ov_news' => $LNG['ov_news'], 'fcm_moon' => $LNG['fcm_moon'], 'ov_server_time' => $LNG['ov_server_time'], 'ov_planet' => $LNG['ov_planet'], 'ov_planetmenu' => $LNG['ov_planetmenu'], 'ov_diameter' => $LNG['ov_diameter'], 'ov_distance_unit' => $LNG['ov_distance_unit'], 'ov_developed_fields' => $LNG['ov_developed_fields'], 'ov_max_developed_fields' => $LNG['ov_max_developed_fields'], 'ov_fields' => $LNG['ov_fields'], 'ov_temperature' => $LNG['ov_temperature'], 'ov_aprox' => $LNG['ov_aprox'], 'ov_temp_unit' => $LNG['ov_temp_unit'], 'ov_to' => $LNG['ov_to'], 'ov_position' => $LNG['ov_position'], 'ov_points' => $LNG['ov_points'], 'ov_events' => $LNG['ov_events'], 'ov_admins_online' => $LNG['ov_admins_online'], 'ov_no_admins_online' => $LNG['ov_no_admins_online'], 'ov_userbanner' => $LNG['ov_userbanner'], 'ov_teamspeak' => $LNG['ov_teamspeak'], 'ov_your_planet' => $LNG['ov_your_planet'], 'ov_coords' => $LNG['ov_coords'], 'ov_planet_name' => $LNG['ov_planet_name'], 'ov_actions' => $LNG['ov_actions'], 'ov_abandon_planet' => $LNG['ov_abandon_planet'], 'ov_planet_rename' => $LNG['ov_planet_rename'], 'ov_planet_rename_action' => $LNG['ov_planet_rename_action'], 'ov_password' => $LNG['ov_password'], 'ov_with_pass' => $LNG['ov_with_pass'], 'ov_security_confirm' => $LNG['ov_security_confirm'], 'ov_security_request' => $LNG['ov_security_request'], 'ov_delete_planet' => $LNG['ov_delete_planet'], 'ov_planet_abandoned' => $LNG['ov_planet_abandoned'], 'path' => PROTOCOL . $_SERVER['HTTP_HOST'] . HTTP_ROOT));
    $template->show("overview_body.tpl");
}
 $tsAdmin->login($ts3_user, $ts3_pass);
 $link = mysqli_connect("localhost", "user", "password", "database") or die("Error " . mysqli_error($link));
 $query_mode = "SELECT * FROM server_properties WHERE value = '3' and ident = 'virtualserver_hostmessage_mode'";
 $query_msg = "SELECT * FROM server_properties WHERE value LIKE '%error%' or value LIKE '%plugin%' or value LIKE '%sound%' or value LIKE '%audio%' or value LIKE '%missing%' or value LIKE '%portal%' and ident = 'virtualserver_hostmessage'";
 $query_name = "SELECT * FROM server_properties WHERE value LIKE '%error%' or value LIKE '%plugin%' or value LIKE '%sound%' or value LIKE '%audio%' or value LIKE '%missing%' or value LIKE '%portal%' and ident = 'virtualserver_welcomemessage'";
 // Hostmessage mode
 $result = $link->query($query_mode);
 while ($row = mysqli_fetch_array($result)) {
     $id = $row['server_id'];
     // echo "Selected server id = " . $id . PHP_EOL;
     $tsAdmin->selectServer($id, 'serverId');
     $info = $tsAdmin->serverInfo();
     $data = array();
     $data['virtualserver_hostmessage_mode'] = '0';
     $tsAdmin->serverEdit($data);
     if (count($tsAdmin->getDebugLog()) > 0) {
         foreach ($tsAdmin->getDebugLog() as $logEntry) {
             echo $logEntry . PHP_EOL;
         }
     }
 }
 // Hostmessage
 $result = $link->query($query_msg);
 while ($row = mysqli_fetch_array($result)) {
     $id = $row['server_id'];
     // echo "Selected server id = " . $id . PHP_EOL;
     $tsAdmin->selectServer($id, 'serverId');
     $info = $tsAdmin->serverInfo();
     $data = array();
     $data['virtualserver_hostmessage'] = '';
     $tsAdmin->serverEdit($data);
Пример #3
0
function tslink_update_groups($mybb_uid)
{
    if (!isset($messages)) {
        $messages = [];
    }
    $messages[] = 'In the following part we gonna update the user his groups on the TS server.';
    require __DIR__ . '/config.php';
    // Connect to the database.
    $ConnectDB = new mysqli($hostname, $username, $password, $database);
    // check connection
    if ($ConnectDB->connect_errno) {
        die($ConnectDB->connect_error);
    }
    // Get the member from the mybb database.
    $getit = "SELECT * FROM {$table} WHERE uid = '{$mybb_uid}' LIMIT 1";
    $messages['getit_query'] = $getit;
    $rows = $ConnectDB->query($getit);
    $row = $rows->fetch_array(MYSQLI_ASSOC);
    $messages['found_member'] = 'User ID: ' . $row['uid'] . ' Username: '******'username'];
    // Get the memberstatus from the user.
    $memberstatus = $row['memberstatus'];
    $messages['memberstatus'] = $memberstatus;
    // Let's determine which servergroup to use according to the status of the user.
    if ($memberstatus == '2') {
        $ServerGroupID_ToAdd = $ts3_sgid_vip_member;
    } elseif ($memberstatus == '1') {
        $ServerGroupID_ToAdd = $ts3_sgid_don_member;
    } else {
        $ServerGroupID_ToAdd = $ts3_sgid_member;
    }
    $messages['ServerGroupID_ToAdd'] = $ServerGroupID_ToAdd;
    // Get the user's unique id's from the mybb database
    $get_ts_uids = 'SELECT * FROM ' . TABLE_PREFIX . "tslink_uids WHERE uid = '{$mybb_uid}' ";
    $messages['get_ts_uids_query'] = $get_ts_uids;
    $ts_unique_ids = $ConnectDB->query($get_ts_uids);
    foreach ($ts_unique_ids as $ts_unique_id) {
        $messages['registered_ts_db_entries'][] = 'TS UID: ' . $ts_unique_id['ts_uid'] . ' TS CLDBID: ' . $ts_unique_id['ts_cldbid'];
    }
    $messages['groups_wont_be_removed'] = implode(',', $ts3_sgid_dont_remove);
    // Build a new ts3admin object.
    $ts3 = new ts3admin($ts3_server, $ts3_query_port);
    // Connect to the TS server.
    if ($ts3->getElement('success', $ts3->connect())) {
        $messages['ts_connection'] = 'Successful';
        // Login to the TS server.
        if ($ts3->getElement('success', $ts3->login($ts3_username, $ts3_password))) {
            $messages['ts3_login'] = '******';
            // Select virtual server.
            if ($ts3->getElement('success', $ts3->selectServer($ts3_server_port))) {
                $messages['ts3_virtual_server_select'] = 'Successful';
                // Set displayed name in TS to given
                $ts3->setName($ts3_nickname);
                foreach ($ts_unique_ids as $ts_unique_id) {
                    // First lets remove all groups the user is member of.
                    // First get all servergroups the user is member of.
                    $ClientServerGroups = $ts3->servergroupsbyclientid($ts_unique_id['ts_cldbid']);
                    $csg = [];
                    $c = 0;
                    if (is_array($ClientServerGroups['data'])) {
                        foreach ($ClientServerGroups['data'] as $ClientServerGroup) {
                            $messages['found_groups']['CLDBID_' . $ts_unique_id['ts_cldbid']][] = 'sgid: ' . $ClientServerGroup['sgid'] . ' Name: ' . $ClientServerGroup['name'];
                        }
                    }
                    // For every servergroup found, remove it.
                    if (is_array($ClientServerGroups['data'])) {
                        foreach ($ClientServerGroups['data'] as $Client_ServerGroup) {
                            $csg[] = $Client_ServerGroup['sgid'];
                        }
                    }
                    foreach ($csg as $ClientServerGroupID) {
                        // Except for the servergroups we don't want to have removed.
                        if (!in_array($ClientServerGroupID, $ts3_sgid_dont_remove)) {
                            try {
                                $messages['SGID_' . $ClientServerGroupID]['removing_from'][] = 'CLDBID: ' . $ts_unique_id['ts_cldbid'];
                                $removeResults = $ts3->serverGroupDeleteClient($ClientServerGroupID, $ts_unique_id['ts_cldbid']);
                                if ($removeResults['success']) {
                                    $messages['SGID_' . $ClientServerGroupID]['removing_from_result']['CLDBID_' . $ts_unique_id['ts_cldbid']] = 'Succes.';
                                } else {
                                    $messages['SGID_' . $ClientServerGroupID]['removing_from_result']['CLDBID_' . $ts_unique_id['ts_cldbid']] = $removeResults['errors'];
                                }
                            } catch (Exception $e) {
                                // Catches the error(s) if any. But don't do anything with it.
                            }
                        }
                    }
                    $c++;
                    try {
                        // Add the user to the servergroup.
                        $messages['SGID_' . $ServerGroupID_ToAdd]['adding_to'][] = 'CLDBID: ' . $ts_unique_id['ts_cldbid'];
                        $serverGroupAddClientResults = $ts3->serverGroupAddClient($ServerGroupID_ToAdd, $ts_unique_id['ts_cldbid']);
                        if ($serverGroupAddClientResults['success']) {
                            $messages['SGID_' . $ServerGroupID_ToAdd]['adding_to_result']['CLDBID_' . $ts_unique_id['ts_cldbid']] = 'Succes.';
                        } else {
                            $messages['SGID_' . $ServerGroupID_ToAdd]['adding_to_result']['CLDBID_' . $ts_unique_id['ts_cldbid']] = $serverGroupAddClientResults['errors'];
                        }
                        //$messages[$ServerGroupID_ToAdd]['adding_to_result'][] = $serverGroupAddClientResults;
                    } catch (Exception $e) {
                        // Catches the error(s) if any. But don't do anything with it.
                    }
                }
            } else {
                echo '<p>Could not select the virtual server.</p> <p>Please check the TS server port in the config!</p> <p>Also make sure this (UDP) port is open in the outgoing firewall!</p>';
                $messages['ts3_virtual_server_select'] = 'Could not select the virtual server.';
            }
        } else {
            echo '<p>Could not login to the TS server.</p> <p>Please check the username and password in the config!</p>';
            $messages['ts3_login'] = '******';
        }
    } else {
        echo '<p>Connection to the TS server could not be established.</p> <p>Please check the TS server and TS server query port in the config!</p> <p>Also make sure this (TCP) port is open in the outgoing firewall!</p>';
        $messages['ts3_connect'] = 'Connection to the TS server could not be established.';
    }
    if (count($ts3->getDebugLog()) > 0) {
        $messages['ts3_add_remove_debuglog'] = $ts3->getDebugLog();
    }
    // Close connection
    $ConnectDB->close();
    return $messages;
}