Legacy ping
This commit is contained in:
parent
3e4f244552
commit
e9e772f229
1 changed files with 17 additions and 4 deletions
|
|
@ -14,7 +14,7 @@ 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};
|
||||
// Queries end
|
||||
private final ServerSocket serverSocket;
|
||||
private final AtomicBoolean working = new AtomicBoolean(false);
|
||||
|
|
@ -43,9 +43,9 @@ public class ServerThread extends Thread {
|
|||
final OutputStream outputStream = newConnection.getOutputStream();
|
||||
if (Arrays.equals(RUBETA_MODDED_CLIENT, query)) {
|
||||
this.responseForRuBetaModdedClient(outputStream);
|
||||
} else if (false) {
|
||||
|
||||
}
|
||||
} else if (Arrays.equals(LEGACY_PING_B1_8_TO_R1_2_5, query)) {
|
||||
this.responseForLegacyPing(outputStream);
|
||||
}
|
||||
newConnection.close();
|
||||
} catch (IOException ignore) {
|
||||
}
|
||||
|
|
@ -76,4 +76,17 @@ public class ServerThread extends Thread {
|
|||
clientOutput.writeInt(result.size());
|
||||
clientOutput.write(result.toByteArray());
|
||||
}
|
||||
|
||||
private void responseForLegacyPing(final OutputStream outputStream) throws IOException {
|
||||
final DataOutputStream clientOutput = new DataOutputStream(outputStream);
|
||||
clientOutput.write(255); // Packet 0xFF (PacketDisconnect)
|
||||
final String response = 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