function umc_map_menu($worlds, $current_world, $freeswitch) { global $UMC_DOMAIN, $UMC_PATH_MC; $freevalue = 'false'; if ($freeswitch) { $freevalue = 'true'; } $this_uc_map = ucwords($current_world); $menu = "\n<!-- Menu -->\n<strong>Uncovery {$this_uc_map} map</strong>\n <button type='button' onclick='find_spawn()'>Find Spawn</button>\n" . " <button type='button' onclick='toggleLotDisplay()'>Display mode</button>\n" . " Choose world:\n <form action=\"{$UMC_DOMAIN}/admin/\" method=\"get\" style=\"display:inline;\">\n <div style=\"display:inline;\">" . " <input type='hidden' name='freeonly' value='{$freevalue}'>\n" . " <input type='hidden' name='function' value='create_map'>\n" . " <select name=\"world\" style=\"display:inline;\" onchange='this.form.submit()'>\n"; foreach ($worlds as $worldname) { $uc_worldname = ucwords($worldname); $selected = ''; if ($worldname == $current_world) { $selected = ' selected'; } $menu .= " <option value=\"{$worldname}\"{$selected}>{$uc_worldname}</option>\n"; } $menu .= " </select>\n </div></form>\n " . "<a id='link_3d_maps' href=\"{$UMC_DOMAIN}/dynmap/#\">3D Maps</a>\n "; /* heatmap is disabled if ($lag) { $menu .= "<a href=\"$UMC_DOMAIN/admin/index.php?function=create_map&world=$world\">Normal Map</a>\n | "; } else { $menu .= "<a href=\"$UMC_DOMAIN/admin/index.php?function=create_map&world=$world&lag=true\">Heatmap</a>\n | "; } */ $menu .= umc_read_markers_file('scrollto', $current_world); // get file date $image = "{$UMC_PATH_MC}/server/maps/{$current_world}.jpg"; $date_obj = $datetime = DateTime::createFromFormat('U', filemtime($image)); $date_diff = umc_timer_format_diff($date_obj); $menu .= " <small>({$current_world} map image was updated {$date_diff} ago)</small>"; return $menu; }
function umc_wp_forum_get_postlink($P) { $user = get_userdata($P->post_author); $uuid = get_user_meta($user->ID, 'minecraft_uuid', true); $icon_url = umc_user_get_icon_url($uuid); $date_obj = umc_datetime($P->post_date); $time_ago = umc_timer_format_diff($date_obj); $link = $P->guid; $post_title = $P->post_title; $html = "<a class=\"bbp-reply-topic-title\" href=\"{$link}\" title=\"{$post_title}\">{$post_title}</a><br>by\r\n <a href=\"http://uncovery.me/forums/users/{$user->user_login}/\" title=\"View {$user->display_name}'s profile\"\r\n class=\"bbp-author-avatar\" rel=\"nofollow\"><img alt='' src='{$icon_url}' class='avatar avatar-14 photo' height='14' width='14' /></a> \r\n <a href=\"http://uncovery.me/forums/users/{$user->user_login}/\" title=\"View {$user->display_name}'s profile\" class=\"bbp-author-name\" rel=\"nofollow\">\r\n {$user->display_name}</a><br>{$time_ago} ago"; return $html; }
function umc_get_todays_users() { XMPP_ERROR_trace(__FUNCTION__, func_get_args()); $online_users = umc_read_markers_file('array'); $sql = "SELECT username, lastlogin, uuid FROM minecraft_srvr.UUID " . "WHERE lastlogin >= now() - INTERVAL 1 DAY ORDER BY lastlogin DESC"; $data = umc_mysql_fetch_all($sql); $json = false; $json_arr = array(); $s_get = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING); if (isset($s_get['json'])) { $json = true; } $out = "<div id=\"todays_users\">"; $count = count($data); $opacity_step = 1 / $count; $opacity = 1; foreach ($data as $user) { $url = umc_user_get_icon_url($user['uuid'], false); if (!$url) { // we do not update here, only when people login continue; } $time = $user['lastlogin']; $datetime = umc_datetime($time); $timestamp = $datetime->getTimestamp(); $date_text = umc_timer_format_diff($datetime); if (isset($online_users[strtolower($user['username'])])) { $label = "{$user['username']} (Online since {$date_text})"; $class = " online_user"; $online = 'online'; } else { $class = ' offline_user'; $label = "{$user['username']} ({$date_text} ago)"; $online = 'offline'; } if ($json) { $json_arr[] = array($user['username'], $timestamp, $url, $online); } $out .= "<span class=\"today_user_icon{$class}\"><img style=\"opacity:{$opacity};\" src=\"{$url}\" title=\"{$user['username']}\"><label class=\"today_user_label\">{$label}</label></span>\n"; $opacity = round($opacity - $opacity_step, 4); } $out .= "</div>"; if ($json) { $json_data = json_encode($json_arr); return $json_data; } else { echo $out; } }
function umc_vanity_check($report = true) { // check remaining days global $UMC_USER; $player = $UMC_USER['username']; $current_title = umc_vanity_get_title(); $uuid = umc_user2uuid($player); $date_out = umc_timer_get($player, 'custom_title'); if (!$date_out && $current_title) { // if there is an expired timer AND an existing title umc_exec_command("pex user {$uuid} suffix \"\"", 'asConsole'); if ($report) { umc_echo('Your title has expired. Use /vanity to get a new one!'); } } else { if (!$current_title) { umc_echo('You do not have a title set. Use /vanity to get a new one!'); } else { if ($report) { $date_today = umc_datetime(); $time_out = $date_out->format('Y-m-d H:i:s'); $diff_str = umc_timer_format_diff($date_today, $date_out); umc_echo("Your title will expire on {$time_out} (in {$diff_str})!"); } } } }
function umc_info_who() { global $UMC_USER; $args = $UMC_USER['args']; // we predefine the array to make sure proper sorting $out_arr = array('Guest' => array(), 'Settler' => array(), 'Citizen' => array(), 'Architect' => array(), 'Designer' => array(), 'Master' => array(), 'Elder' => array(), 'Owner' => array()); $user_worlds = false; if (isset($args[2]) && $args[2] == 'where') { $user_worlds = umc_read_markers_file('array'); } else { if (isset($args[2])) { // single player info $user = umc_check_user($args[2]); if ($user) { $user_info = umc_get_userinfo($user); umc_header("User info for {$user}"); $data_text = ''; foreach ($user_info as $desc => $data) { if ($desc == 'Last Seen') { if (isset($UMC_USER['player_data'][$user_info['uuid']])) { $data_text = "{$user} is currently online"; } else { $datetime = umc_datetime($data); $diff = umc_timer_format_diff($datetime); $data_text = $diff . " ago"; } } else { $data_text = $data; } umc_echo("{green}{$desc}: {white}{$data_text}"); } umc_footer(); return; } else { umc_echo("{red}Error: Command/user not recognized"); } } } $players_data = $UMC_USER['player_data']; $count = count($players_data); foreach ($players_data as $uuid => $players_details) { $level = umc_get_uuid_level($uuid); $player = $players_details['Name']; if (strstr($level, "DonatorPlus")) { $new_lvl = substr($level, 0, -11); $new_player = "{$player}{yellow}++{white}"; } else { if (strstr($level, "Donator")) { $new_lvl = substr($level, 0, -7); $new_player = "{$player}{yellow}+{white}"; } else { $new_lvl = $level; $new_player = $player; } } $lower_username = strtolower($player); if ($user_worlds && isset($user_worlds[$lower_username])) { $new_player .= " {grey}({$user_worlds[$lower_username]['world']}){white}"; } $out_arr[$new_lvl][] = $new_player; } umc_header("{$count} users online:"); foreach ($out_arr as $level => $players) { if (count($players) > 0) { umc_echo("{green}{$level}: {white}" . implode(", ", $players)); } } umc_footer(); if ($user_worlds) { umc_echo("{blue}Try {grey}/who <player>{blue} for user details"); } else { umc_echo("{blue}Try {grey}/where{blue} or {grey}/who <player>{blue} for more info"); } }