/** * 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)); } } }
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; }