Releases: BepInEx/HarmonyX
Releases · BepInEx/HarmonyX
Release v2.4.1
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
Changelog
- New patch type: ILManipulators (courtesy of @Windows10CE )
- Allows to access to
ILContext
of the patch method to modify the underlyingMethodDefinition
directly - Runs after all other Harmony patches
- Note: This is an advanced patch method. Refer to the wiki for caveats.
- Allows to access to
Release v2.3.2
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 originalMethodBase
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
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
Changelog
- Added new
HarmonyPatch
overload:public HarmonyPatch(string assemblyQualifiedDeclaringType, string methodName, ...)
- Allows to specify target type by its assembly-qualified name
- Updated MonoMod.RuntimeDetour to 20.11.26.2
Release v2.2.0
Changelog
- Merged latest codebase from pardeike/Harmony#e79874b
- Add
AccessTools.CreateInstance<T>()
AccessTools.CreateInstance
can now use non-public parameterless constructorsAccessTools.CreateInstance
also now invokes theConstructorInfo
rather than usingActivator.CreateInstance
; the former should be fasterFieldRef
now supportsF
= underlying integral type for enum field types
- Add
- 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.
- If you define multiple complete
Release v2.1.1
Changelog
- Removed throwing an exception when trying to patch a method that's not directly declared on the type
- Instead emit a warning message with a proper path
Release v2.1.0
Important
This is a major update to HarmonyX that bring feature parity to current Harmony 2 master (2a793bc
).
In practice this means that your compiled binaries might not be compatible with this version. As such, it's recommended to recompile your code from scratch.
Changelog
- Updated codebase to have feature parity with Harmony 2 master (
fd2e702
). This brings in the following changes:- Reverse patchers
HarmonyDelegate
support which allows to inject delegates to private methods into patches
- Added
MethodPatcher
abstract class to allow implementing custom patching backends - Exposed
PatcherManager
andHarmonyManipulator
which allows access to global Harmony state and apply Harmony patches to arbitrary methods - Added
HarmonyInstance.UnpatchSelf
to unpatch all patches of the current instance - Removed
ParameterByRefAttribute
in favour of Harmony's own updatedHarmonyPatch
attribute - Updated MonoMod dependencies to v 20.11.05.01
Release v2.1.0-beta.8
Bump version
Release v2.1.0-beta.7
Bump version