private static void LoadAddons(Dictionary <string, string> files) { foreach (var item in files) { CampaignInfo info = Utils.Campaign.GetCampaignByGuid(item.Value); try { if (info.Enabled) { AddAssembly(Assembly.LoadFrom(item.Key), item.Value); } } catch (Exception e) { if (info?.Enabled == true) { Plugin.Log.Error($"Couldn't load target module assembly \"{item.Key}\" for campaign \"{info.Name}\". The exception has been logged and the campaign has been disabled."); Plugin.Log.Exception(e); info.SetEnabled(false); } } } foreach (var item in Assemblies) { CampaignInfo info = Utils.Campaign.GetCampaignByGuid(item.Value); if (info.Enabled) { LoadAddons(item.Key, item.Value); } } }