User Tools

Site Tools


tutorial:mixin_injects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
tutorial:mixin_injects [2020/05/28 18:28] b0undarybreakertutorial:mixin_injects [2020/06/15 21:00] – fixed the Fabric Example Mod repo link lvanderzande
Line 33: Line 33:
 | S | short | signed short | | S | short | signed short |
 | Z | boolean | ''true'' or ''false'' | | Z | boolean | ''true'' or ''false'' |
-| [FieldType | reference | one array dimension |+| [ | 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 type. A method defined in Java as ''Object m(int i, double d, Thread t)'' would have the method descriptor ''m(IDLjava/lang/Thread;)Ljava/lang/Object;''.+A method descriptor is comprised of the method name, followed by a set of parentheses containing the input types, followed by the output type. A method defined in Java as ''Object m(int i, double[] d, Thread t)'' would have the method descriptor ''m(I[DLjava/lang/Thread;)Ljava/lang/Object;''.
  
 //@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's arguments are placed first in the method's header, followed by a ''CallbackInfo'' object. If the target method has a return type (T), ''CallbackInfoReturnable<T>'' is used instead of ''CallbackInfo''. //@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's arguments are placed first in the method's header, followed by a ''CallbackInfo'' object. If the target method has a return type (T), ''CallbackInfoReturnable<T>'' is used instead of ''CallbackInfo''.
Line 50: Line 50:
  
 ===== Practical Example ===== ===== Practical Example =====
-The following example injects a print statement at the top of ''TitleScreen#init''.+The following example injects a print statement at the top of ''TitleScreen#init'' (note: the method ''init'' is a normal method and not a constructor).
  
 <code java [enable_line_numbers="false"]> <code java [enable_line_numbers="false"]>
Line 62: Line 62:
 </code> </code>
  
-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://github.com/FabricMC/fabric-example-mod/blob/master/src/main/java/net/fabricmc/example/mixin/ExampleMixin.java|Fabric Example Mod repo]].
tutorial/mixin_injects.txt · Last modified: 2022/08/05 19:19 by clomclem