com.llamalad7.mixinextras.ap.MixinExtrasAP Maven / Gradle / Ivy
package com.llamalad7.mixinextras.ap;
import com.llamalad7.mixinextras.injector.ModifyExpressionValueInjectionInfo;
import com.llamalad7.mixinextras.injector.ModifyReceiverInjectionInfo;
import com.llamalad7.mixinextras.injector.ModifyReturnValueInjectionInfo;
import com.llamalad7.mixinextras.injector.WrapWithConditionInjectionInfo;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperationInjectionInfo;
import org.spongepowered.asm.mixin.injection.struct.InjectionInfo;
import org.spongepowered.asm.util.logging.MessageRouter;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import java.util.Set;
@SupportedAnnotationTypes({})
public class MixinExtrasAP extends AbstractProcessor {
static {
if (setup()) {
registerInjectors();
}
}
private static boolean setup() {
try {
// Use a simple logger until Mixin sets up its own.
MessageRouter.setMessager(new StdoutMessager());
} catch (NoClassDefFoundError e) {
// Mixin AP probably isn't available, e.g. because Loom has excluded it from IDEA.
return false;
}
return true;
}
private static void registerInjectors() {
InjectionInfo.register(ModifyExpressionValueInjectionInfo.class);
InjectionInfo.register(ModifyReceiverInjectionInfo.class);
InjectionInfo.register(ModifyReturnValueInjectionInfo.class);
InjectionInfo.register(WrapOperationInjectionInfo.class);
InjectionInfo.register(WrapWithConditionInjectionInfo.class);
}
@Override
public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
return false;
}
@Override
public SourceVersion getSupportedSourceVersion() {
return SourceVersion.latestSupported();
}
}