diff --git a/common/src/main/java/mcp/mobius/waila/WailaPlugins.java b/common/src/main/java/mcp/mobius/waila/WailaPlugins.java index d8be5305c..093e919ea 100644 --- a/common/src/main/java/mcp/mobius/waila/WailaPlugins.java +++ b/common/src/main/java/mcp/mobius/waila/WailaPlugins.java @@ -47,7 +47,7 @@ public void initializePlugins() { protected static void createPlugin(String id, String initializer) { try { - IWailaPlugin plugin = (IWailaPlugin) Class.forName(initializer).newInstance(); + IWailaPlugin plugin = (IWailaPlugin) Class.forName(initializer).getConstructor().newInstance(); PLUGINS.put(id, plugin); Waila.LOGGER.info("Discovered plugin {} at {}", id, plugin.getClass().getCanonicalName()); } catch (Exception e) { diff --git a/common/src/main/java/mcp/mobius/waila/utils/JsonConfig.java b/common/src/main/java/mcp/mobius/waila/utils/JsonConfig.java index 6b5dd4cda..986735d71 100644 --- a/common/src/main/java/mcp/mobius/waila/utils/JsonConfig.java +++ b/common/src/main/java/mcp/mobius/waila/utils/JsonConfig.java @@ -18,8 +18,8 @@ public class JsonConfig { private final CachedSupplier configGetter; private Gson gson = DEFAULT_GSON; - public JsonConfig(String fileName, Class configClass, Supplier defaultFactory) { - this.configFile = Waila.configDir.resolve(fileName + (fileName.endsWith(".json") ? "" : ".json")).toFile(); + public JsonConfig(File file, Class configClass, Supplier defaultFactory) { + this.configFile = file; this.configGetter = new CachedSupplier<>(() -> { if (!configFile.exists()) { T def = defaultFactory.get(); @@ -36,11 +36,15 @@ public JsonConfig(String fileName, Class configClass, Supplier defaultFact }); } + public JsonConfig(String fileName, Class configClass, Supplier defaultFactory) { + this(Waila.configDir.resolve(fileName + (fileName.endsWith(".json") ? "" : ".json")).toFile(), configClass, defaultFactory); + } + public JsonConfig(String fileName, Class configClass) { this(fileName, configClass, () -> { try { - return configClass.newInstance(); - } catch (InstantiationException | IllegalAccessException e) { + return configClass.getConstructor().newInstance(); + } catch (Exception e) { throw new RuntimeException("Failed to create new config instance", e); } }); diff --git a/fabric/build.gradle b/fabric/build.gradle index 379362546..929c113ad 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -10,7 +10,8 @@ repositories { dependencies { modImplementation "net.fabricmc:fabric-loader:$fabricLoader" - modImplementation "net.fabricmc.fabric-api:fabric-api:$fabricApi" + modCompileOnly "net.fabricmc.fabric-api:fabric-api:$fabricApi" + modRuntime "net.fabricmc.fabric-api:fabric-api:$fabricApi" modCompileOnly "com.terraformersmc:modmenu:$modMenu" modRuntime "com.terraformersmc:modmenu:$modMenu"