#pragma once #include #include #include namespace chatterino { class Channel; namespace singletons { // // this class managed the custom /commands // class CommandManager { CommandManager() = default; public: static CommandManager &getInstance(); QString execCommand(const QString &text, std::shared_ptr channel, bool dryRun); void loadCommands(); void saveCommands(); void setCommands(const QStringList &commands); QStringList getCommands(); private: struct Command { QString name; QString text; Command() = default; Command(QString text); }; QMap commands; std::mutex mutex; QStringList commandsStringList; QString filePath; QString execCustomCommand(const QStringList &words, const Command &command); }; } // namespace singletons } // namespace chatterino