AcManager.Tools.Starters.StarterPlus.Enable C# (CSharp) Method

Enable() public method

public Enable ( ) : void
return void
        public void Enable() {
            if (AcRootDirectory.Instance == null) return;

            Logging.Warning("Patch()");
            if (IsPatched()) return;

            if (AcRootDirectory.Instance.Value == null) {
                Logging.Warning("AC Root directory is missing.");
                return;
            }

            var addon = PluginsManager.Instance.GetById(AddonId);
            if (addon?.IsReady != true) {
                Logging.Warning("Addon is not installed or enabled.");
                return;
            }

            var launcherFilename = LauncherFilename;
            var backupFilename = BackupFilename;

            if (File.Exists(launcherFilename)) {
                try {
                    if (File.Exists(backupFilename)) {
                        File.Delete(backupFilename);
                    }

                    File.Move(launcherFilename, backupFilename);
                } catch (Exception e) {
                    Logging.Warning("Can’t move original file out of the way: " + e);
                    return;
                }
            }

            var sourceFilename = addon.GetFilename("data.pak");

            try {
                using (var archive = ZipFile.OpenRead(sourceFilename)) {
                    archive.GetEntry("AssettoCorsa.exe").ExtractToFile(launcherFilename);
                }
            } catch (Exception e) {
                Logging.Warning("Can’t extract file: " + e);
                Logging.Warning("Rollback!");
                Disable();
                return;
            }

            Logging.Write("Enabled.");
        }