Package net.storm.api.plugins.config
Interface Config
- All Known Subinterfaces:
StormConfig
public interface Config
Marker interface for plugin configuration interfaces.
Plugin configurations are defined as interfaces that extend Config.
The configuration system uses dynamic proxies to provide implementations
that automatically read and write values to persistent storage.
Configuration interfaces should be annotated with ConfigGroup and
contain methods annotated with ConfigItem:
@ConfigGroup("myplugin")
public interface MyPluginConfig extends Config {
@ConfigItem(
keyName = "enableFeature",
name = "Enable Feature",
description = "Enables the main feature"
)
default boolean enableFeature() {
return true;
}
@ConfigItem(
keyName = "maxCount",
name = "Max Count",
description = "Maximum number of items"
)
@Range(min = 1, max = 100)
default int maxCount() {
return 10;
}
}
To use a configuration in your plugin, inject it using Guice or retrieve
it through the ConfigManager:
@Inject
private MyPluginConfig config;
public void someMethod() {
if (config.enableFeature()) {
// Feature is enabled
}
}
- See Also: