aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig/platform
diff options
context:
space:
mode:
authornextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com>2022-09-03 12:50:40 +0100
committerGitHub <noreply@github.com>2022-09-03 13:50:40 +0200
commit4c60b452efda24794c0faa5f300fdd830edcd383 (patch)
tree06c4d425bdc405af0189f4707ba1302b864f7328 /src/main/java/cc/polyfrost/oneconfig/platform
parentb7169237c543bf549a4b03dcc9a23b516da635eb (diff)
downloadOneConfig-4c60b452efda24794c0faa5f300fdd830edcd383.tar.gz
OneConfig-4c60b452efda24794c0faa5f300fdd830edcd383.tar.bz2
OneConfig-4c60b452efda24794c0faa5f300fdd830edcd383.zip
deprecator + Stack trace utilities (#121)
* deprecator * check for more system packages because iterators n stuff * add LogScanner, new loader platform features, spam protection * oop~ * move to Preferences * diamond review * add back the exception * try-catch things and associate OneConfig mods with an ActiveMod * ok maybe not + api my beloved
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();