#ifndef BOTTASK_H #define BOTTASK_H #include #include #include "ExecutableTask.h" #include "isxeq2/LSObject.h" class BotTask final : public ExecutableTask, public std::enable_shared_from_this { public: static std::shared_ptr Instance(); ~BotTask() override; void Execute() override; void Close(); void ToggleBot(); void ToggleSettings(); [[nodiscard]] TaskTypeEnum TaskType() const override; private: BotTask(); static std::weak_ptr instance; const std::string ScriptName = "MRBot"; const std::string OnClosedEventName = "MRBot_OnCloseButtonClicked"; const std::string ToggleBotEventName = "MRBot_OnToggleBotButtonClicked"; const std::string ToggleSettingsEventName = "MRBot_OnSettingsButtonClicked"; std::shared_ptr botController; std::shared_ptr settingsController; u_int onCloseButtonClickedEventId = 0; u_int onToggleBotButtonClickedEventId = 0; u_int onToggleSettingsButtonClickedEventId = 0; bool isBotRunning = false; static void __cdecl OnCloseEventHandler(int argc, char *argv[], PLSOBJECT plsObject); static void __cdecl OnToggleBotEventHandler(int argc, char *argv[], PLSOBJECT plsObject); static void __cdecl OnToggleSettingsEventHandler(int argc, char *argv[], PLSOBJECT plsObject); }; #endif //BOTTASK_H