-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
46f40cc
commit f3fe767
Showing
4 changed files
with
126 additions
and
13 deletions.
There are no files selected for viewing
24 changes: 24 additions & 0 deletions
24
src/main/java/xyz/wagyourtail/unimined/jarmodagent/transformer/annotation/DontRemap.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package xyz.wagyourtail.unimined.jarmodagent.transformer.annotation; | ||
|
||
import java.lang.annotation.*; | ||
|
||
/** | ||
* skips the next annotation. or hard target. | ||
*/ | ||
@Retention(RetentionPolicy.CLASS) | ||
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER}) | ||
public @interface DontRemap { | ||
|
||
/** | ||
* if this is present, only skips remapping if matches. | ||
* this is useful if you only want to skip @CTarget, or vis versa. | ||
*/ | ||
Class<? extends Annotation>[] value() default {}; | ||
|
||
/** | ||
* skip remapping until the next @DontRemap (that one doesn't just act as an end, it still does its default behavior) | ||
* @return | ||
*/ | ||
boolean skip() default false; | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
...a/xyz/wagyourtail/unimined/jarmodagent/transformer/refmap/DontRemapAnnotationVisitor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package xyz.wagyourtail.unimined.jarmodagent.transformer.refmap; | ||
|
||
import org.objectweb.asm.AnnotationVisitor; | ||
import org.objectweb.asm.Type; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
public class DontRemapAnnotationVisitor extends AnnotationVisitor { | ||
List<Type> dontRemap = new ArrayList<>(); | ||
boolean skip = false; | ||
|
||
protected DontRemapAnnotationVisitor(int api, AnnotationVisitor parent) { | ||
super(api, parent); | ||
} | ||
|
||
@Override | ||
public void visit(String name, Object value) { | ||
if ("skip".equals(name)) { | ||
skip = (Boolean) value; | ||
} | ||
super.visit(name, value); | ||
} | ||
|
||
@Override | ||
public AnnotationVisitor visitArray(String name) { | ||
if ("dontRemap".equals(name)) { | ||
return new AnnotationVisitor(api, super.visitArray(name)) { | ||
@Override | ||
public void visit(String name, Object value) { | ||
dontRemap.add((Type) value); | ||
super.visit(name, value); | ||
} | ||
}; | ||
} | ||
return super.visitArray(name); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters