Annotation Interface Inject
Marks a field or constructor parameter for dependency injection.
The plugin loader will automatically inject available services into
fields or constructor parameters annotated with @Inject.
Available Injectables
ProxyServer- The proxy server instanceEventManager- Event registrationCommandManager- Command registrationMessagingService- Cross-proxy messagingScheduler- Task schedulingLogger- Plugin-specific loggerPath- Plugin data directory (annotate withDataDirectory)
Field Injection
@Plugin(id = "my-plugin", name = "My Plugin", version = "1.0.0")
public class MyPlugin {
@Inject
private ProxyServer server;
@Inject
private MessagingService messaging;
@Inject
private Logger logger;
@Subscribe
public void onInit(ProxyInitializeEvent event) {
logger.info("Plugin loaded with {} players", server.getPlayerCount());
}
}
Constructor Injection
@Plugin(id = "my-plugin", name = "My Plugin", version = "1.0.0")
public class MyPlugin {
private final ProxyServer server;
private final Logger logger;
@Inject
public MyPlugin(ProxyServer server, Logger logger) {
this.server = server;
this.logger = logger;
}
}
- See Also: