# Package org.spongepowered.asm.mixin.injection.points

Built-in `injection point` classes.

- Class Summary
  Class | Description
  --- | ---
  AfterInvoke | This injection point searches for INVOKEVIRTUAL, INVOKESTATIC and INVOKESPECIAL opcodes matching its arguments and returns a list of insns after the matching instructions, with special handling for methods invocations which return a value and immediately assign it to a local variable.
  BeforeConstant | Special injection point which can be defined by an `Constant` annotation or using the at code `CONSTANT`.
  BeforeFieldAccess | This injection point searches for GETFIELD and PUTFIELD (and static equivalent) opcodes matching its arguments and returns a list of insns immediately prior to matching instructions.
  BeforeFinalReturn | This injection point searches for the last RETURN opcode in the target method and returns it.
  BeforeInvoke | This injection point searches for INVOKEVIRTUAL, INVOKESTATIC and INVOKESPECIAL opcodes matching its arguments and returns a list of insns immediately prior to matching instructions.
  BeforeNew | This injection point searches for NEW opcodes matching its arguments and returns a list of insns immediately prior to matching instructions.
  BeforeReturn | This injection point searches for RETURN opcodes in the target method and returns a list of insns immediately prior to matching instructions.
  BeforeStringInvoke | Like `BeforeInvoke`, this injection point searches for INVOKEVIRTUAL, INVOKESTATIC and INVOKESPECIAL opcodes matching its arguments and returns a list of insns immediately prior to matching instructions.
  ConstructorHead | Like `HEAD`, this injection point can be used to specify the first instruction in a method, but provides special handling for constructors.
  JumpInsnPoint | This injection point searches for JUMP opcodes (if, try/catch, continue, break, conditional assignment, etc.) with either a particular opcode or at a particular ordinal in the method body (eg.
  MethodHead | This injection point simply returns the first instruction in the target method body, allowing the injection to be placed at the "head" of the target method.

- Enum Summary
  Enum | Description
  --- | ---
  BeforeInvoke.SearchType | Member search type, the `PERMISSIVE` search is only used when refmap remapping is enabled.