Custom Modules
How to create custom Mineplex Studio Modules.
Creating your own custom MineplexModules is almost effortless! Simply create a class that implements the MineplexModule interface, then register it as a MineplexModule when your project starts up using the registerModule(T) method in the MineplexModuleManager. Once your MineplexModule is registered, it is able to function as a Listener, and/or perform any custom behavior you decide to implement, either independently or in concert with other MineplexModules.
MineplexModule Interface
setup() and teardown() Methods
These methods are responsible for creating and configuring any additional resources needed by your custom MineplexModule, and for destroying and cleaning up these resources, respectively. NOTE: You do NOT need to register/unregister your MineplexModule as a Listener in these methods!
Example
Creating a MineplexModule
Let's build a very basic custom module that registers an additional Listener with itself.
@MineplexModuleImplementation(MyCustomModule.class)
public class MyCustomModule implements MineplexModule {
private final JavaPlugin myProjectPlugin;
private MySignListener mySignListener;
public MyCustomModule(final JavaPlugin myProjectPlugin) {
this.myProjectPlugin = myProjectPlugin;
}
@Override
public void setup() {
mySignListener = new MySignListener();
Bukkit.getPluginManager().registerEvents(mySignListener, myProjectPlugin);
}
@Override
public void teardown() {
HandlerList.unregisterAll(mySignListener);
mySignListener = null;
}
}
Registering your MineplexModule
Now that we've created our module, we need to register it from our project class.
public class MyProject extends JavaPlugin {
@Override
public void onEnable() {
MineplexModuleManager.getInstance().registerModule(new MyCustomModule(this));
}
@Override
public void onDisable() {
MineplexModuleManager.getInstance().destroyModule(MyCustomModule.class);
}
}