EventActivator can be used in JAICF project to handle some events generated by channels that are not a result of user’s speech or text request.

Some channels generate such events in cases like launching a voice skill (Alexa’s “LAUNCH” event), audio player events (“PLAY”, “STOP” and etc.) and some others.

How to use

All you need to use event activator in your JAICF project is to add event activators to the scenarios and then append BaseEventActivator to the BotEngine’s array of activators.

event activator

state("next") {
    activators {
        event(AlexaEvent.NEXT)
        intent(AlexaIntent.NEXT)
    }

    action {
        ...
    }   
}

state("pause") {
    activators {
        event(AlexaEvent.PAUSE)
        intent(AlexaIntent.PAUSE)
    }

    action {
        ...
    }
}

Learn more about activators here.

EventActivator configuration

Event activator is built-in into every BotEngine by default and doesn’t require any additional configuration.

val helloWorldBot = BotEngine(
    model = HelloWorldScenario.model,
    activators = arrayOf(
        AlexaActivator
    )
)

Event name

Once a EventActivator activates some state, a EventActivatorContext instance becomes available through an activator.evebt variable in the action block of this state. This object contains the name of the event that activated this state.