1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-11-08 09:23:47 +00:00
tgbotapi/tgbotapi.behaviour_builder.fsm
2024-08-30 00:51:03 +06:00
..
api changes to calm down compiler 2024-08-02 16:53:59 +06:00
src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder add support of fallback handlers in behaviour builder with fsm 2023-04-17 15:50:04 +06:00
build.gradle small optimization of extensions.gradle 2024-08-30 00:51:03 +06:00
README.md update behaviour builder fsm readme 2021-10-18 20:08:55 +06:00

TelegramBotAPI Behaviour Builder FSM Extensions

Maven Central

What is it?

This extension has been created to integrate finite state machine in BehaviourBuilder. In case you wish to use some custom store for steps (states), you may extend StatesManager or use DefaultStatesManager with custom DefaultStatesManagerRepo. See Examples repo to get more info and see how it works on base level.

Lets see several examples:

data class StateRealization(override val context: ChatId) : State

bot.telegramBotWithBehaviourAndFSMAndStartLongPolling(TOKEN) {
    strictlyOn<StateRealization> {
        // here your logic of state
        it // you must return from state handler some other state as a result of this one or null if you want to complete the chain
    }

    onCommand("start") {
        startChain(StateRealization(it.chat.id)) // starting of chain with StateRealization state
    }
}

Currently, for the states there is only one restriction - your state must implements State interface and override context to define it. It may be important that context will be used under the hood for comparison with contexts of other states in some situations in it may be important to correctly realize equals method.

It is important, that all other methods are the same as for BehaviourBuilder.