Пример #1
0
        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);
                }
            }
        }