2021-09-13 17:30:01 +00:00
|
|
|
@file:Suppress("unused")
|
2021-01-07 11:24:58 +00:00
|
|
|
|
2021-09-13 17:30:01 +00:00
|
|
|
package dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling
|
2021-01-07 11:24:58 +00:00
|
|
|
|
2021-01-19 12:50:45 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.*
|
2021-09-13 17:30:01 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.filters.MessageFilterByChat
|
2021-08-03 05:46:23 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
2021-06-26 06:15:52 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByChatMessageMarkerFactory
|
|
|
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
2021-03-11 15:39:34 +00:00
|
|
|
import dev.inmo.tgbotapi.extensions.utils.asBaseSentMessageUpdate
|
|
|
|
import dev.inmo.tgbotapi.extensions.utils.asChatEventMessage
|
2021-01-07 11:24:58 +00:00
|
|
|
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
|
|
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
2021-03-09 14:04:44 +00:00
|
|
|
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
2021-01-07 11:24:58 +00:00
|
|
|
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
2021-09-13 17:30:01 +00:00
|
|
|
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
2021-01-07 11:24:58 +00:00
|
|
|
|
2021-01-07 12:11:01 +00:00
|
|
|
internal suspend inline fun <reified T : ChatEvent> BehaviourContext.onEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
noinline initialFilter: SimpleFilter<ChatEventMessage<T>>? = null,
|
|
|
|
noinline subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<T>, Update>? = MessageFilterByChat,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<T>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
noinline scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<T>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, scenarioReceiver) {
|
|
|
|
(it.asBaseSentMessageUpdate() ?.data ?.asChatEventMessage() ?.takeIf { it.chatEvent is T } as? ChatEventMessage<T>) ?.let(::listOfNotNull)
|
2021-06-26 06:15:52 +00:00
|
|
|
}
|
2021-01-07 11:24:58 +00:00
|
|
|
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onChannelEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<ChannelEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChannelEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChannelEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onChatEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<ChatEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChatEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChatEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-03-09 14:04:44 +00:00
|
|
|
suspend fun BehaviourContext.onVoiceChatEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<VoiceChatEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-03-09 14:04:44 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-03-09 14:04:44 +00:00
|
|
|
suspend fun BehaviourContext.onVoiceChatStartedEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<VoiceChatStarted>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatStarted>, Any> = ByChatMessageMarkerFactory,
|
2021-03-09 14:04:44 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatStarted>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-03-09 14:04:44 +00:00
|
|
|
suspend fun BehaviourContext.onVoiceChatEndedEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<VoiceChatEnded>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatEnded>, Any> = ByChatMessageMarkerFactory,
|
2021-03-09 14:04:44 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatEnded>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-03-09 14:04:44 +00:00
|
|
|
suspend fun BehaviourContext.onVoiceChatParticipantsInvitedEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<VoiceChatParticipantsInvited>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatParticipantsInvited>, Any> = ByChatMessageMarkerFactory,
|
2021-03-09 14:04:44 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatParticipantsInvited>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-03-09 14:04:44 +00:00
|
|
|
suspend fun BehaviourContext.onMessageAutoDeleteTimerChangedEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<MessageAutoDeleteTimerChanged>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<MessageAutoDeleteTimerChanged>, Any> = ByChatMessageMarkerFactory,
|
2021-03-09 14:04:44 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<MessageAutoDeleteTimerChanged>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onCommonEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<CommonEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<CommonEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<CommonEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onGroupEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<GroupEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<GroupEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<GroupEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onSupergroupEvent(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<SupergroupEvent>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<SupergroupEvent>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<SupergroupEvent>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 11:24:58 +00:00
|
|
|
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onChannelChatCreated(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<ChannelChatCreated>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChannelChatCreated>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChannelChatCreated>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onDeleteChatPhoto(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<DeleteChatPhoto>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<DeleteChatPhoto>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<DeleteChatPhoto>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onGroupChatCreated(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<GroupChatCreated>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<GroupChatCreated>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<GroupChatCreated>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onLeftChatMember(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<LeftChatMember>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<LeftChatMember>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<LeftChatMember>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onNewChatMembers(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<NewChatMembers>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatMembers>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatMembers>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onNewChatPhoto(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<NewChatPhoto>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatPhoto>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatPhoto>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onNewChatTitle(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<NewChatTitle>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatTitle>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatTitle>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onPinnedMessage(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<PinnedMessage>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<PinnedMessage>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<PinnedMessage>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onProximityAlertTriggered(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<ProximityAlertTriggered>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ProximityAlertTriggered>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ProximityAlertTriggered>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
2021-01-07 12:11:01 +00:00
|
|
|
suspend fun BehaviourContext.onSupergroupChatCreated(
|
2021-09-13 17:30:01 +00:00
|
|
|
includeFilterByChatInBehaviourSubContext: Boolean,
|
2021-08-03 05:46:23 +00:00
|
|
|
additionalFilter: SimpleFilter<ChatEventMessage<SupergroupChatCreated>>? = null,
|
2021-06-26 06:15:52 +00:00
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<SupergroupChatCreated>, Any> = ByChatMessageMarkerFactory,
|
2021-01-07 12:11:01 +00:00
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<SupergroupChatCreated>>
|
2021-09-13 17:30:01 +00:00
|
|
|
) = onEvent(additionalFilter, if (includeFilterByChatInBehaviourSubContext) MessageFilterByChat else null, markerFactory, scenarioReceiver)
|
|
|
|
|
|
|
|
|
|
|
|
suspend fun BehaviourContext.onChannelEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<ChannelEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<ChannelEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChannelEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChannelEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onChatEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<ChatEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<ChatEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChatEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChatEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onVoiceChatEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<VoiceChatEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<VoiceChatEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onVoiceChatStartedEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<VoiceChatStarted>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<VoiceChatStarted>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatStarted>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatStarted>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onVoiceChatEndedEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<VoiceChatEnded>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<VoiceChatEnded>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatEnded>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatEnded>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onVoiceChatParticipantsInvitedEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<VoiceChatParticipantsInvited>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<VoiceChatParticipantsInvited>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<VoiceChatParticipantsInvited>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<VoiceChatParticipantsInvited>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onMessageAutoDeleteTimerChangedEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<MessageAutoDeleteTimerChanged>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<MessageAutoDeleteTimerChanged>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<MessageAutoDeleteTimerChanged>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<MessageAutoDeleteTimerChanged>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onCommonEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<CommonEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<CommonEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<CommonEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<CommonEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onGroupEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<GroupEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<GroupEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<GroupEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<GroupEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onSupergroupEvent(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<SupergroupEvent>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<SupergroupEvent>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<SupergroupEvent>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<SupergroupEvent>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
|
|
|
|
suspend fun BehaviourContext.onChannelChatCreated(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<ChannelChatCreated>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<ChannelChatCreated>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ChannelChatCreated>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ChannelChatCreated>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onDeleteChatPhoto(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<DeleteChatPhoto>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<DeleteChatPhoto>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<DeleteChatPhoto>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<DeleteChatPhoto>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onGroupChatCreated(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<GroupChatCreated>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<GroupChatCreated>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<GroupChatCreated>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<GroupChatCreated>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onLeftChatMember(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<LeftChatMember>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<LeftChatMember>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<LeftChatMember>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<LeftChatMember>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onNewChatMembers(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<NewChatMembers>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<NewChatMembers>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatMembers>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatMembers>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onNewChatPhoto(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<NewChatPhoto>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<NewChatPhoto>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatPhoto>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatPhoto>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onNewChatTitle(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<NewChatTitle>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<NewChatTitle>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<NewChatTitle>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<NewChatTitle>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onPinnedMessage(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<PinnedMessage>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<PinnedMessage>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<PinnedMessage>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<PinnedMessage>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onProximityAlertTriggered(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<ProximityAlertTriggered>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<ProximityAlertTriggered>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<ProximityAlertTriggered>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<ProximityAlertTriggered>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
|
|
|
suspend fun BehaviourContext.onSupergroupChatCreated(
|
|
|
|
initialFilter: SimpleFilter<ChatEventMessage<SupergroupChatCreated>>? = null,
|
|
|
|
subcontextUpdatesFilter: BehaviourContextAndTwoTypesReceiver<Boolean, ChatEventMessage<SupergroupChatCreated>, Update>? = MessageFilterByChat,
|
|
|
|
markerFactory: MarkerFactory<in ChatEventMessage<SupergroupChatCreated>, Any> = ByChatMessageMarkerFactory,
|
|
|
|
scenarioReceiver: BehaviourContextAndTypeReceiver<Unit, ChatEventMessage<SupergroupChatCreated>>
|
|
|
|
) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|