Annotation Interface DataDirectory


@Documented @Target({FIELD,PARAMETER}) @Retention(RUNTIME) public @interface DataDirectory
Marks a Path injection point as the plugin's data directory.

Use this annotation alongside Inject to receive the plugin's dedicated data directory for configuration and storage.

Example

@Plugin(id = "my-plugin", name = "My Plugin", version = "1.0.0")
public class MyPlugin {

    @Inject
    @DataDirectory
    private Path dataDirectory;

    @Subscribe
    public void onInit(ProxyInitializeEvent event) {
        Path configFile = dataDirectory.resolve("config.yml");
        // Load configuration...
    }
}

The data directory is typically located at plugins/<plugin-id>/.

See Also: