Ping 1.4-1.5.2
This commit is contained in:
parent
e9e772f229
commit
31d777f669
1 changed files with 21 additions and 3 deletions
|
|
@ -14,7 +14,8 @@ public class ServerThread extends Thread {
|
|||
|
||||
// Queries start
|
||||
private static final byte[] RUBETA_MODDED_CLIENT = new byte[]{0, 0, 0, 1, (byte) 254};
|
||||
private static final byte[] LEGACY_PING_B1_8_TO_R1_2_5 = new byte[]{(byte) 254};
|
||||
private static final byte[] LEGACY_PING_B1_8_TO_R1_3 = new byte[]{(byte) 254};
|
||||
private static final byte[] PING_R1_4_TO_R1_5 = new byte[]{(byte) 254, 1};
|
||||
// Queries end
|
||||
private final ServerSocket serverSocket;
|
||||
private final AtomicBoolean working = new AtomicBoolean(false);
|
||||
|
|
@ -43,9 +44,11 @@ public class ServerThread extends Thread {
|
|||
final OutputStream outputStream = newConnection.getOutputStream();
|
||||
if (Arrays.equals(RUBETA_MODDED_CLIENT, query)) {
|
||||
this.responseForRuBetaModdedClient(outputStream);
|
||||
} else if (Arrays.equals(LEGACY_PING_B1_8_TO_R1_2_5, query)) {
|
||||
} else if (Arrays.equals(LEGACY_PING_B1_8_TO_R1_3, query)) {
|
||||
this.responseForLegacyPing(outputStream);
|
||||
}
|
||||
} else if (Arrays.equals(PING_R1_4_TO_R1_5, query)) {
|
||||
this.responseForR14Ping(outputStream);
|
||||
}
|
||||
newConnection.close();
|
||||
} catch (IOException ignore) {
|
||||
}
|
||||
|
|
@ -89,4 +92,19 @@ public class ServerThread extends Thread {
|
|||
}
|
||||
// Packet data end
|
||||
}
|
||||
|
||||
private void responseForR14Ping(final OutputStream outputStream) throws IOException {
|
||||
final DataOutputStream clientOutput = new DataOutputStream(outputStream);
|
||||
clientOutput.write(255); // Packet 0xFF (PacketDisconnect)
|
||||
final String response = '§' + 1
|
||||
+ '\u0000' + "b1.7.3m" + '\u0000' + 17 // Protocol version
|
||||
+ '\u0000' + this.minecraftServer.getMotd()
|
||||
+ '\u0000' + this.minecraftServer.getOnlinePlayers().size()
|
||||
+ '\u0000' + this.minecraftServer.getMaxPlayers();
|
||||
clientOutput.writeShort(response.length());
|
||||
for (char c : response.toCharArray()) {
|
||||
clientOutput.writeChar(c);
|
||||
}
|
||||
// Packet data end
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue