SliderPlugin.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Mono.Cecil;
  7. using Mono.Cecil.Cil;
  8. namespace BepInEx.Patcher.Internal
  9. {
  10. public class SliderPlugin : IPatchPlugin
  11. {
  12. public void Patch(AssemblyDefinition assembly)
  13. {
  14. TypeDefinition customBase = assembly.MainModule.Types.First(x => x.Name == "CustomBase");
  15. var methods = customBase.Methods;
  16. var convertTextFromRate = methods.First(x => x.Name == "ConvertTextFromRate");
  17. var IL = convertTextFromRate.Body.GetILProcessor();
  18. IL.Replace(convertTextFromRate.Body.Instructions[0], IL.Create(OpCodes.Ldc_I4, -0));
  19. IL.Replace(convertTextFromRate.Body.Instructions[2], IL.Create(OpCodes.Ldc_I4, 200));
  20. var convertRateFromText = methods.First(x => x.Name == "ConvertRateFromText");
  21. IL = convertRateFromText.Body.GetILProcessor();
  22. IL.Replace(convertRateFromText.Body.Instructions[11], IL.Create(OpCodes.Ldc_I4, -0));
  23. IL.Replace(convertRateFromText.Body.Instructions[13], IL.Create(OpCodes.Ldc_I4, 200));
  24. }
  25. }
  26. }