/**
 * Update last login time, last logout time, onlinetime
 *
 * @global type $UMC_USER
 * @param type $type
 */
function umc_uuid_record_usertimes($type)
{
    XMPP_ERROR_trace(__FUNCTION__, func_get_args());
    global $UMC_USER;
    $uuid = $UMC_USER['uuid'];
    $username = $UMC_USER['username'];
    // make sure the userdata exists
    $D = umc_uuid_userdata($uuid, $username);
    umc_uuid_login_logout_update($type);
    // in case the user logged out just now, we update the onlinetime of the user
    if ($type == 'lastlogout') {
        // get the data again since it just changed
        $D = umc_uuid_userdata($uuid, $username);
        // we only calculate this in case the time is properly recorded
        if ($D['lastlogin'] <= $D['lastlogout']) {
            $login = umc_datetime($D['lastlogin']);
            $logout = umc_datetime($D['lastlogout']);
            $seconds = umc_timer_raw_diff($login, $logout);
            $online_sql = "UPDATE minecraft_srvr.UUID SET onlinetime=onlinetime+{$seconds} WHERE UUID='{$uuid}';";
            umc_mysql_query($online_sql);
        } else {
            XMPP_ERROR_trigger("User login was later than last logout! " . var_export($D, true));
        }
    }
}
示例#2
0
function umc_get_lot_owner_age($format = 'string', $oneuser = false, $debug = false)
{
    XMPP_ERROR_trace(__FUNCTION__, func_get_args());
    $playerfilter = "";
    if ($oneuser) {
        $uuid = umc_uuid_getone($oneuser, 'uuid');
        $playerfilter = " AND UUID.uuid = '{$uuid}'";
    }
    //temp fix for wrong userlogin
    umc_uuid_firstlogin_update($uuid);
    $sql = "SELECT username, lastlogin, firstlogin, onlinetime\r\n        FROM minecraft_srvr.UUID\r\n        LEFT JOIN minecraft_worldguard.user ON user.uuid=UUID.uuid\r\n        LEFT JOIN minecraft_worldguard.region_players ON id=user_id\r\n        WHERE owner=1 {$playerfilter}\r\n        GROUP BY username, lastlogin\r\n        ORDER BY lastlogin ASC";
    $R = umc_mysql_fetch_all($sql);
    $users = array();
    $diff_steps = array('y' => 'years', 'm' => 'months', 'd' => 'days', 'h' => 'hours', 'i' => 'minutes', 's' => 'seconds');
    /*
    *
       $now = time(); // or your date as well
       $your_date = strtotime("2013-11-20");
       $datediff = $now - $your_date;
       $alt_days = floor($datediff/(60*60*24));
    */
    // umc_error_notify("Could not get player age: $sql");
    if (count($R) == 0) {
        // umc_error_notify("Error to get user age: $sql");
        return false;
    }
    foreach ($R as $row) {
        $username = strtolower($row['username']);
        $last_time = $row['lastlogin'];
        /* if (!function_exists('umc_datetime')) {
                    umc_error_longmsg("umc_Datetime not found ($sql)");
                    include_once("$UMC_PATH_MC/server/bin/includes/timer.inc.php");
                    if (!function_exists('umc_datetime')) {
                        umc_error_longmsg("Datetime function not found (level2)");
                    }
        
                }*/
        $last_datetime = umc_datetime($last_time);
        $first_time = $row['firstlogin'];
        if ($debug) {
            echo "First_time = {$first_time}\n";
        }
        $first_datetime = umc_datetime($first_time);
        if ($debug) {
            echo "First_datetime = " . var_export($first_datetime, true);
        }
        if ($format == 'string') {
            $last_diff = umc_timer_array_diff($last_datetime);
            $first_diff = umc_timer_array_diff($first_datetime);
            foreach ($diff_steps as $code => $text) {
                $last_val = $last_diff->{$code};
                $users[$uuid]['lastlogin'][$text] = $last_val;
                $first_val = $first_diff->{$code};
                $users[$uuid]['firstlogin'][$text] = $first_val;
            }
        } else {
            // days
            $first_seconds = umc_timer_raw_diff($first_datetime);
            if ($debug) {
                echo "First_seconds = " . var_export($first_seconds, true);
            }
            $first_days = round($first_seconds / 60 / 60 / 24);
            $users[$uuid]['firstlogin']['days'] = $first_days;
            $users[$uuid]['firstlogin']['seconds'] = $first_seconds;
            $last_seconds = umc_timer_raw_diff($last_datetime);
            $last_days = round($last_seconds / 60 / 60 / 24);
            $users[$uuid]['lastlogin']['days'] = $last_days;
            $users[$uuid]['lastlogin']['seconds'] = $last_seconds;
        }
        $users[$uuid]['lastlogin']['full'] = $last_time;
        $users[$uuid]['firstlogin']['full'] = $first_time;
        $users[$uuid]['onlinetime']['seconds'] = $row['onlinetime'];
        $users[$uuid]['onlinetime']['days'] = round($row['onlinetime'] / 60 / 60 / 24);
    }
    return $users;
}
function umc_trivia_webstats()
{
    $out = '<table>';
    $quiz_sql = "SELECT * FROM minecraft_quiz.quizzes WHERE end <> '' ORDER BY start DESC;";
    $D = umc_mysql_fetch_all($quiz_sql);
    foreach ($D as $quiz_row) {
        $quiz_id = $quiz_row['quiz_id'];
        $master = $quiz_row['master'];
        $quiz_start = $quiz_row['start'];
        $quiz_end = $quiz_row['end'];
        $winner = $quiz_row['winner'];
        $points = $quiz_row['points'];
        $prize = $quiz_row['points'];
        $out .= "<tr style=\"background-color:#99CCFF;\"><td>Quiz No.{$quiz_id}, Quizmaster: {$master}</td><td>Start: {$quiz_start}</td></tr>";
        $out .= "<tr><td colspan=2>Winner: {$winner} with {$points} points won {$prize} Uncs each</tr>";
        $datetime = umc_datetime($quiz_start);
        $seconds = umc_timer_raw_diff($datetime);
        $days = $seconds / 60 / 60 / 24;
        if ($days > 3) {
            continue;
        }
        $question_sql = "SELECT question_no, question, answer, quiz_questions.question_id FROM minecraft_quiz.quiz_questions\r\n            LEFT JOIN minecraft_quiz.catalogue ON quiz_questions.question_id = catalogue.question_id\r\n            WHERE quiz_id = {$quiz_id} ORDER BY question_no;";
        $Q = umc_mysql_fetch_all($question_sql);
        foreach ($Q as $question_row) {
            $question_no = $question_row['question_no'];
            $question_id = $question_row['question_id'];
            $question = $question_row['question'];
            $answer = $question_row['answer'];
            $out .= "<tr style=\"font-size:70%; background-color:#99FFCC;\"><td style=\"padding-left:40px\">Q. No.{$question_no}: {$question}</td><td>A.: {$answer}</td></tr>";
            $answer_sql = "SELECT * FROM minecraft_quiz.quiz_answers WHERE quiz_id={$quiz_id} AND question_id={$question_id} ORDER BY answer_id;";
            $A = umc_mysql_fetch_all($answer_sql);
            $out .= "<tr style=\"font-size:70%;\"><td style=\"padding-left:80px\" colspan=2>";
            foreach ($A as $answer_row) {
                $answer_id = $answer_row['answer_id'];
                $user_answer = $answer_row['answer_text'];
                $username = $answer_row['username'];
                $result = $answer_row['result'];
                $style = "style=\"margin-right:10px;\"";
                if ($result == 'right') {
                    $style = " style=\"color:green; margin-right:10px;\"";
                }
                $out .= "<span {$style}>{$answer_id} ({$username}): {$user_answer}</span>";
            }
            $out .= "</td></tr>";
        }
    }
    $out .= "</table>";
    return $out;
}