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
|
// Queries start
|
||||||
private static final byte[] RUBETA_MODDED_CLIENT = new byte[]{0, 0, 0, 1, (byte) 254};
|
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
|
// Queries end
|
||||||
private final ServerSocket serverSocket;
|
private final ServerSocket serverSocket;
|
||||||
private final AtomicBoolean working = new AtomicBoolean(false);
|
private final AtomicBoolean working = new AtomicBoolean(false);
|
||||||
|
|
@ -43,9 +44,11 @@ public class ServerThread extends Thread {
|
||||||
final OutputStream outputStream = newConnection.getOutputStream();
|
final OutputStream outputStream = newConnection.getOutputStream();
|
||||||
if (Arrays.equals(RUBETA_MODDED_CLIENT, query)) {
|
if (Arrays.equals(RUBETA_MODDED_CLIENT, query)) {
|
||||||
this.responseForRuBetaModdedClient(outputStream);
|
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);
|
this.responseForLegacyPing(outputStream);
|
||||||
}
|
} else if (Arrays.equals(PING_R1_4_TO_R1_5, query)) {
|
||||||
|
this.responseForR14Ping(outputStream);
|
||||||
|
}
|
||||||
newConnection.close();
|
newConnection.close();
|
||||||
} catch (IOException ignore) {
|
} catch (IOException ignore) {
|
||||||
}
|
}
|
||||||
|
|
@ -89,4 +92,19 @@ public class ServerThread extends Thread {
|
||||||
}
|
}
|
||||||
// Packet data end
|
// 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