Economy Modules¶
SimpleEconomy can load external modules via EconomyModule and a dedicated loader. Each module must:
- Include
module.ymlat the JAR root. - Provide a class implementing
EconomyModule. - Be placed in
plugins/SimpleEconomy/modules/.
module.yml¶
name: "MyModule"
main: "com.example.mymodule.MyModule"
Warning
If module.yml is missing or incomplete, the module is rejected.
Lifecycle¶
flowchart TD
Load --> onEnable
onEnable --> Running
Running --> onDisable
onEnable(core, moduleFolder)¶
coreis the main plugin instance.moduleFolderis the module data folder.
onDisable()¶
- Close resources and unregister listeners.
Full Example (Java)¶
package com.example.mymodule;
import it.alzy.simpleeconomy.api.EconomyModule;
import it.alzy.simpleeconomy.api.SimpleEconomyAPI;
import it.alzy.simpleeconomy.api.EconomyProvider;
import java.io.File;
public class MyModule implements EconomyModule {
private EconomyProvider provider;
@Override
public void onEnable(Object core, File moduleFolder) {
// Resolve the provider when the module starts
this.provider = SimpleEconomyAPI.getProvider();
// Ensure the data folder exists
if (!moduleFolder.exists()) {
moduleFolder.mkdirs();
}
}
@Override
public void onDisable() {
// Release resources (tasks, files, connections)
}
@Override
public String getName() {
return "MyModule";
}
}
Note
Never call Bukkit API from async callbacks. Switch to the main thread first.