====== ExpectPlatform Annotation ====== ''@ExpectPlatform'' can be applied to static methods, and its content will be replaced by the platform-specific implementation. Here we will declare a method with ''@ExpectPlatform'', please note that you don't need to do this to get the configuration directory if you are using the Architectury API. package net.examplemod; import dev.architectury.injectables.annotations.ExpectPlatform; import java.io.File; class ExampleClass { @ExpectPlatform static File getConfigDirectory() { // Just throw an error, the content should get replaced at runtime. // Something is terribly wrong if this is not replaced. throw new AssertionError(); } } Now, we can go and implement the platform-specific version of this method, we will do Fabric as an example. The package of this class must be suffixed with ''.fabric'', and the name of this platform-specific class is suffixed with Impl. package net.examplemod.fabric; import net.fabricmc.loader.api.FabricLoader; import java.io.File; public class ExampleClassImpl { public static File getConfigDirectory() { return FabricLoader.getInstance().getConfigDir().toFile(); } }