diff --git a/build.gradle b/build.gradle index 206d50351..6d7c06cef 100644 --- a/build.gradle +++ b/build.gradle @@ -29,8 +29,8 @@ allprojects { apply plugin: "maven-publish" archivesBaseName = rootProject.archives_base_name - version = rootProject.mod_version - group = rootProject.maven_group + version = rootProject.minecraft_version + "-" + rootProject.mod_version + group = rootProject.maven_group repositories { // Add repositories to retrieve artifacts from in here. diff --git a/common/src/main/java/org/vivecraft/CommonDataHolder.java b/common/src/main/java/org/vivecraft/CommonDataHolder.java index 7ea840a39..f36326a16 100644 --- a/common/src/main/java/org/vivecraft/CommonDataHolder.java +++ b/common/src/main/java/org/vivecraft/CommonDataHolder.java @@ -7,10 +7,18 @@ public class CommonDataHolder { public final String minecriftVerString; public CommonDataHolder() { + String mcVersion = ""; + String modVersion = ""; + if (Xplat.isModLoadedSuccess()) { + String[] version = Xplat.getModVersion().split("-"); + mcVersion = version[0]; + modVersion = version[1]; + } + if (VRState.checkVR()) { - minecriftVerString = "Vivecraft 1.18.2 jrbudda-VR-" + Xplat.getModloader() + "-" + Xplat.getModVersion(); + minecriftVerString = "Vivecraft " + mcVersion + " jrbudda-VR-" + Xplat.getModloader() + "-" + modVersion; } else { - minecriftVerString = "Vivecraft 1.18.2 jrbudda-NONVR-" + Xplat.getModloader() + "-" + Xplat.getModVersion(); + minecriftVerString = "Vivecraft " + mcVersion + " jrbudda-NONVR-" + Xplat.getModloader() + "-" + modVersion; } } diff --git a/common/src/main/java/org/vivecraft/NonVRMixinConfig.java b/common/src/main/java/org/vivecraft/NonVRMixinConfig.java index 9d8b63468..d52c716a9 100644 --- a/common/src/main/java/org/vivecraft/NonVRMixinConfig.java +++ b/common/src/main/java/org/vivecraft/NonVRMixinConfig.java @@ -1,5 +1,7 @@ package org.vivecraft; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; @@ -31,6 +33,10 @@ public void acceptTargets(Set myTargets, Set otherTargets) { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!Xplat.isModLoadedSuccess()) { + LogManager.getLogger().log(Level.WARN, "not loading '" + mixinClassName + "' because mod failed to load completely"); + return false; + } if (mixinClassName.contains("ClientPacketListenerMixin")) { return !VRState.checkVR(); } else { diff --git a/common/src/main/java/org/vivecraft/VRMixinConfig.java b/common/src/main/java/org/vivecraft/VRMixinConfig.java index aa25700c6..e68b369b0 100644 --- a/common/src/main/java/org/vivecraft/VRMixinConfig.java +++ b/common/src/main/java/org/vivecraft/VRMixinConfig.java @@ -2,6 +2,8 @@ import com.sun.jna.NativeLibrary; import jopenvr.JOpenVRLibrary; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; @@ -121,6 +123,10 @@ else if (s.contains("mac")) @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!Xplat.isModLoadedSuccess()) { + LogManager.getLogger().log(Level.WARN, "not loading '" + mixinClassName + "' because mod failed to load completely"); + return false; + } if (mixinClassName.contains("NoSodium") && (Xplat.isModLoaded("sodium") || Xplat.isModLoaded("rubidium"))) { return false; } diff --git a/common/src/main/java/org/vivecraft/Xplat.java b/common/src/main/java/org/vivecraft/Xplat.java index ed6cc0acb..0365e66bf 100644 --- a/common/src/main/java/org/vivecraft/Xplat.java +++ b/common/src/main/java/org/vivecraft/Xplat.java @@ -44,4 +44,9 @@ static String getModloader() { static String getModVersion() { return ""; } + + @ExpectPlatform + static boolean isModLoadedSuccess() { + return false; + } } diff --git a/fabric/src/main/java/org/vivecraft/fabric/XplatImpl.java b/fabric/src/main/java/org/vivecraft/fabric/XplatImpl.java index 625e7c15a..d1f43486f 100644 --- a/fabric/src/main/java/org/vivecraft/fabric/XplatImpl.java +++ b/fabric/src/main/java/org/vivecraft/fabric/XplatImpl.java @@ -2,13 +2,8 @@ import net.fabricmc.api.EnvType; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.dedicated.DedicatedServer; import java.nio.file.Path; -import java.util.Collection; -import java.util.List; -import java.util.Optional; public class XplatImpl { @@ -28,6 +23,13 @@ public static String getModloader() { } public static String getModVersion() { - return FabricLoader.getInstance().getModContainer("vivecraft").get().getMetadata().getVersion().getFriendlyString(); + if (isModLoadedSuccess()) { + return FabricLoader.getInstance().getModContainer("vivecraft").get().getMetadata().getVersion().getFriendlyString(); + } + return "no version"; + } + + public static boolean isModLoadedSuccess() { + return FabricLoader.getInstance().isModLoaded("vivecraft"); } } diff --git a/forge/src/main/java/org/vivecraft/forge/XplatImpl.java b/forge/src/main/java/org/vivecraft/forge/XplatImpl.java index a31d53c9f..66bf23416 100644 --- a/forge/src/main/java/org/vivecraft/forge/XplatImpl.java +++ b/forge/src/main/java/org/vivecraft/forge/XplatImpl.java @@ -1,13 +1,6 @@ package org.vivecraft.forge; -import net.minecraft.client.renderer.LevelRenderer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.dedicated.DedicatedServer; -import net.minecraft.world.level.storage.LevelResource; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.ForgeConfig; -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.loading.FMLEnvironment; import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.fml.loading.FMLPaths; @@ -32,6 +25,13 @@ public static String getModloader() { return "forge"; } public static String getModVersion() { - return FMLLoader.getLoadingModList().getModFileById("vivecraft").versionString(); + if (isModLoadedSuccess()) { + return FMLLoader.getLoadingModList().getModFileById("vivecraft").versionString(); + } + return "no version"; + } + + public static boolean isModLoadedSuccess() { + return FMLLoader.getLoadingModList().getModFileById("vivecraft") != null; } }