From 574fc0c82ddec469a6f549a0e1ab0e5d2af92ac6 Mon Sep 17 00:00:00 2001 From: Jackson Wood Date: Wed, 10 Jun 2020 15:59:15 +1000 Subject: [PATCH] Implemented processing of MOD_DELETED events for pollInstalledModsEvents --- src/ModioUtility.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ModioUtility.cpp b/src/ModioUtility.cpp index fbc11c0a..f29225d3 100644 --- a/src/ModioUtility.cpp +++ b/src/ModioUtility.cpp @@ -227,6 +227,7 @@ static void onGetAllEventsPoll(void *object, ModioResponse response, ModioModEve std::vector mod_edited_ids; std::vector mod_to_download_queue_ids; + std::vector mod_deleted_ids; if(events_array_size > 0) modio::clearCache(); for (size_t i = 0; i < events_array_size; i++) @@ -316,11 +317,22 @@ static void onGetAllEventsPoll(void *object, ModioResponse response, ModioModEve mod_edited_ids.push_back(events_array[i].mod_id); break; } + case MODIO_EVENT_MOD_DELETED: + { + modio::writeLogLine("Mod deleted. Mod id: " + modio::toString(events_array[i].mod_id) + " Uninstalling...", MODIO_DEBUGLEVEL_LOG); + mod_deleted_ids.push_back(events_array[i].mod_id); + } } } /* TODO: Re-enable mod profile update? */ //if (mod_edited_ids.size() > 0) // updateModsCache(mod_edited_ids); + size_t deleted_mod_count = mod_deleted_ids.size(); + for (size_t i = 0; i < deleted_mod_count; ++i) + { + modioUninstallMod(mod_deleted_ids[i]); + } + if (mod_to_download_queue_ids.size() > 0) addModsToDownloadQueue(mod_to_download_queue_ids);