Add annotation to ignore mixins
This commit is contained in:
parent
0836ac6eef
commit
65ecdd6231
|
|
@ -22,11 +22,13 @@ import javax.tools.Diagnostic;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
|
|
||||||
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
||||||
|
import org.embeddedt.modernfix.annotation.IgnoreMixin;
|
||||||
import org.fury_phoenix.mixinAp.util.TypedAccessorMap;
|
import org.fury_phoenix.mixinAp.util.TypedAccessorMap;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
|
||||||
import static com.google.auto.common.AnnotationMirrors.getAnnotationValue;
|
import static com.google.auto.common.AnnotationMirrors.getAnnotationValue;
|
||||||
import static java.util.AbstractMap.SimpleImmutableEntry;
|
import static java.util.AbstractMap.SimpleImmutableEntry;
|
||||||
|
import static java.util.function.Predicate.not;
|
||||||
|
|
||||||
public class ClientMixinValidator {
|
public class ClientMixinValidator {
|
||||||
|
|
||||||
|
|
@ -80,7 +82,8 @@ public class ClientMixinValidator {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean targetsClient(TypeElement annotatedMixinClass) {
|
public boolean targetsClient(TypeElement annotatedMixinClass) {
|
||||||
return targetsClient(getTargets(annotatedMixinClass));
|
return targetsClient(getTargets(annotatedMixinClass)) &&
|
||||||
|
!isIgnored(annotatedMixinClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean targetsClient(Collection<?> classTargets) {
|
private boolean targetsClient(Collection<?> classTargets) {
|
||||||
|
|
@ -122,6 +125,15 @@ public class ClientMixinValidator {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isIgnored(TypeElement te) {
|
||||||
|
if(te.getAnnotation(IgnoreMixin.class) != null) {
|
||||||
|
messager.printMessage(Diagnostic.Kind.WARNING,
|
||||||
|
toSourceString(te.toString()) + " is ignored!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean warn(Object o) {
|
private boolean warn(Object o) {
|
||||||
messager.printMessage(Diagnostic.Kind.WARNING,
|
messager.printMessage(Diagnostic.Kind.WARNING,
|
||||||
toSourceString(o.toString()) + " can't be loaded, so it is skipped!");
|
toSourceString(o.toString()) + " can't be loaded, so it is skipped!");
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,4 @@ plugins {
|
||||||
id 'java-library'
|
id 'java-library'
|
||||||
}
|
}
|
||||||
|
|
||||||
version = '1.0.0'
|
version = '1.1.0'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.embeddedt.modernfix.annotation;
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
public @interface IgnoreMixin {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
package org.embeddedt.modernfix.forge.mixin.perf.async_locator;
|
package org.embeddedt.modernfix.forge.mixin.perf.async_locator;
|
||||||
|
|
||||||
import net.minecraft.world.entity.projectile.EyeOfEnder;
|
import net.minecraft.world.entity.projectile.EyeOfEnder;
|
||||||
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
import org.embeddedt.modernfix.annotation.IgnoreMixin;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||||
|
|
||||||
@Mixin(EyeOfEnder.class)
|
@Mixin(EyeOfEnder.class)
|
||||||
@ClientOnlyMixin
|
@IgnoreMixin
|
||||||
public interface EyeOfEnderAccess {
|
public interface EyeOfEnderAccess {
|
||||||
@Accessor
|
@Accessor
|
||||||
void setLife(int life);
|
void setLife(int life);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package org.embeddedt.modernfix.forge.mixin.perf.async_locator;
|
package org.embeddedt.modernfix.forge.mixin.perf.async_locator;
|
||||||
|
|
||||||
import net.minecraft.world.entity.projectile.EyeOfEnder;
|
import net.minecraft.world.entity.projectile.EyeOfEnder;
|
||||||
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
import org.embeddedt.modernfix.annotation.IgnoreMixin;
|
||||||
import org.embeddedt.modernfix.forge.structure.logic.EyeOfEnderData;
|
import org.embeddedt.modernfix.forge.structure.logic.EyeOfEnderData;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
|
@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Mixin(EyeOfEnder.class)
|
@Mixin(EyeOfEnder.class)
|
||||||
@ClientOnlyMixin
|
@IgnoreMixin
|
||||||
public class EyeOfEnderMixin implements EyeOfEnderData {
|
public class EyeOfEnderMixin implements EyeOfEnderData {
|
||||||
private boolean locateTaskOngoing = false;
|
private boolean locateTaskOngoing = false;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user