Skip to content

Commit 44eb973

Browse files
authored
Merge pull request #19 from RedCokeDevelopment/dev
Version 0.1.4
2 parents 67bc22a + 7289dcc commit 44eb973

File tree

6 files changed

+54
-66
lines changed

6 files changed

+54
-66
lines changed

MCServerPing.iml

Lines changed: 0 additions & 17 deletions
This file was deleted.

mcserverping.iml

Lines changed: 0 additions & 17 deletions
This file was deleted.

pom.xml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>dev.redcoke</groupId>
88
<artifactId>mcserverping</artifactId>
9-
<version>0.1.3</version>
9+
<version>0.1.4</version>
1010

1111
<name>MCServerPing</name>
1212
<description>A Java API for obtaining info about a Minecraft Server</description>
@@ -81,18 +81,18 @@
8181
<dependency>
8282
<groupId>com.google.code.gson</groupId>
8383
<artifactId>gson</artifactId>
84-
<version>2.8.9</version>
84+
<version>2.9.0</version>
8585
</dependency>
8686
<dependency>
8787
<groupId>org.projectlombok</groupId>
8888
<artifactId>lombok</artifactId>
89-
<version>1.18.22</version>
89+
<version>1.18.24</version>
9090
<scope>provided</scope>
9191
</dependency>
9292
<dependency>
9393
<groupId>dnsjava</groupId>
9494
<artifactId>dnsjava</artifactId>
95-
<version>3.4.3</version>
95+
<version>3.5.1</version>
9696
</dependency>
9797
<dependency>
9898
<groupId>net.md-5</groupId>
@@ -103,18 +103,13 @@
103103
<dependency>
104104
<groupId>org.junit.jupiter</groupId>
105105
<artifactId>junit-jupiter-engine</artifactId>
106-
<version>5.8.0-M1</version>
106+
<version>5.9.0</version>
107107
<scope>test</scope>
108108
</dependency>
109-
<dependency>
110-
<groupId>org.apache.maven.plugins</groupId>
111-
<artifactId>maven-javadoc-plugin</artifactId>
112-
<version>3.3.1</version>
113-
</dependency>
114109
<dependency>
115110
<groupId>org.junit.jupiter</groupId>
116111
<artifactId>junit-jupiter-api</artifactId>
117-
<version>5.8.0-M1</version>
112+
<version>5.9.0</version>
118113
<scope>test</scope>
119114
</dependency>
120115
</dependencies>

src/main/java/dev/redcoke/mcserverping/MCServerPing.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,16 +112,16 @@ public static MCServerPingResponse getPing(final String address, final int port)
112112
in.readFully(data);
113113
json = new String(data, StandardCharsets.UTF_8);
114114

115-
// Ping ->
116-
out.writeByte(0x09); // Packet Size
117-
out.writeByte(0x01); // Ping Packet
118-
out.writeLong(System.currentTimeMillis());
119-
120-
// Ping <-
121-
readVarInt(in);
122-
id = readVarInt(in);
123-
io(id == -1, "Server ended data stream unexpectedly.");
124-
io(id != 0x01, "Server returned invalid packet"); // Check Ping Packet
115+
// // Ping ->
116+
// out.writeByte(0x09); // Packet Size
117+
// out.writeByte(0x01); // Ping Packet
118+
// out.writeLong(System.currentTimeMillis());
119+
//
120+
// // Ping <-
121+
// readVarInt(in);
122+
// id = readVarInt(in);
123+
// io(id == -1, "Server ended data stream unexpectedly.");
124+
// io(id != 0x01, "Server returned invalid packet"); // Check Ping Packet
125125

126126
}
127127

src/main/java/dev/redcoke/mcserverping/MCServerPingResponse.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public final class MCServerPingResponse {
1515
private final JsonArray descriptionExtras;
1616
private final String serverIcon;
1717

18-
public MCServerPingResponse(int ping, String name, int protocol, int playerMax, int playerOnline, String motd, JsonArray descriptionExtras, String serverIcon) {
18+
public MCServerPingResponse(int ping, String name, int protocol, Integer playerMax, Integer playerOnline, String motd, JsonArray descriptionExtras, String serverIcon) {
1919
this.ping = ping;
2020
this.version = name;
2121
this.protocol = protocol;
@@ -27,15 +27,20 @@ public MCServerPingResponse(int ping, String name, int protocol, int playerMax,
2727
}
2828

2929
public static MCServerPingResponse serverPingFromJsonObj(JsonObject jsonObj) {
30+
int serverPing = jsonObj.get("ping").getAsInt();
31+
String versionName = jsonObj.get("version").getAsString();
32+
int serverProtocol = jsonObj.get("protocol").getAsInt();
33+
Integer playerMax = null;
34+
Integer playerOnline = null;
35+
if (jsonObj.has("players")) { // Players object is optional somehow
36+
playerMax = jsonObj.get("players").getAsJsonObject().get("max").getAsInt();
37+
playerOnline = jsonObj.get("players").getAsJsonObject().get("online").getAsInt();
38+
}
39+
String serverMOTD = jsonObj.get("description").getAsJsonObject().get("text").getAsString();
40+
JsonArray serverDescriptionExtra = (jsonObj.get("description").getAsJsonObject().get("extra") == null) ? null : jsonObj.get("description").getAsJsonObject().get("extra").getAsJsonArray();
41+
String favIcon = jsonObj.get("favicon").getAsString();
3042
return new MCServerPingResponse(
31-
jsonObj.get("ping").getAsInt(),
32-
jsonObj.get("version").getAsJsonObject().get("name").getAsString(),
33-
jsonObj.get("version").getAsJsonObject().get("protocol").getAsInt(),
34-
jsonObj.get("players").getAsJsonObject().get("max").getAsInt(),
35-
jsonObj.get("players").getAsJsonObject().get("online").getAsInt(),
36-
jsonObj.get("description").getAsJsonObject().get("text").getAsString(),
37-
(jsonObj.get("description").getAsJsonObject().get("extra") == null) ? null : jsonObj.get("description").getAsJsonObject().get("extra").getAsJsonArray(),
38-
(jsonObj.get("favicon") == null) ? null : jsonObj.get("favicon").getAsString()
43+
serverPing, versionName, serverProtocol, playerMax, playerOnline, serverMOTD, serverDescriptionExtra, favIcon
3944
);
4045
}
4146

@@ -51,11 +56,11 @@ public int getProtocol() {
5156
return protocol;
5257
}
5358

54-
public int getPlayerMax() {
59+
public Integer getPlayerMax() {
5560
return maxPlayers;
5661
}
5762

58-
public int getPlayerOnline() {
63+
public Integer getPlayerOnline() {
5964
return onlinePlayers;
6065
}
6166

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package dev.redcoke.mcserverping;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.io.IOException;
7+
import java.util.List;
8+
import java.util.concurrent.TimeoutException;
9+
10+
class MCServerPingDemoTest {
11+
@Test
12+
void test() {
13+
List<String> servers = List.of("hypixel.net", "2b2t.org", "play.cubecraft.net", "play.potwmc.com");
14+
for (var server : servers) {
15+
try {
16+
MCServerPing.getPing(server, 25565).getAsJsonString();
17+
} catch (IOException | TimeoutException ex) {
18+
Assertions.fail(ex);
19+
}
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)