diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Minecraft.java b/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Minecraft.java index e6d13f26..398b8c67 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Minecraft.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Minecraft.java @@ -19,6 +19,7 @@ public class Minecraft { public static WorldState worldState = WorldState.MENU; public static PlayState playState = PlayState.ACTIVE; public static boolean sprintToggled = false; + public static int ping = -1; @InfoString.Getter public static String getIp() { @@ -42,6 +43,14 @@ public static String getFps() { }); } + @InfoString.Getter + public static int getPing() { + return Interface.get().map(Interface::getPing).orElseGet(() -> { + API.LOGGER.info(API.COMPATIBILITY_MARKER, "Failed to get Ping, are you playing on an unsupported minecraft version?"); + return -1; + }); + } + @InfoString.Getter public static String getMcVersion() { return vfpVersion == null ? version : vfpVersion + " (VFP)"; @@ -141,6 +150,8 @@ static Optional get() { String getFPS(); + int getPing(); + void displayGuiScreen(MPKGuiScreen screen); String getCurrentGuiScreen(); diff --git a/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/FunctionCompatibility.java b/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/FunctionCompatibility.java index 46d041d2..86923e0b 100644 --- a/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/FunctionCompatibility.java +++ b/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/FunctionCompatibility.java @@ -16,11 +16,13 @@ import net.minecraft.client.KeyMapping; import net.minecraft.client.Options; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.PlayerTabOverlay; import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.render.TextureSetup; import net.minecraft.client.gui.render.state.GuiElementRenderState; import net.minecraft.client.gui.render.state.pip.PictureInPictureRenderState; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.multiplayer.PlayerInfo; import net.minecraft.client.multiplayer.ServerData; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.RenderPipelines; @@ -304,6 +306,11 @@ public String getFPS() { return String.valueOf(net.minecraft.client.Minecraft.getInstance().getFps()); } + public int getPing() { + PlayerInfo info = net.minecraft.client.Minecraft.getInstance().getConnection().getListedOnlinePlayers().stream().filter(playerInfo -> playerInfo.getProfile().id().equals(net.minecraft.client.Minecraft.getInstance().player.getUUID())).findFirst().get(); + return info.getLatency(); + } + public void displayGuiScreen(MPKGuiScreen screen) { net.minecraft.client.Minecraft.getInstance().setScreen( screen == null diff --git a/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/FunctionCompatibility.java b/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/FunctionCompatibility.java index 21032c7b..482421e6 100644 --- a/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/FunctionCompatibility.java +++ b/forge-1.12.2/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_12_2/FunctionCompatibility.java @@ -335,6 +335,10 @@ public String getFPS() { return String.valueOf(Minecraft.getDebugFPS()); } + public int getPing() { + return Minecraft.getMinecraft().getConnection().getPlayerInfo(Minecraft.getMinecraft().player.getUniqueID()).getResponseTime(); + } + /** * Is called in {@link io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft.Interface Minecraft.Interface} */ diff --git a/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/FunctionCompatibility.java b/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/FunctionCompatibility.java index 4eebaf54..9726a9d8 100644 --- a/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/FunctionCompatibility.java +++ b/forge-1.8.9/src/main/java/io/github/kurrycat/mpkmod/compatibility/forge_1_8/FunctionCompatibility.java @@ -336,6 +336,10 @@ public String getFPS() { return String.valueOf(Minecraft.getDebugFPS()); } + public int getPing() { + return Minecraft.getMinecraft().getNetHandler().getPlayerInfo(Minecraft.getMinecraft().thePlayer.getUniqueID()).getResponseTime(); + } + /** * Is called in {@link io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft.Interface Minecraft.Interface} */