tutorial:mixin_injects
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tutorial:mixin_injects [2020/05/28 18:28] – b0undarybreaker | tutorial:mixin_injects [2022/08/05 19:19] (current) – Added signed to integer types clomclem | ||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Injects allows you to place custom code at a specified position inside an existing method. For a working example, view the [[https:// | + | Injects allows you to place custom code at a specified position inside an existing method. For a working example, view the [[tutorial: |
<code java> | <code java> | ||
- | @Inject(method = "", | + | @Inject(method = "METHOD NAME OR SIGNATURE", at = @At(" |
private void injectMethod(METHOD ARGS, CallbackInfo info) { | private void injectMethod(METHOD ARGS, CallbackInfo info) { | ||
Line 28: | Line 28: | ||
| D | double | double-precision floating-point value | | | D | double | double-precision floating-point value | | ||
| F | float | single-precision floating-point value | | | F | float | single-precision floating-point value | | ||
- | | I | int | integer | | + | | I | int | signed |
- | | J | long | long integer | | + | | J | long | signed |
| L// | | L// | ||
| S | short | signed short | | | S | short | signed short | | ||
| Z | boolean | '' | | Z | boolean | '' | ||
- | | [FieldType | + | | [ | reference | one array dimension | |
- | A method descriptor is comprised of the method name, followed by a set of parentheses containing the input types, followed by the output | + | A method descriptor is comprised of the method name, followed by a set of parentheses containing the parameter |
- | //@Inject// methods always have a void return type. The method name does not matter; using something that describes what the inject does is best. The target method' | + | In the case that the return type is void, you need to use V (Void Descriptor Type) as the type (for example, '' |
+ | |||
+ | Generics' | ||
+ | |||
+ | '' | ||
=== Returning & Cancelling from Inject === | === Returning & Cancelling from Inject === | ||
Line 47: | Line 51: | ||
=== Injecting into Constructors === | === Injecting into Constructors === | ||
- | To inject into a constructor, | + | To inject into a constructor, |
+ | |||
+ | To inject into a static constructor, | ||
===== Practical Example ===== | ===== Practical Example ===== | ||
- | The following example injects a print statement at the top of '' | + | The following example injects a print statement at the top of '' |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
Line 62: | Line 68: | ||
</ | </ | ||
- | For more information on this particular example, view its usage in the [[Fabric Example Mod repo]]. | + | For more information on this particular example, view its usage in the [[https:// |
tutorial/mixin_injects.txt · Last modified: 2022/08/05 19:19 by clomclem