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 eefbc348..a26e6e52 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 @@ -15,6 +15,7 @@ @InfoString.AccessInstance public class Minecraft { public static String version; + public static String vfpVersion = null; public static WorldState worldState = WorldState.MENU; public static PlayState playState = PlayState.ACTIVE; @@ -42,7 +43,7 @@ public static String getFps() { @InfoString.Getter public static String getMcVersion() { - return version; + return vfpVersion == null ? version : vfpVersion + " (VFP)"; } @InfoString.Getter @@ -97,7 +98,7 @@ public static boolean setInputs(TickInput inputs) { } public static boolean setInputs(Float yaw, boolean relYaw, Float pitch, boolean relPitch, int pressedInputs, int releasedInputs, int L, int R) { - if (!io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft.isSingleplayer()) return false; + if (!Minecraft.isSingleplayer()) return false; if (!Interface.get().isPresent()) { API.LOGGER.info(API.COMPATIBILITY_MARKER, "Failed to set inputs, are you playing on an unsupported minecraft version?"); return false; diff --git a/fabric-1.21.11/build.gradle b/fabric-1.21.11/build.gradle index 08bd95dc..75ba92ea 100644 --- a/fabric-1.21.11/build.gradle +++ b/fabric-1.21.11/build.gradle @@ -6,12 +6,18 @@ plugins { loom.runs.client.runDir = "../runs/run" +repositories { + maven { url = "https://repo.viaversion.com" } + maven { url = "https://maven.lenni0451.net/everything" } +} + dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modCompileOnly "com.viaversion:viafabricplus-api:4.4.0" implementation "com.github.MPKMod.MPKNetworkAPI:common:${project.networkApiVersion}" } diff --git a/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/MPKMod.java b/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/MPKMod.java index e87ddfcc..409737fe 100644 --- a/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/MPKMod.java +++ b/fabric-1.21.11/src/main/java/io/github/kurrycat/mpkmod/compatibility/fabric_1_21_11/MPKMod.java @@ -1,6 +1,8 @@ package io.github.kurrycat.mpkmod.compatibility.fabric_1_21_11; import com.mojang.blaze3d.vertex.PoseStack; +import com.viaversion.viafabricplus.ViaFabricPlus; +import com.viaversion.viafabricplus.api.ViaFabricPlusBase; import io.github.kurrycat.mpkmod.compatibility.API; import io.github.kurrycat.mpkmod.compatibility.MCClasses.KeyBinding; import io.github.kurrycat.mpkmod.compatibility.fabric_1_21_11.network.DataCustomPayload; @@ -11,7 +13,9 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.SharedConstants; +import net.minecraft.client.KeyMapping; import net.minecraft.client.KeyMapping.Category; import net.minecraft.client.Minecraft; import net.minecraft.resources.Identifier; @@ -46,6 +50,21 @@ public void onInitialize() { API.Events.onPluginMessage(packet); } })); + + + if (!FabricLoader.getInstance().isModLoaded("viafabricplus")) return; + + ViaFabricPlusBase platform = ViaFabricPlus.getImpl(); + + platform.registerOnChangeProtocolVersionCallback((oldVersion, newVersion) -> { + String newVersionName = newVersion.getName(); + + io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft.vfpVersion = ( + newVersionName.equals(io.github.kurrycat.mpkmod.compatibility.MCClasses.Minecraft.version) + ? null + : newVersionName + ); + }); } private void registerKeybindingsFromGUIs() { @@ -80,7 +99,7 @@ public void init() { } private void registerKeyBindings() { - for (net.minecraft.client.KeyMapping k : Minecraft.getInstance().options.keyMappings) { + for (KeyMapping k : Minecraft.getInstance().options.keyMappings) { new KeyBinding( () -> k.getTranslatedKeyMessage().getString(), k.getName(),