Skip to content

Instantly share code, notes, and snippets.

@bradybellini
Forked from cfstras/status.html
Last active February 9, 2020 00:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradybellini/0dedc09f5cfc4cc3d2b67e0e6576217b to your computer and use it in GitHub Desktop.
Save bradybellini/0dedc09f5cfc4cc3d2b67e0e6576217b to your computer and use it in GitHub Desktop.
Simple Minecraft Server status box using http://api.syfaro.net/
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
<script>
var rq = '//mcapi.us/server/status?ip=';
var error = 'unknown';
var classes = {
error: "fa-question",
false: "fa-times",
true: "fa-check",
};
var allclasses = "";
for(i in classes) {
allclasses += ' '+classes[i];
};
function q(addr, cb) {
$.ajax({
url: rq,
type: 'GET',
dataType: 'json',
data: {ip: addr, players: true},
})
.done(function(data) {
console.log("success");
console.log(data);
cb(data);
})
.fail(function(data) {
console.log("error");
})
.always(function() {
});
}
function setclass(o, c) {
o.removeClass(allclasses);
o.addClass(classes[c]);
o.html('');
}
function settext(o, t) {
o.removeClass(allclasses);
o.html(t);
}
function display(data) {
var np = $('#numplayers'),
online = $('#online'),
motd = $('#motd'),
updated = $('#updated'),
players = $('#players');
data.online = data.status === 'success';
settext(updated, data.last_update);
setclass(online, data.online);
if (data.online) {
settext(np, data.players.now);
settext(version, data.version);
settext(motd, data.motd);
if (data.players.sample) {
settext(players,
data.players.sample.map(function(v){
return v.name;
}).join(', '));
} else {
settext(players, '');
}
} else {
setclass(np, error);
setclass(version, error);
setclass(motd, error);
setclass(players, error);
}
}
$(document).ready(function() {
q('mc.gamersgrove.net', display);
});
</script>
<style type="text/css" media="screen">
.statusbox {
min-width: 5em;
min-height: 2em;
border: 1px solid #999;
border-radius: 1em;
background-color: #eee;
padding: 0.5em;
margin: 0.5em;
}
.label {
text-align: right;
float: left;
margin-right: 1em;
min-width: 8em;
color: #444;
}
.grey {
color: #666;
}
</style>
<div class="statusbox">
<span class="label">Online: </span>
<i id="online" class="fa fa-question"></i>
<br/>
<span class="label">MOTD: </span>
<i id="motd" class="fa fa-question"></i>
<br/>
<span class="label">Players: </span>
<i id="numplayers" class="fa fa-question"></i>
<br/>
<span class="label">&nbsp;</span>
<i id="players" class="fa fa-question"></i>
<br>
<span class="label grey">Last Updated: </span>
<i id="updated" class="fa fa-question grey"></i>
<br/>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment