Exemple #1
0
        public bool Initialize(Assembly moduleAssembly, bool isDynamicLoad)
        {
            var modulesDirectory = Path.Combine(ReadWrite.PATH, "Modules");
            var openModDirPath   = Path.Combine(modulesDirectory, "OpenMod.Unturned");

            if (HasIncompatibleModules(Path.GetFileName(openModDirPath), modulesDirectory))
            {
                return(false);
            }

            m_HarmonyInstance = new Harmony(c_HarmonyInstanceId);
            m_HarmonyInstance.PatchAll(GetType().Assembly);

            InstallNewtonsoftJson(openModDirPath);

            if (!isDynamicLoad)
            {
                SystemDrawingRedirect.Install();
                InstallTlsWorkaround();
                InstallAssemblyResolver();
            }

            // ReSharper disable once AssignNullToNotNullAttribute
            foreach (var file in Directory.GetFiles(openModDirPath))
            {
                if (file.EndsWith(".dll"))
                {
                    LoadAssembly(openModDirPath, file);
                }
            }

            return(true);
        }
Exemple #2
0
 public void Shutdown()
 {
     ServicePointManager.ServerCertificateValidationCallback = m_OldCallBack;
     SystemDrawingRedirect.Uninstall();
     AppDomain.CurrentDomain.AssemblyResolve -= OnAssemblyResolve;
     m_HarmonyInstance?.UnpatchAll(c_HarmonyInstanceId);
 }