diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/common/data/Annotation.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/common/data/Annotation.java
index 6366d807..43598dc9 100644
--- a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/common/data/Annotation.java
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/common/data/Annotation.java
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016, 2018, Player, asie
- * Copyright (c) 2021, FabricMC
+ * Copyright (c) 2016, 2023, FabricMC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -63,4 +63,10 @@ public final class Annotation {
public static final String MIXIN_MERGED = "Lorg/spongepowered/asm/mixin/transformer/meta/MixinMerged;";
public static final String MIXIN_PROXY = "Lorg/spongepowered/asm/mixin/transformer/meta/MixinProxy;";
public static final String MIXIN_RENAMED = "Lorg/spongepowered/asm/mixin/transformer/meta/MixinRenamed;";
+
+ public static final String MIXIN_EXTRAS_MODIFY_EXPRESSION_VALUE = "Lcom/llamalad7/mixinextras/injector/ModifyExpressionValue;";
+ public static final String MIXIN_EXTRAS_MODIFY_RECEIVER = "Lcom/llamalad7/mixinextras/injector/ModifyReceiver;";
+ public static final String MIXIN_EXTRAS_MODIFY_RETURN_VALUE = "Lcom/llamalad7/mixinextras/injector/ModifyReturnValue;";
+ public static final String MIXIN_EXTRAS_WRAP_OPERATION = "Lcom/llamalad7/mixinextras/injector/wrapoperation/WrapOperation;";
+ public static final String MIXIN_EXTRAS_WRAP_WITH_CONDITION = "Lcom/llamalad7/mixinextras/injector/WrapWithCondition;";
}
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/SoftTargetMixinMethodVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/SoftTargetMixinMethodVisitor.java
index dc04f02b..c5fe9151 100644
--- a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/SoftTargetMixinMethodVisitor.java
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/SoftTargetMixinMethodVisitor.java
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2016, 2018, Player, asie
- * Copyright (c) 2021, FabricMC
+ * Copyright (c) 2021, 2023, FabricMC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -34,8 +34,13 @@
import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyArgAnnotationVisitor;
import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyArgsAnnotationVisitor;
import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyConstantAnnotationVisitor;
+import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyExpressionValueAnnotationVisitor;
+import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyReceiverAnnotationVisitor;
+import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyReturnValueAnnotationVisitor;
import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.ModifyVariableAnnotationVisitor;
import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.RedirectAnnotationVisitor;
+import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.WrapOperationAnnotationVisitor;
+import net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection.WrapWithConditionAnnotationVisitor;
class SoftTargetMixinMethodVisitor extends MethodVisitor {
private final CommonData data;
@@ -73,6 +78,16 @@ public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) {
av = new ModifyVariableAnnotationVisitor(data, av, remap, targets);
} else if (Annotation.REDIRECT.equals(descriptor)) {
av = new RedirectAnnotationVisitor(data, av, remap, targets);
+ } else if (Annotation.MIXIN_EXTRAS_MODIFY_EXPRESSION_VALUE.equals(descriptor)) {
+ av = new ModifyExpressionValueAnnotationVisitor(data, av, remap, targets);
+ } else if (Annotation.MIXIN_EXTRAS_MODIFY_RECEIVER.equals(descriptor)) {
+ av = new ModifyReceiverAnnotationVisitor(data, av, remap, targets);
+ } else if (Annotation.MIXIN_EXTRAS_MODIFY_RETURN_VALUE.equals(descriptor)) {
+ av = new ModifyReturnValueAnnotationVisitor(data, av, remap, targets);
+ } else if (Annotation.MIXIN_EXTRAS_WRAP_OPERATION.equals(descriptor)) {
+ av = new WrapOperationAnnotationVisitor(data, av, remap, targets);
+ } else if (Annotation.MIXIN_EXTRAS_WRAP_WITH_CONDITION.equals(descriptor)) {
+ av = new WrapWithConditionAnnotationVisitor(data, av, remap, targets);
}
return av;
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyExpressionValueAnnotationVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyExpressionValueAnnotationVisitor.java
new file mode 100644
index 00000000..51fc4b88
--- /dev/null
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyExpressionValueAnnotationVisitor.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 2018, Player, asie
+ * Copyright (c) 2023, FabricMC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
+
+import java.util.List;
+
+import org.objectweb.asm.AnnotationVisitor;
+
+import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
+import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
+
+public class ModifyExpressionValueAnnotationVisitor extends CommonInjectionAnnotationVisitor {
+ public ModifyExpressionValueAnnotationVisitor(CommonData data, AnnotationVisitor delegate, boolean remap, List targets) {
+ super(Annotation.MIXIN_EXTRAS_MODIFY_EXPRESSION_VALUE, data, delegate, remap, targets);
+ }
+}
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReceiverAnnotationVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReceiverAnnotationVisitor.java
new file mode 100644
index 00000000..39f34aee
--- /dev/null
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReceiverAnnotationVisitor.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 2018, Player, asie
+ * Copyright (c) 2023, FabricMC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
+
+import java.util.List;
+
+import org.objectweb.asm.AnnotationVisitor;
+
+import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
+import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
+
+public class ModifyReceiverAnnotationVisitor extends CommonInjectionAnnotationVisitor {
+ public ModifyReceiverAnnotationVisitor(CommonData data, AnnotationVisitor delegate, boolean remap, List targets) {
+ super(Annotation.MIXIN_EXTRAS_MODIFY_RECEIVER, data, delegate, remap, targets);
+ }
+}
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReturnValueAnnotationVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReturnValueAnnotationVisitor.java
new file mode 100644
index 00000000..3b702230
--- /dev/null
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/ModifyReturnValueAnnotationVisitor.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 2018, Player, asie
+ * Copyright (c) 2023, FabricMC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
+
+import java.util.List;
+
+import org.objectweb.asm.AnnotationVisitor;
+
+import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
+import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
+
+public class ModifyReturnValueAnnotationVisitor extends CommonInjectionAnnotationVisitor {
+ public ModifyReturnValueAnnotationVisitor(CommonData data, AnnotationVisitor delegate, boolean remap, List targets) {
+ super(Annotation.MIXIN_EXTRAS_MODIFY_RETURN_VALUE, data, delegate, remap, targets);
+ }
+}
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapOperationAnnotationVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapOperationAnnotationVisitor.java
new file mode 100644
index 00000000..99a6d03f
--- /dev/null
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapOperationAnnotationVisitor.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 2018, Player, asie
+ * Copyright (c) 2023, FabricMC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
+
+import java.util.List;
+
+import org.objectweb.asm.AnnotationVisitor;
+
+import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
+import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
+
+public class WrapOperationAnnotationVisitor extends CommonInjectionAnnotationVisitor {
+ public WrapOperationAnnotationVisitor(CommonData data, AnnotationVisitor delegate, boolean remap, List targets) {
+ super(Annotation.MIXIN_EXTRAS_WRAP_OPERATION, data, delegate, remap, targets);
+ }
+}
diff --git a/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapWithConditionAnnotationVisitor.java b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapWithConditionAnnotationVisitor.java
new file mode 100644
index 00000000..1653d094
--- /dev/null
+++ b/src/main/java/net/fabricmc/tinyremapper/extension/mixin/soft/annotation/injection/WrapWithConditionAnnotationVisitor.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016, 2018, Player, asie
+ * Copyright (c) 2023, FabricMC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ */
+
+package net.fabricmc.tinyremapper.extension.mixin.soft.annotation.injection;
+
+import java.util.List;
+
+import org.objectweb.asm.AnnotationVisitor;
+
+import net.fabricmc.tinyremapper.extension.mixin.common.data.Annotation;
+import net.fabricmc.tinyremapper.extension.mixin.common.data.CommonData;
+
+public class WrapWithConditionAnnotationVisitor extends CommonInjectionAnnotationVisitor {
+ public WrapWithConditionAnnotationVisitor(CommonData data, AnnotationVisitor delegate, boolean remap, List targets) {
+ super(Annotation.MIXIN_EXTRAS_WRAP_WITH_CONDITION, data, delegate, remap, targets);
+ }
+}