mirror of
https://github.com/InsanusMokrassar/PlaguBot.git
synced 2024-11-21 15:13:46 +00:00
fill readme + rename fallback state handler
This commit is contained in:
parent
7dad3581f1
commit
6f74e6b4cb
25
README.md
25
README.md
@ -16,3 +16,28 @@ You can create your bot using
|
|||||||
|
|
||||||
That is a set of libraries for plagubots. Look at the
|
That is a set of libraries for plagubots. Look at the
|
||||||
[PlaguBot Plugin template](https://insanusmokrassar.github.io/PlaguBotPluginTemplate/) to find how to create your bot.
|
[PlaguBot Plugin template](https://insanusmokrassar.github.io/PlaguBotPluginTemplate/) to find how to create your bot.
|
||||||
|
|
||||||
|
### Technical help
|
||||||
|
|
||||||
|
In this bot has been used variant with FSM. That means that you may use all the [Behaviour Builder with FSM](https://bookstack.inmo.dev/books/telegrambotapi/page/behaviour-builder-with-fsm) functionality. In case you wish to setup states repo, you should use the next code in the `setupDI` of your plugin:
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
single<StatesManager<State>> {
|
||||||
|
// setup your manager and return here
|
||||||
|
// Default is:
|
||||||
|
DefaultStatesManager(
|
||||||
|
InMemoryDefaultStatesManagerRepo()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Besides, you may setup handling errors lambda in the same function:
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
single<StateHandlingErrorHandler<State>> {
|
||||||
|
{ state, e ->
|
||||||
|
logger.eS(e) { "Unable to handle state $state" } // logging by default
|
||||||
|
null // you should return new state or null, default callback will return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
@ -104,7 +104,7 @@ data class PlaguBot(
|
|||||||
statesManager = koinApp.koin.getOrNull<StatesManager<State>>() ?: DefaultStatesManager(
|
statesManager = koinApp.koin.getOrNull<StatesManager<State>>() ?: DefaultStatesManager(
|
||||||
InMemoryDefaultStatesManagerRepo<State>()
|
InMemoryDefaultStatesManagerRepo<State>()
|
||||||
),
|
),
|
||||||
onStateHandlingErrorHandler = koinApp.koin.getOrNull<FallbackStateHandler<State>>() ?: { state, e ->
|
onStateHandlingErrorHandler = koinApp.koin.getOrNull<StateHandlingErrorHandler<State>>() ?: { state, e ->
|
||||||
logger.eS(e) { "Unable to handle state $state" }
|
logger.eS(e) { "Unable to handle state $state" }
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
package dev.inmo.plagubot.config
|
|
||||||
|
|
||||||
typealias FallbackStateHandler<T> = suspend (T, Throwable) -> T?
|
|
@ -0,0 +1,3 @@
|
|||||||
|
package dev.inmo.plagubot.config
|
||||||
|
|
||||||
|
typealias StateHandlingErrorHandler<T> = suspend (T, Throwable) -> T?
|
Loading…
Reference in New Issue
Block a user