mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
hotfixes
This commit is contained in:
parent
08147fc33b
commit
bd23d3fbdb
@ -2,6 +2,9 @@
|
||||
|
||||
## 0.38.20
|
||||
|
||||
* `BehaviourBuilder FSM`:
|
||||
* Hotfixes
|
||||
|
||||
## 0.38.19
|
||||
|
||||
* `BehaviourBuilder`:
|
||||
|
@ -28,7 +28,9 @@ interface BehaviourContextWithFSM<T : State> : BehaviourContext, StatesMachine<T
|
||||
handlers: List<BehaviourWithFSMStateHandlerHolder<*, T>>
|
||||
): T? {
|
||||
return handlers.firstOrNull { it.checkHandleable(state) } ?.run {
|
||||
handleState(contextUpdatesFlow, state)
|
||||
doInSubContext(updatesUpstreamFlow = contextUpdatesFlow) {
|
||||
handleState(state)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,20 +34,11 @@ class BehaviourWithFSMStateHandlerHolder<I : O, O : State>(
|
||||
|
||||
/**
|
||||
* Handling of state :)
|
||||
*
|
||||
* @param contextUpdatesFlow This [Flow] will be used as source of updates. By contract, this [Flow] must be common
|
||||
* for all [State]s of incoming [state] [State.context] and for the whole chain inside of [BehaviourContextWithFSM]
|
||||
*/
|
||||
suspend fun BehaviourContextWithFSM<in O>.handleState(
|
||||
contextUpdatesFlow: Flow<Update>,
|
||||
state: O
|
||||
): O? {
|
||||
val subscope = scope.LinkedSupervisorScope()
|
||||
return with(copy(scope = subscope, upstreamUpdatesFlow = contextUpdatesFlow)) {
|
||||
with(delegateTo) {
|
||||
handleState(state as I)
|
||||
}
|
||||
}
|
||||
): O? = with(delegateTo) {
|
||||
handleState(state as I)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user