SKitLs Stateful - SKitLs-dev/SKitLs.Bots.Telegram GitHub Wiki
Status: Released
Allows you to define Stateful Users and split your logic into independent parts, that would be executed only if user's state matches action condition.
Setup
dotnet add package SKitLs.Bots.Telegram.Stateful
Usage
Just use StatefulActionManager instead of Linear one:
// Basic realization
var privateText = new DefaultSignedMessageTextUpdateHandler();
// Default Action Manager
var commandsManager = new DefaultActionManager<SignedMessageTextUpdate>();
// other code...
privateText.CommandsManager = commandsManager;
var privateMessages = new DefaultSignedMessageUpdateHandler();
privateMessages.TextMessageUpdateHandler = privateText;
// Advanced realization
var privateCallbacks = new DefaultCallbackHandler();
// Stateful Action Manager
var statefulCallbacks = new DefaultStatefulManager<SignedCallbackUpdate>();
// other code...
privateCallbacks.CallbackManager = statefulCallbacks;
// Defining
ChatDesigner privates = ChatDesigner.NewDesigner()
.UseMessageHandler(privateMessages)
.UseCallbackHandler(privateCallbacks);