internal void ProcessInternal(Patcher p, Target target) { p.Method = p.FindMethod(target.FullName).ResolveMethodDef(); p.Instructions = p.Method.Body.Instructions; if (target.ILCodes != null && target.ILCodes.Count > 0) { ScriptEngineHelpers.ParseILCodes(p, target); } ScriptEngineHelpers.PatchTarget(p, target); ScriptEngineHelpers.WriteActionToLog(target); }
public override void LoadAndParseScripts() { try { string[] scriptFiles = Directory.GetFiles(Constants.PatchersDir, Constants.ScriptFilePattern, SearchOption.TopDirectoryOnly).Select(Path.GetFullPath).ToArray(); foreach (string file in scriptFiles) { try { var script = JsonConvert.DeserializeObject <PatcherScript>(File.ReadAllText(file), new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, DateFormatString = "dd.MM.yyyy" }); if (ScriptEngineHelpers.ValidateScript(script)) { ScriptEngineHelpers.AddPlaceholders(script); ScriptEngineHelpers.ParsePlaceholders(script); ScriptEngineHelpers.AddTargetFilesText(script); LoadedScripts.Add(script); } } catch (Exception ex) { Logger.Error($"Error while loading the script file -> ({Path.GetFileName(file)})\r\n{(Program.IsDebugModeEnabled ? "\r\n" : string.Empty)}{ex.Message}{(Program.IsDebugModeEnabled ? $"\r\n{ex.StackTrace}" : string.Empty)}"); IsLoadingError = true; FrmMain.Instance.grpReleaseInfo.Enabled = true; } } if (LoadedScripts.Count > 0) { FrmMain.Instance.grpPatcherInfo.Enabled = true; FrmMain.Instance.grpReleaseInfo.Enabled = true; FrmMain.Instance.txtReleaseInfo.Enabled = true; FrmMain.Instance.chkMakeBackup.Enabled = true; FrmMain.Instance.btnPatch.Enabled = true; } } catch { // ignored } }