diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java index f714815a9..9dd5c3ca5 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java @@ -90,8 +90,8 @@ public class FabricMain extends AbstractModInitializer implements ClientModIniti { ModAccessorInjector.INSTANCE.bind(ISodiumAccessor.class, new SodiumAccessor()); - // If sodium is installed Indium is also necessary in order to use the Fabric rendering API - if (!modChecker.isModLoaded("indium")) + // If sodium is installed Indium is also necessary for versions 0.5 and less in order to use the Fabric rendering API + if (!modChecker.isModLoaded("indium") && SodiumAccessor.isSodiumV5OrLess) { String indiumMissingMessage = ModInfo.READABLE_NAME + " needs Indium to work with Sodium.\nPlease download Indium from https://modrinth.com/mod/indium"; LOGGER.fatal(indiumMissingMessage); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java index af64b923a..69741e51c 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java @@ -43,11 +43,22 @@ import net.minecraft.world.phys.AABB; public class SodiumAccessor implements ISodiumAccessor { + /** + * True if sodium 0.5 or less is present.
+ * This field is public because it's also used to check if we need Indium to be present.
+ * We need Indium if Sodium 0.5 or less is present. + */ + public static final boolean isSodiumV5OrLess; + #if MC_VER >= MC_1_20_1 private static MethodHandle setFogOcclusionMethod; private static Object sodiumPerformanceOptions; #endif + static { + isSodiumV5OrLess = !classPresent("net.caffeinemc.mods.sodium.client.render.SodiumWorldRenderer"); + } + //======================// @@ -72,8 +83,7 @@ public class SodiumAccessor implements ISodiumAccessor { if (sodiumPerformanceOptions == null) { - boolean sodiumV6 = classPresent("net.caffeinemc.mods.sodium.client.render.SodiumWorldRenderer"); - if (!sodiumV6) + if (isSodiumV5OrLess) { // sodium 0.5