Skip to content

Commit 47cb7ad

Browse files
click to reveal IP
1 parent 2076b45 commit 47cb7ad

File tree

2 files changed

+64
-40
lines changed

2 files changed

+64
-40
lines changed

assets/index.css

+4
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,7 @@ footer {
7171
.response {
7272
font-size: 20pt;
7373
}
74+
75+
.ip {
76+
cursor: pointer;
77+
}

assets/index.html

+60-40
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,29 @@
2929
<h1>This website unfortunately requires JavaScript.</h1>
3030
</noscript>
3131
<h1>Minecraft server tester</h1>
32-
<div id="select">
33-
<input id="address" placeholder="Server address" />
32+
<div id="select-ping">
33+
<input id="address-entry" placeholder="Server address" />
3434
<br />
3535
<br />
36-
<button id="ping" onclick="doPing('/api/java/')" class="java">
36+
<button id="java-btn" onclick="doPing('/api/java/')" class="java">
3737
Ping Java
3838
</button>
39-
<button id="bedrock" onclick="doPing('/api/bedrock/')" class="bedrock">
39+
<button
40+
id="bedrock-btn"
41+
onclick="doPing('/api/bedrock/')"
42+
class="bedrock"
43+
>
4044
Ping Bedrock
4145
</button>
4246
<br />
4347
<br />
44-
Your IP: <span id="ip"></span>
48+
<span id="ip-descriptor" class="ip">Your IP:</span>
49+
<span id="ip-msg" class="ip">Click to Reveal</span>
50+
<span id="user-ip" class="ip" hidden></span>
4551
<br />
46-
<div id="status"></div>
52+
<div id="server-status"></div>
4753
</div>
48-
<div class="response" id="response" style="display: none">
54+
<div class="server-response" id="server-response" hidden>
4955
<img
5056
id="favicon"
5157
height="256"
@@ -54,48 +60,59 @@ <h1>Minecraft server tester</h1>
5460
src="/icon.png"
5561
/><br />
5662
Server online!
57-
<div id="latency"></div>
58-
<div id="players"></div>
59-
<div id="version"></div>
63+
<div id="server-latency"></div>
64+
<div id="server-players"></div>
65+
<div id="server-version"></div>
6066
<br />
61-
<div id="motd"></div>
62-
<div id="mods-container" style="display: none">
63-
<br />
64-
<div id="mods"></div>
65-
<br />
66-
</div>
67+
<div id="server-motd"></div>
6768
<br />
6869
<button onclick="window.location.reload()">Ping Another</button>
6970
</div>
70-
<br id="special-break" style="display: none" />
71+
<br id="special-break" hidden />
7172
<a href="/api/">API</a>
7273
<footer>
7374
Mojang API status:
74-
<div id="apistatus"></div>
75+
<div id="api-status"></div>
7576
</footer>
7677
</body>
7778
<script>
78-
const statusElement = document.getElementById("status");
79-
const playersElement = document.getElementById("players");
80-
const faviconElement = document.getElementById("favicon");
81-
const latencyElement = document.getElementById("latency");
82-
const versionElement = document.getElementById("version");
83-
const ipElement = document.getElementById("ip");
84-
const motdElement = document.getElementById("motd");
79+
const serverStatusElement = document.getElementById("server-status");
80+
const apiStatusElement = document.getElementById("api-status");
81+
const playersElement = document.getElementById("server-players");
82+
const faviconElement = document.getElementById("server-favicon");
83+
const latencyElement = document.getElementById("server-latency");
84+
const versionElement = document.getElementById("server-version");
85+
const ipElement = document.getElementById("user-ip");
86+
const ipMsgElement = document.getElementById("ip-msg");
87+
const ipDescriptorElement = document.getElementById("ip-descriptor");
88+
const motdElement = document.getElementById("server-motd");
8589
const specialBreak = document.getElementById("special-break");
90+
const addressEntry = document.getElementById("address-entry");
91+
const selectElement = document.getElementById("select-ping");
92+
const responseElement = document.getElementById("server-response");
93+
8694
fetch("https://v4.giveip.io/raw")
87-
.then((response) => response.text())
88-
.then((s) => (ipElement.innerText = s));
95+
.then((rsp) => rsp.text())
96+
.then((s) => (ipElement.innerText = s.trim()));
97+
98+
function ipClick() {
99+
ipElement.hidden = !ipElement.hidden;
100+
ipMsgElement.hidden = !ipMsgElement.hidden;
101+
}
102+
103+
ipElement.addEventListener("click", ipClick);
104+
ipMsgElement.addEventListener("click", ipClick);
105+
ipDescriptorElement.addEventListener("click", ipClick);
89106

90107
async function doPing(apiLocation) {
91-
let address = document.getElementById("address").value;
92-
specialBreak.style.display = null;
93-
statusElement.innerHTML = "Pinging...";
108+
let address = addressEntry.value;
109+
specialBreak.hidden = false;
110+
serverStatusElement.innerHTML = "Pinging...";
94111
let response = await fetch(apiLocation + address, {}).then((response) =>
95112
response.json(),
96113
);
97114
if (response["error"] !== undefined) {
98-
statusElement.innerText = response["error"];
115+
serverStatusElement.innerText = response["error"];
99116
return;
100117
}
101118
if (response["icon"] === "" || response["icon"] === undefined) {
@@ -114,16 +131,17 @@ <h1>Minecraft server tester</h1>
114131
versionElement.innerHTML = mineParse(
115132
response["version"]["broadcast"],
116133
).raw;
117-
document.getElementById("select").style.display = "none";
118-
document.getElementById("response").style.display = null;
134+
selectElement.hidden = true;
135+
responseElement.hidden = false;
119136
}
120-
</script>
121-
<script>
137+
122138
async function checkMojangStatus() {
123139
let response = await fetch("/api/services", {}).then((response) =>
124140
response.json(),
125141
);
126-
let status = "| ";
142+
let status = "";
143+
let counter = 0;
144+
const lastIndex = Object.keys(response).length - 1;
127145
for (const key in response) {
128146
status = status + key + ": ";
129147
switch (response[key]) {
@@ -143,12 +161,14 @@ <h1>Minecraft server tester</h1>
143161
status = status + '<span style="color:aqua">?</span>';
144162
}
145163
}
146-
status = status + " | ";
164+
if (counter < lastIndex) {
165+
status = status + " | ";
166+
}
167+
counter++;
147168
}
148-
document.getElementById("apistatus").innerHTML = status;
169+
apiStatusElement.innerHTML = status;
149170
}
150-
</script>
151-
<script>
171+
152172
(function () {
153173
"use strict";
154174

0 commit comments

Comments
 (0)