====== 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();
}
}