#pragma once #include "BaseInstanceProvider.h" #include class QFileSystemWatcher; struct MULTIMC_LOGIC_EXPORT FTBRecord { QString dirName; QString name; QString logo; QString iconKey; QString mcVersion; QString description; QString instanceDir; QString templateDir; bool operator==(const FTBRecord other) const { return instanceDir == other.instanceDir; } }; class MULTIMC_LOGIC_EXPORT FTBInstanceProvider : public BaseInstanceProvider { Q_OBJECT public: FTBInstanceProvider (SettingsObjectPtr settings); public: QList discoverInstances() override; InstancePtr loadInstance(const InstanceId& id) override; void loadGroupList() override {}; void saveGroupList() override {}; private: /* methods */ void discoverFTBEntries(); InstancePtr createInstance(const FTBRecord & record) const; InstancePtr loadInstance(const FTBRecord & record) const; private: QMap m_records; };