From 4c60b452efda24794c0faa5f300fdd830edcd383 Mon Sep 17 00:00:00 2001 From: nextdaydelivery <79922345+nxtdaydelivery@users.noreply.github.com> Date: Sat, 3 Sep 2022 12:50:40 +0100 Subject: 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 --- .../oneconfig/platform/LoaderPlatform.java | 22 ++++++++++++++++++++-- .../cc/polyfrost/oneconfig/platform/Platform.java | 5 ++++- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'src/main/java/cc/polyfrost/oneconfig/platform') 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 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. - * + *

* 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(); -- cgit