diff --git a/src/MaaCore/Task/Interface/CustomTask.cpp b/src/MaaCore/Task/Interface/CustomTask.cpp index 9957aeffc2..106a7a8a0b 100644 --- a/src/MaaCore/Task/Interface/CustomTask.cpp +++ b/src/MaaCore/Task/Interface/CustomTask.cpp @@ -1,12 +1,15 @@ #include "CustomTask.h" +#include "Task/Miscellaneous/ScreenshotTaskPlugin.h" #include "Task/ProcessTask.h" #include "Utils/Logger.hpp" asst::CustomTask::CustomTask(const AsstCallback& callback, Assistant* inst) : - InterfaceTask(callback, inst, TaskType) + InterfaceTask(callback, inst, TaskType), + m_custom_task_ptr(std::make_shared(callback, inst, TaskType)) { LogTraceFunction; + m_custom_task_ptr->register_plugin(); } bool asst::CustomTask::set_params(const json::value& params) @@ -27,8 +30,7 @@ bool asst::CustomTask::set_params(const json::value& params) } tasks.emplace_back(t.as_string()); } - auto custom_task_ptr = std::make_shared(m_callback, m_inst, TaskType); - custom_task_ptr->set_tasks(std::move(tasks)); - m_subtasks.emplace_back(std::move(custom_task_ptr)); + m_custom_task_ptr->set_tasks(std::move(tasks)); + m_subtasks.emplace_back(m_custom_task_ptr); return true; } diff --git a/src/MaaCore/Task/Interface/CustomTask.h b/src/MaaCore/Task/Interface/CustomTask.h index f9fb376f3b..7689b13e48 100644 --- a/src/MaaCore/Task/Interface/CustomTask.h +++ b/src/MaaCore/Task/Interface/CustomTask.h @@ -13,5 +13,8 @@ public: CustomTask(const AsstCallback& callback, Assistant* inst); virtual ~CustomTask() override = default; virtual bool set_params(const json::value& params) override; + +private: + std::shared_ptr m_custom_task_ptr = nullptr; }; }