aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/platform')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java22
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/platform/Platform.java5
2 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java b/src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java
index b271602..a9fc24e 100644
--- a/src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java
+++ b/src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java
@@ -26,20 +26,38 @@
package cc.polyfrost.oneconfig.platform;
+import cc.polyfrost.oneconfig.libs.checker.nullness.qual.Nullable;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.File;
+import java.util.List;
+
public interface LoaderPlatform {
boolean isModLoaded(String id);
+
boolean hasActiveModContainer();
- ActiveMod getActiveModContainer();
+
+ @Nullable ActiveMod getActiveModContainer();
+
+ @Nullable ActiveMod toActiveMod(@Nullable Object in);
+
+ /**
+ * Note: the list may contain null elements
+ */
+ @NotNull
+ List<ActiveMod> getLoadedMods();
class ActiveMod {
public final String name;
public final String id;
public final String version;
+ public final File source;
- public ActiveMod(String name, String id, String version) {
+ public ActiveMod(String name, String id, String version, File source) {
this.name = name;
this.id = id;
this.version = version;
+ this.source = source;
}
}
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java b/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
index 1298214..b4cbd28 100644
--- a/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
+++ b/src/main/java/cc/polyfrost/oneconfig/platform/Platform.java
@@ -30,7 +30,7 @@ import java.util.ServiceLoader;
/**
* Contains various platform-specific utilities for OneConfig.
- *
+ * <p>
* This is meant for internal usage, however other mods may use these (unless otherwise stated).
*/
public interface Platform {
@@ -71,12 +71,15 @@ public interface Platform {
int getMinecraftVersion();
+ boolean isDevelopmentEnvironment();
+
Loader getLoader();
class PlatformHolder {
private PlatformHolder() {
}
+
static PlatformHolder INSTANCE = new PlatformHolder();
Platform platform = ServiceLoader.load(Platform.class, Platform.class.getClassLoader()).iterator().next();
MousePlatform mousePlatform = ServiceLoader.load(MousePlatform.class, MousePlatform.class.getClassLoader()).iterator().next();