BepInEx / HarmonyX

Harmony built on top of MonoMod.RuntimeDetours with additional features
MIT License
329 stars 42 forks source link

Empty Harmony Annotations Cause ArguementException: No Target Method Found #95

Open RobbinBob opened 6 months ago

RobbinBob commented 6 months ago

Ran into an issue where defining a class and then using the [HarmonyPatch] attribute on that class, to mark the class or contents as a patch, then completing the attributes on the individual methods. Doing it this way causes it to throw an ArguementException error as the empty HarmonyPatch attribute is not treated as a flag and instead causes it to fail.

Incomplete code example showing a class with that attribute workflow:

[HarmonyPatch] // Seems to error here
internal static class PatchContainer
{
  [HarmonyPrefix]
  [HarmonyPatch(typeof(Type...), nameof(Method...))]
  private static bool SomeMethod_Prefix()...

This workflow should be fine as HarmonyX wiki specifies it replicates the same system Harmony uses, even pointing to documentation showcasing this workflow

ManlyMarco commented 6 months ago

How are you patching? Does the exact same code run fine under normal Harmony?

RobbinBob commented 6 months ago

Using .PatchAll

Yes it works fine on regular harmony