29
29
< h1 > This website unfortunately requires JavaScript.</ h1 >
30
30
</ noscript >
31
31
< 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 " />
34
34
< br />
35
35
< br />
36
- < button id ="ping " onclick ="doPing('/api/java/') " class ="java ">
36
+ < button id ="java-btn " onclick ="doPing('/api/java/') " class ="java ">
37
37
Ping Java
38
38
</ 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
+ >
40
44
Ping Bedrock
41
45
</ button >
42
46
< br />
43
47
< 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 >
45
51
< br />
46
- < div id ="status "> </ div >
52
+ < div id ="server- status "> </ div >
47
53
</ div >
48
- < div class ="response " id ="response " style =" display: none " >
54
+ < div class ="server- response " id ="server- response " hidden >
49
55
< img
50
56
id ="favicon "
51
57
height ="256 "
@@ -54,48 +60,59 @@ <h1>Minecraft server tester</h1>
54
60
src ="/icon.png "
55
61
/> < br />
56
62
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 >
60
66
< 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 >
67
68
< br />
68
69
< button onclick ="window.location.reload() "> Ping Another</ button >
69
70
</ div >
70
- < br id ="special-break " style =" display: none " />
71
+ < br id ="special-break " hidden />
71
72
< a href ="/api/ "> API</ a >
72
73
< footer >
73
74
Mojang API status:
74
- < div id ="apistatus "> </ div >
75
+ < div id ="api-status "> </ div >
75
76
</ footer >
76
77
</ body >
77
78
< 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" ) ;
85
89
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
+
86
94
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 ) ;
89
106
90
107
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..." ;
94
111
let response = await fetch ( apiLocation + address , { } ) . then ( ( response ) =>
95
112
response . json ( ) ,
96
113
) ;
97
114
if ( response [ "error" ] !== undefined ) {
98
- statusElement . innerText = response [ "error" ] ;
115
+ serverStatusElement . innerText = response [ "error" ] ;
99
116
return ;
100
117
}
101
118
if ( response [ "icon" ] === "" || response [ "icon" ] === undefined ) {
@@ -114,16 +131,17 @@ <h1>Minecraft server tester</h1>
114
131
versionElement . innerHTML = mineParse (
115
132
response [ "version" ] [ "broadcast" ] ,
116
133
) . raw ;
117
- document . getElementById ( "select" ) . style . display = "none" ;
118
- document . getElementById ( "response" ) . style . display = null ;
134
+ selectElement . hidden = true ;
135
+ responseElement . hidden = false ;
119
136
}
120
- </ script >
121
- < script >
137
+
122
138
async function checkMojangStatus ( ) {
123
139
let response = await fetch ( "/api/services" , { } ) . then ( ( response ) =>
124
140
response . json ( ) ,
125
141
) ;
126
- let status = "| " ;
142
+ let status = "" ;
143
+ let counter = 0 ;
144
+ const lastIndex = Object . keys ( response ) . length - 1 ;
127
145
for ( const key in response ) {
128
146
status = status + key + ": " ;
129
147
switch ( response [ key ] ) {
@@ -143,12 +161,14 @@ <h1>Minecraft server tester</h1>
143
161
status = status + '<span style="color:aqua">?</span>' ;
144
162
}
145
163
}
146
- status = status + " | " ;
164
+ if ( counter < lastIndex ) {
165
+ status = status + " | " ;
166
+ }
167
+ counter ++ ;
147
168
}
148
- document . getElementById ( "apistatus" ) . innerHTML = status ;
169
+ apiStatusElement . innerHTML = status ;
149
170
}
150
- </ script >
151
- < script >
171
+
152
172
( function ( ) {
153
173
"use strict" ;
154
174
0 commit comments