Port to 1.20.2 (#305)

Co-authored-by: Cloudburst <18114966+C10udburst@users.noreply.github.com>
This commit is contained in:
MonkeySaint
2023-11-14 15:03:57 -05:00
committed by GitHub
parent 1f0eef9e15
commit 3119a9145c
20 changed files with 86 additions and 104 deletions

View File

@@ -18,7 +18,7 @@ public class LegacyServerPinger {
}
public void ping(String ip, int port) {
server = new ServerInfo("", ip + ":" + port, false);
server = new ServerInfo("", ip + ":" + port, ServerInfo.ServerType.OTHER);
new Thread(() -> pingInCurrentThread(ip, port),
"Server Pinger #" + threadNumber.incrementAndGet()).start();

View File

@@ -16,12 +16,13 @@ import net.minecraft.network.listener.ClientQueryPacketListener;
import net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket;
import net.minecraft.network.packet.c2s.query.QueryPingC2SPacket;
import net.minecraft.network.packet.c2s.query.QueryRequestC2SPacket;
import net.minecraft.network.packet.s2c.query.QueryPongS2CPacket;
import net.minecraft.network.packet.s2c.query.PingResultS2CPacket;
import net.minecraft.network.packet.s2c.query.QueryResponseS2CPacket;
import net.minecraft.server.ServerMetadata;
import net.minecraft.text.Text;
import net.minecraft.util.Util;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.profiler.PerformanceLog;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -74,13 +75,13 @@ public class ServerListPinger {
notifyDisconnectListeners();
}
}, 20000);
final ClientConnection clientConnection = ClientConnection.connect(new InetSocketAddress(InetAddress.getByName(serverAddress.getAddress()), serverAddress.getPort()), false);
final ClientConnection clientConnection = ClientConnection.connect(new InetSocketAddress(InetAddress.getByName(serverAddress.getAddress()), serverAddress.getPort()), false, (PerformanceLog) null);
failedToConnect = false;
this.clientConnections.add(clientConnection);
entry.label = "multiplayer.status.pinging";
entry.ping = -1L;
entry.playerListSummary = null;
clientConnection.setPacketListener(new ClientQueryPacketListener() {
ClientQueryPacketListener clientQueryPacketListener = new ClientQueryPacketListener() {
private boolean sentQuery;
private boolean received;
private long startTime;
@@ -135,7 +136,7 @@ public class ServerListPinger {
}
}
public void onPong(QueryPongS2CPacket packet) {
public void onPingResult(PingResultS2CPacket packet) {
long l = this.startTime;
long m = Util.getMeasuringTimeMs();
entry.ping = m - l;
@@ -157,10 +158,12 @@ public class ServerListPinger {
public boolean isConnectionOpen() {
return clientConnection.isOpen();
}
});
};
clientConnection.setPacketListener(clientQueryPacketListener);
try {
clientConnection.send(new HandshakeC2SPacket(serverAddress.getAddress(), serverAddress.getPort(), NetworkState.STATUS));
clientConnection.connect(serverAddress.getAddress(), serverAddress.getPort(), clientQueryPacketListener);
clientConnection.send(new QueryRequestC2SPacket());
} catch (Throwable var8) {
LOGGER.error("Failed to ping server {}", serverAddress, var8);