From 0dc846ba072d277a2fe3f3b2229d92742948dd6b Mon Sep 17 00:00:00 2001 From: Nerjal Nosk Date: Wed, 21 Oct 2026 17:57:15 +0200 Subject: [PATCH] Added dev env detection --- .../com/nerjal/moddingutils/platform/PlatformService.java | 2 ++ .../nerjal/moddingutils/platform/PlatformServiceFabric.java | 5 +++++ .../nerjal/moddingutils/platform/PlatformServiceForge.java | 6 ++++++ .../moddingutils/platform/PlatformServiceNeoForge.java | 6 ++++++ .../nerjal/moddingutils/platform/PlatformServiceOther.java | 5 +++++ src/main/java/module-info.java | 2 ++ 6 files changed, 26 insertions(+) diff --git a/src/main/java/com/nerjal/moddingutils/platform/PlatformService.java b/src/main/java/com/nerjal/moddingutils/platform/PlatformService.java index 34be14e..b516446 100644 --- a/src/main/java/com/nerjal/moddingutils/platform/PlatformService.java +++ b/src/main/java/com/nerjal/moddingutils/platform/PlatformService.java @@ -51,6 +51,8 @@ public abstract sealed class PlatformService permits PlatformServiceFabric, Plat return modsMap.computeIfAbsent(modId, this::createModContainer); } + public abstract boolean isDevEnv(); + @Contract(pure = true) protected abstract Optional createModContainer(String modId); diff --git a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceFabric.java b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceFabric.java index 8fdb5cd..21555cb 100644 --- a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceFabric.java +++ b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceFabric.java @@ -16,6 +16,11 @@ final class PlatformServiceFabric extends PlatformService { .map(FabricModContainer::new); } + @Override + public boolean isDevEnv() { + return FabricLoader.getInstance().isDevelopmentEnvironment(); + } + static final class FabricModContainer extends PlatformModContainer { private FabricModContainer(ModMetadata modMetadata) { diff --git a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceForge.java b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceForge.java index 484be8d..0d770ce 100644 --- a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceForge.java +++ b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceForge.java @@ -1,6 +1,7 @@ package com.nerjal.moddingutils.platform; import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.forgespi.language.IModFileInfo; import java.util.Arrays; @@ -13,6 +14,11 @@ final class PlatformServiceForge extends PlatformService { return Optional.ofNullable(ModList.get().getModFileById(modId)).map(i -> new ForgeModContainer(modId, i)); } + @Override + public boolean isDevEnv() { + return !FMLLoader.isProduction(); + } + static final class ForgeModContainer extends PlatformModContainer { ForgeModContainer(String modId, IModFileInfo modInfo) { diff --git a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceNeoForge.java b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceNeoForge.java index 11ef3ff..7735c88 100644 --- a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceNeoForge.java +++ b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceNeoForge.java @@ -1,6 +1,7 @@ package com.nerjal.moddingutils.platform; import net.neoforged.fml.ModList; +import net.neoforged.fml.loading.FMLLoader; import net.neoforged.neoforgespi.language.IModFileInfo; import java.util.Arrays; @@ -13,6 +14,11 @@ final class PlatformServiceNeoForge extends PlatformService { return Optional.ofNullable(ModList.get().getModFileById(modId)).map(i -> new NeoForgeModContainer(modId, i)); } + @Override + public boolean isDevEnv() { + return !FMLLoader.isProduction(); + } + static final class NeoForgeModContainer extends PlatformModContainer { NeoForgeModContainer(String modId, IModFileInfo modInfo) { super(modId, Arrays.stream(modInfo.getConfig().getConfigElement("authors") diff --git a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceOther.java b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceOther.java index ee6cc5c..a3f7b98 100644 --- a/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceOther.java +++ b/src/main/java/com/nerjal/moddingutils/platform/PlatformServiceOther.java @@ -10,4 +10,9 @@ final class PlatformServiceOther extends PlatformService { protected Optional createModContainer(String modId) { return Optional.empty(); } + + @Override + public boolean isDevEnv() { + return false; + } } diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index d7a633d..cd35e6a 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -8,6 +8,8 @@ module ModdingUtils { requires net.minecraftforge.forgespi; requires net.neoforged.neoforgespi; requires fml_core; + requires fmlloader; + requires fml_loader; opens com.nerjal.moddingutils.compat; opens com.nerjal.moddingutils.mod; opens com.nerjal.moddingutils.platform;