package net.minecraft.client.multiplayer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.Util; import net.minecraft.network.protocol.ping.ClientboundPongResponsePacket; import net.minecraft.network.protocol.ping.ServerboundPingRequestPacket; import net.minecraft.util.debugchart.LocalSampleLogger; @Environment(EnvType.CLIENT) public class PingDebugMonitor { private final ClientPacketListener connection; private final LocalSampleLogger delayTimer; public PingDebugMonitor(ClientPacketListener connection, LocalSampleLogger delayTimer) { this.connection = connection; this.delayTimer = delayTimer; } public void tick() { this.connection.send(new ServerboundPingRequestPacket(Util.getMillis())); } public void onPongReceived(ClientboundPongResponsePacket packet) { this.delayTimer.logSample(Util.getMillis() - packet.time()); } }