-
Notifications
You must be signed in to change notification settings - Fork 0
Extending
DarkBladeDev edited this page Feb 21, 2026
·
2 revisions
CEE expone interfaces en com.darkbladedev.cee.api para extender el motor desde otro plugin.
Desde CustomEventEngine:
registerAction(id, factory)registerCondition(id, factory)registerTrigger(id, factory)registerScope(id, factory)registerChunkStrategy(id, strategy)
Ver: API Reference
public final class MyAction implements Action {
@Override
public void execute(EventContext context) {
context.getWorld().strikeLightning(context.getWorld().getSpawnLocation());
}
}Registro (en onEnable de tu plugin, suponiendo que obtienes el engine):
engine.registerAction("my_action", config -> new MyAction());public final class MyCondition implements Condition {
@Override
public boolean evaluate(EventContext context) {
return context.getServer().getOnlinePlayers().size() >= 10;
}
}Registro:
engine.registerCondition("my_condition", config -> new MyCondition());Un trigger debe implementar Trigger y llamar al callback del motor con un TriggerContext.
- Si entregas
location, el evento se ejecuta en el chunk de esa ubicación. - Si no entregas
location, debes al menos entregarworldpara que el motor pueda resolvertarget.
Un scope devuelve un conjunto de chunks a ocupar partiendo del chunk origen.
La estrategia se usa cuando el trigger no entrega location.
- Entrada:
WorldyTriggerContext. - Retorno:
Optional<ChunkPos>.
La forma exacta de obtener una instancia de CustomEventEngine depende de cómo expongas el plugin en tu servidor.
- En el estado actual del código,
EventEngineimplementaCustomEventEngine. - Esta wiki asume que el plugin podría exponer una instancia vía
JavaPlugin(por ejemplo con un getter) o registrarla como servicio Bukkit.
Si necesitas formalizar esto (Service API), se recomienda registrar el engine en ServicesManager.
CustomEventEngine • Paper/Spigot API 1.20+ • Java 21