Skip to content

Releases: BepInEx/HarmonyX

Release v2.5.2

23 Jul 18:35

Choose a tag to compare

Changelog

  • Fixed reverse patchers sometimes emitting extra rets which can break IL

Release v2.5.1

16 Jul 13:33

Choose a tag to compare

Changelog

  • Updated MonoMod.RuntimeDetour to v21.07.08.03

Release v2.5.0

09 Jul 08:47

Choose a tag to compare

Changelog

  • Add CoderMatcher.ThrowIf helper
    • Allows to assert that code is matched properly and log
  • Allow multitargeting patches to work with class patch notation, see #27
  • Fix multitargeting patching not working if both complete and incomplete attributes are used
  • Failed Harmony patch method generation now always throws an exception except of just emitting error logs

Release v2.4.2

25 Apr 17:31

Choose a tag to compare

Changelog

  • Merge upstream up to 45a4a64
    • Properly fix deep copy ReadWriteLock not working on net35
    • Fix merging on HarmonyPriority attribute
  • Update MonoMod to 21.04.21.03
  • Fixed PackageProjectUrl to point to this repo (#24)

Release v2.4.1

11 Apr 08:49

Choose a tag to compare

Changelog

  • Added logging to reverse patching
  • Fixed HarmonyDebug attribute to work properly
    • Allows you to automatically enable all debug logs for a particular patch without having to modify log levels

Release v2.4.0

10 Mar 18:39

Choose a tag to compare

Changelog

  • New patch type: ILManipulators (courtesy of @Windows10CE )
    • Allows to access to ILContext of the patch method to modify the underlying MethodDefinition directly
    • Runs after all other Harmony patches
    • Note: This is an advanced patch method. Refer to the wiki for caveats.

Release v2.3.2

22 Feb 20:35

Choose a tag to compare

Changelog

  • Updated MonoMod to 21.1.11.1
  • Merge upstream up to 6d51b3b
    • Fixed invalid hook invocation when boxing struct by reference
    • Added Harmony.GetOriginalMethod(MethodInfo) that allow to look up original MethodBase for the given patch method
  • Fixed __runOriginal being undefined in postfixes if no prefixes were called
  • Properly resolve nested functions in method descriptions
  • Improve pretty-printing of method and type description with TypeNameHelper

Release v2.3.1

23 Dec 19:56

Choose a tag to compare

Changelog

  • Merge latest changes from upstream up to 70d4652
    • Enhanced conversion between value types and reference types
  • Fix new HarmonyPatch(string, string) attribute not being usable in attributes

Release v2.3.0

19 Dec 10:58

Choose a tag to compare

Changelog

  • Added new HarmonyPatch overload: public HarmonyPatch(string assemblyQualifiedDeclaringType, string methodName, ...)
  • Updated MonoMod.RuntimeDetour to 20.11.26.2

Release v2.2.0

17 Nov 17:14

Choose a tag to compare

Changelog

  • Merged latest codebase from pardeike/Harmony#e79874b
    • Add AccessTools.CreateInstance<T>()
    • AccessTools.CreateInstance can now use non-public parameterless constructors
    • AccessTools.CreateInstance also now invokes the ConstructorInfo rather than using Activator.CreateInstance; the former should be faster
    • FieldRef now supports F = underlying integral type for enum field types
  • Added support for multitargeted patch methods
    • If you define multiple complete HarmonyPatch attributes on a method, they will be applied separately. This way you can specify multiple patch targets on the same method
    • HarmonyPatch attribute is considered complete when it defines both target type and target method.