onVoiceChatEvent

suspend fun <BC : BehaviourContext> BC.onVoiceChatEvent(initialFilter: SimpleFilter<ChatEventMessage<VoiceChatEvent>>? = null, subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<VoiceChatEvent>, Update>? = MessageFilterByChat, markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatEvent>, Any> = ByChatMessageMarkerFactory, scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<VoiceChatEvent>>): Job

Parameters

initialFilter

This filter will be called to remove unnecessary data BEFORE scenarioReceiver call

subcontextUpdatesFilter

This filter will be applied to each update inside of scenarioReceiver. For example, this filter will be used if you will call dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage. Use dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver function to create your own. Use dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus or dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times to combinate several filters

markerFactory

Will be used to identify different "stream". scenarioReceiver will be called synchronously in one "stream". Output of markerFactory will be used as a key for "stream"

scenarioReceiver

Main callback which will be used to handle incoming data if initialFilter will pass that data