Skip to content
Alexis Chân Gridel edited this page Jul 31, 2022 · 1 revision
public final class HelloWorldPlugin extends JavaPlugin {
	@Override
	public void onEnable() {

		final Injector injector = Guice.createInjector(new IocContainerModule(this));

		PluginDependencies.fromInjector(injector).registerAll(this);

		getLogger().info(getName() + " is loaded !");
	}

	@Override
	public void onDisable() {
		getLogger().info(getName() + " is unloaded !");
	}
}
public class HelloWorldService {
	public void salute(final CommandSender recipient) {
		recipient.sendMessage("Hello, world!");
	}
}
public class HelloWorldCommand extends SelfConfiguredCommandExecutor {

	private final HelloWorldService service;

	@Inject
	public HelloWorldCommand(HelloWorldService service) {
		this.service = service;
	}

	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		service.salute(sender);
		
		return true;
	}
}
public class IocContainerModule extends PluginModule {
	public IocContainerModule(Plugin plugin) {
		super(plugin);
	}

	@Override
	protected void configureBindings() {
		bind(Plugin.class).toInstance(plugin);

		bind(Plugin.class).toInstance(new HelloWorldService(plugin));
	}

	@Override
	protected void configureListeners(Multibinder<Listener> binder) {
	}

	@Override
	protected void configureCommands(Multibinder<CommandConfigurator> binder) {
		binder.addBinding().to(HelloWorldCommand.class);
        }
	

Clone this wiki locally