73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
---
|
|
title: Minecraft Server Status Checker
|
|
toc: false
|
|
aliases:
|
|
/ourcraft-status
|
|
---
|
|
|
|
<noscript>
|
|
<p>
|
|
It looks like you have javascript disabled! This page uses javascript to query a third-party server which fetches data from our minecraft servers.
|
|
</p>
|
|
</noscript>
|
|
|
|
<button id="check-minecraft-server-status">Reload</button>
|
|
|
|
<div id="server-status">
|
|
<p id="server-status-loading">
|
|
Checking minecraft servers' status...
|
|
</p>
|
|
<ul id="servers">
|
|
</ul>
|
|
</div>
|
|
|
|
<script>
|
|
function checkMinecraftServerStatus() {
|
|
const loading = document.getElementById("server-status-loading")
|
|
const servers = document.getElementById("servers")
|
|
|
|
loading.style.display = "inherit";
|
|
servers.style.display = "none";
|
|
try {
|
|
fetch("https://api.lyte.dev/minecraft-server-status").then(res => {
|
|
res.json().then(statuses => {
|
|
console.log(statuses)
|
|
loading.style.display = "none";
|
|
servers.style.display = "inherit";
|
|
const newChildren = [];
|
|
for (let k of Object.keys(statuses)) {
|
|
const status = statuses[k]
|
|
const el = document.createElement("li")
|
|
const s = document.createElement("strong")
|
|
s.textContent = k
|
|
const c = document.createElement("code")
|
|
c.className = "chroma"
|
|
const cs = document.createElement("span")
|
|
c.appendChild(cs)
|
|
cs.className = (status.online ? "na" : "err")
|
|
cs.textContent = status.online ? "ONLINE" : "OFFLINE"
|
|
const p = document.createElement("span")
|
|
p.style.marginLeft = "0.5em";
|
|
if (status.players) {
|
|
p.textContent = `(${status.players.online}/${status.players.max} players)`
|
|
}
|
|
el.replaceChildren(
|
|
s,
|
|
document.createTextNode(": "),
|
|
c,
|
|
p,
|
|
)
|
|
newChildren.push(el)
|
|
|
|
}
|
|
servers.replaceChildren(...newChildren)
|
|
})
|
|
}).catch(err => console.error(err))
|
|
} catch (err) {
|
|
console.err(err)
|
|
}
|
|
}
|
|
document.getElementById("check-minecraft-server-status").addEventListener("click", checkMinecraftServerStatus)
|
|
document.addEventListener("DOMContentLoaded", checkMinecraftServerStatus)
|
|
</script>
|