Ping 1.4-1.5.2

This commit is contained in:
Dereku 2023-03-10 05:55:57 +07:00
parent e9e772f229
commit 31d777f669

View file

@ -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
}
}