User Tools

Site Tools


tutorial:mixin_examples

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
tutorial:mixin_examples [2020/09/14 05:06] – created siglongtutorial:mixin_examples [2020/09/14 05:28] – minor improvement siglong
Line 2: Line 2:
 This is a collection of frequently used mixins. This is a collection of frequently used mixins.
  
-===== injecting into the head of a method =====+===== Injecting into the head of a method =====
 Mixin: Mixin:
 <code java> <code java>
Line 21: Line 21:
 </code> </code>
  
-===== injecting into the tail of a method =====+===== Injecting into the tail of a method =====
 Mixin: Mixin:
 <code java> <code java>
Line 42: Line 42:
 </code> </code>
  
-===== injecting into the returns of a method =====+===== Injecting into the returns of a method =====
 Mixin: Mixin:
 <code java> <code java>
Line 64: Line 64:
 </code> </code>
  
-===== injecting into before method call =====+===== Injecting into before method call =====
 Mixin: Mixin:
 <code java> <code java>
Line 84: Line 84:
 </code> </code>
  
-===== injecting into after method call =====+===== Injecting into after method call =====
 Mixin: Mixin:
 <code java> <code java>
Line 296: Line 296:
 @ModifyArgs(method = "foo()V", at = @At(value = "INVOKE", target = "La/b/c/Something;doSomething(IDZ)V")) @ModifyArgs(method = "foo()V", at = @At(value = "INVOKE", target = "La/b/c/Something;doSomething(IDZ)V"))
 private void injected(Args args) { private void injected(Args args) {
-  args.set(0args.<Integer>get(0+ 3); +    int a0 = args.get(0); 
-  args.set(1, args.<Double>get(1* 2.0D); +    double a1 = args.get(1)
-  args.set(2, !args.<Boolean>get(2));+    boolean a2 = args.get(2); 
 +    args.set(0a0 + 3); 
 +    args.set(1, a1 * 2.0D); 
 +    args.set(2, !a2);
 } }
 </code> </code>
tutorial/mixin_examples.txt · Last modified: 2024/01/13 15:02 by arkosammy12