{"id":54,"date":"2015-05-13T12:00:00","date_gmt":"2015-05-13T12:00:00","guid":{"rendered":"https:\/\/eric.tedjamulia.com\/blog\/tedjcraft-server-status\/"},"modified":"2026-10-29T03:49:33","modified_gmt":"2026-10-29T03:49:33","slug":"tedjcraft-server-status","status":"publish","type":"post","link":"https:\/\/eric.tedjamulia.com\/blog\/tedjcraft-server-status\/","title":{"rendered":"Is TedjCraft up?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I put together a status page for our family Minecraft server. It is a simple way to answer the first question before trying to join: is the server actually running?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is mostly integration work rather than a new Minecraft protocol implementation. The PHP page asks the MineTools ping and query endpoints for JSON, then uses that information to show the server status, version, player count, and player list. The page uses Bootstrap for the layout and can show player-head images next to the names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The ping and query data do slightly different jobs: the general server information comes from the ping result, while the detailed player list depends on the query service. If the server is unreachable, the useful answer is simply that it is offline. Not a very big application, but a handy little front door for the server our family actually wants to use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/etedj.com\/projects\/tedjcraftstatus\/\">TedjCraft status<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I also have a companion called <a href=\"https:\/\/etedj.com\/minetime\/\">MineTime<\/a>. Rather than just showing whether the server is up, this one keeps track of who joined and left and adds up their time. The PHP code queries the Minecraft server, records sessions in MySQL, and shows each player&#8217;s minutes and hours. I also hooked up join and leave notifications through Pushbullet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For looking around rather than checking who is online, there is also a <a href=\"https:\/\/etedj.com\/map\/\">map of our Minecraft world<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I put together a status page for our family Minecraft server. It is a simple way to answer the first question before trying to join: is the server actually running? This is mostly integration work rather than a new Minecraft protocol implementation. The PHP page asks the MineTools ping and query endpoints for JSON, then [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[41,21,40,12],"class_list":["post-54","post","type-post","status-publish","format-standard","hentry","category-tools","tag-bootstrap","tag-json","tag-minecraft","tag-php"],"_links":{"self":[{"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/comments?post=54"}],"version-history":[{"count":1,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions\/77"}],"wp:attachment":[{"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/media?parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/categories?post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eric.tedjamulia.com\/blog\/wp-json\/wp\/v2\/tags?post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}