package matteroverdrive.compat;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation used to mark a class that is an inter-mod compatibility module.
*
* @author shadowfacts
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Compat
{
/**
* The mod id that this compat module is for.
*/
String value();
/**
* Used to mark a method of a compatibility module to be run in the pre-initialization phase.
* Any method marked with this annotation must have 1 argument, a {@link cpw.mods.fml.common.event.FMLPreInitializationEvent}.
* Any method marked with this annotation must be static.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface PreInit {}
/**
* Used to mark a method of a compatibility module to be run in the initialization phase.
* Any method marked with this annotation must have 1 argument, a {@link cpw.mods.fml.common.event.FMLInitializationEvent}.
* Any method marked with this annotation must be static.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface Init {}
/**
* Used to mark a method of a compatibility module to be run in the post-initialization phase.
* Any method marked with this annotation must have 1 argument, a {@link cpw.mods.fml.common.event.FMLPostInitializationEvent}.
* Any method marked with this annotation must be static.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface PostInit {}
}