Goodbye @Mod, it was lovely knowing you!
This commit is contained in:
parent
3e4f3ff142
commit
d23850ff98
1 changed files with 1 additions and 186 deletions
|
@ -48,29 +48,6 @@ import net.minecraftforge.fml.relauncher.Side;
|
||||||
* represent the mod to other Mods in the system. It will be sent various subclasses of {@link FMLEvent}
|
* represent the mod to other Mods in the system. It will be sent various subclasses of {@link FMLEvent}
|
||||||
* at pre-defined times during the loading of the game, based on where you have applied the {@link EventHandler}
|
* at pre-defined times during the loading of the game, based on where you have applied the {@link EventHandler}
|
||||||
* annotation.
|
* annotation.
|
||||||
*
|
|
||||||
* <p>This is a simple example of a Mod. It has the modId of "mymodid", the name of "My example mod", it is
|
|
||||||
* version 1.0, and depends on FML being loaded.
|
|
||||||
* <pre>{@code
|
|
||||||
* package mymod;
|
|
||||||
* // Declare that this is a mod with modId "mymodid", name "My example mod", version "1.0" and dependency on FML.
|
|
||||||
* {@literal @}Mod(modId="mymodid",name="My example mod",version="1.0",dependencies="required-after:FML")
|
|
||||||
* public class MyMod {
|
|
||||||
* // Populate this field with the instance of the mod created by FML
|
|
||||||
* {@literal @}Instance("mymodid")
|
|
||||||
* public MyMod instance;
|
|
||||||
*
|
|
||||||
* // Mark this method for receiving an {@link FMLEvent} (in this case, it's the {@link FMLPreInitializationEvent})
|
|
||||||
* {@literal @}EventHandler public void preInit(FMLPreInitializationEvent event)
|
|
||||||
* {
|
|
||||||
* // Do stuff in pre-init phase (read config, create blocks and items, register them)
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
* }
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @author cpw
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(ElementType.TYPE)
|
@Target(ElementType.TYPE)
|
||||||
|
@ -85,151 +62,6 @@ public @interface Mod
|
||||||
*/
|
*/
|
||||||
String modid();
|
String modid();
|
||||||
|
|
||||||
/**
|
|
||||||
* A user friendly name for the mod
|
|
||||||
*/
|
|
||||||
String name() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A version string for this mod.
|
|
||||||
*
|
|
||||||
* The version string here should be just numbers separated by dots,
|
|
||||||
* to make specifying {@link #dependencies()} simple for other mods.
|
|
||||||
*
|
|
||||||
* See also: <a href="https://cwiki.apache.org/confluence/display/MAVENOLD/Versioning">"Versioning" on Maven Wiki</a>
|
|
||||||
*/
|
|
||||||
String version() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A dependency string for this mod, which specifies which mod(s) it depends on in order to run.
|
|
||||||
*
|
|
||||||
* A dependency string must start with a combination of these prefixes, separated by "-":
|
|
||||||
* [before, after], [required], [client, server]
|
|
||||||
* At least one "before", "after", or "required" must be specified.
|
|
||||||
* Then ":" and the mod id.
|
|
||||||
* Then a version range should be specified for the mod by adding "@" and the version range.
|
|
||||||
* The version range format is described in the javadoc here:
|
|
||||||
* {@link VersionRange#createFromVersionSpec(java.lang.String)}
|
|
||||||
* Then a ";".
|
|
||||||
*
|
|
||||||
* If a "required" mod is missing, or a mod exists with a version outside the specified range,
|
|
||||||
* the game will not start and an error screen will tell the player which versions are required.
|
|
||||||
*
|
|
||||||
* Example:
|
|
||||||
* Our example mod:
|
|
||||||
* * depends on Forge and uses new features that were introduced in Forge version 14.21.1.2395
|
|
||||||
* "required:forge@[14.21.1.2395,);"
|
|
||||||
*
|
|
||||||
* 1.12.2 Note: for compatibility with Forge older than 14.23.0.2501 the syntax must follow this older format:
|
|
||||||
* "required-after:forge@[14.21.1.2395,);"
|
|
||||||
* For more explanation see https://github.com/MinecraftForge/MinecraftForge/issues/4918
|
|
||||||
*
|
|
||||||
* * is a dedicated addon to mod1 and has to have its event handlers run after mod1's are run,
|
|
||||||
* "required-after:mod1;"
|
|
||||||
* * has optional integration with mod2 which depends on features introduced in mod2 version 4.7.0,
|
|
||||||
* "after:mod2@[4.7.0,);"
|
|
||||||
* * depends on a client-side-only rendering library called rendermod
|
|
||||||
* "required-client:rendermod;"
|
|
||||||
*
|
|
||||||
* The full dependencies string is all of those combined:
|
|
||||||
* "required:forge@[14.21.1.2395,);required-after:mod1;after:mod2@[4.7.0,);required-client:rendermod;"
|
|
||||||
*
|
|
||||||
* This will stop the game and display an error message if any of these is true:
|
|
||||||
* The installed forge is too old,
|
|
||||||
* mod1 is missing,
|
|
||||||
* an old version of mod2 is present,
|
|
||||||
* rendermod is missing on the client.
|
|
||||||
*/
|
|
||||||
String dependencies() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to use the mcmod.info metadata by default for this mod.
|
|
||||||
* If true, settings in the mcmod.info file will override settings in these annotations.
|
|
||||||
*/
|
|
||||||
boolean useMetadata() default false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, this mod will not be loaded on the Dedicated Server environment.
|
|
||||||
* Will crash if both serverSideOnly and clientSideOnly are set to true.
|
|
||||||
*/
|
|
||||||
boolean clientSideOnly() default false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If true, this mod will not be loaded on the Client environment.
|
|
||||||
* Will crash if both serverSideOnly and clientSideOnly are set to true.
|
|
||||||
*/
|
|
||||||
boolean serverSideOnly() default false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The acceptable range of minecraft versions that this mod will load and run in
|
|
||||||
* The default ("empty string") indicates that the currently RUNNING minecraft version is acceptable.
|
|
||||||
* This means ANY version that the end user adds the mod to. Modders PLEASE set this.
|
|
||||||
* FML will refuse to run with an error if the minecraft version is not in this range across all mods.
|
|
||||||
* @return A version range as specified by the maven version range specification or the empty string
|
|
||||||
*/
|
|
||||||
String acceptedMinecraftVersions() default "";
|
|
||||||
/**
|
|
||||||
* A replacement for the no-longer-existing "versionRange" of NetworkMod. Specify a remote version range
|
|
||||||
* that this mod will accept as valid. Defaults to nothing, which is interpreted as "only this version".
|
|
||||||
* Another special value is '*' which means accept all versions.
|
|
||||||
*
|
|
||||||
* This is ignored if there is a {@link NetworkCheckHandler} annotation on a method in this class.
|
|
||||||
*
|
|
||||||
* @return A version range as specified by the maven version range specification or the empty string
|
|
||||||
*/
|
|
||||||
String acceptableRemoteVersions() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A version range specifying compatible save version information. If your mod follows good version numbering
|
|
||||||
* practice <a href="http://semver.org/">Like this (http://semver.org/)</a> then this should be sufficient.
|
|
||||||
*
|
|
||||||
* Advanced users can specify a {@link SaveInspectionHandler} instead.
|
|
||||||
* @return A version range as specified by the maven version range specification or the empty string
|
|
||||||
*/
|
|
||||||
String acceptableSaveVersions() default "";
|
|
||||||
/**
|
|
||||||
* Specifying this field allows for a mod to expect a signed jar with a fingerprint matching this value.
|
|
||||||
* The fingerprint should be SHA-1 encoded, lowercase with ':' removed. An empty value indicates that
|
|
||||||
* the mod is not expecting to be signed.
|
|
||||||
*
|
|
||||||
* Any incorrectness of the fingerprint, be it missing or wrong, will result in the {@link FMLFingerprintViolationEvent}
|
|
||||||
* event firing <i>prior to any other event on the mod</i>.
|
|
||||||
*
|
|
||||||
* @return A certificate fingerprint that is expected for this mod.
|
|
||||||
*/
|
|
||||||
String certificateFingerprint() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The language the mod is authored in. This will be used to control certain compatibility behaviours for this mod.
|
|
||||||
* Valid values are currently "java", "scala"
|
|
||||||
*
|
|
||||||
* @return The language the mod is authored in
|
|
||||||
*/
|
|
||||||
String modLanguage() default "java";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The language adapter to be used to load this mod. This overrides the value of modLanguage. The class must have a
|
|
||||||
* public zero variable constructor and implement {@link ILanguageAdapter} just like the Java and Scala adapters.
|
|
||||||
*
|
|
||||||
* A class with an invalid constructor or that doesn't implement {@link ILanguageAdapter} will throw an exception and
|
|
||||||
* halt loading.
|
|
||||||
*
|
|
||||||
* @return The full class name of the language adapter
|
|
||||||
*/
|
|
||||||
String modLanguageAdapter() default "";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If your mod doesn't have a runtime persistent effect on the state of the game, and can be disabled without side effects
|
|
||||||
* (minimap mods, graphical tweak mods) then you can set true here and receive the FMLDeactivationEvent to perform deactivation
|
|
||||||
* tasks.
|
|
||||||
* This does not affect administrative disabling through the system property fml.modStates or the config file fmlModState.properties.
|
|
||||||
* The mod will only be deactivated outside of a running game world - FML will never allow mod deactivation whilst a game server
|
|
||||||
* is running.
|
|
||||||
*
|
|
||||||
* @return if this mod can be deactivated whilst the game is open.
|
|
||||||
*/
|
|
||||||
boolean canBeDeactivated() default false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An optional GUI factory for this mod. This is the name of a class implementing {@link IModGuiFactory} that will be instantiated
|
* An optional GUI factory for this mod. This is the name of a class implementing {@link IModGuiFactory} that will be instantiated
|
||||||
* on the client side, and will have certain configuration/options guis requested from it.
|
* on the client side, and will have certain configuration/options guis requested from it.
|
||||||
|
@ -238,14 +70,6 @@ public @interface Mod
|
||||||
*/
|
*/
|
||||||
String guiFactory() default "";
|
String guiFactory() default "";
|
||||||
|
|
||||||
/**
|
|
||||||
* An optional URL to a JSON file that will be checked once per launch to determine if there is an updated
|
|
||||||
* version of this mod and notify the end user. For more information see ForgeVersion.
|
|
||||||
* Format is defined here: https://gist.github.com/LexManos/7aacb9aa991330523884
|
|
||||||
* @return URL to update metadata json
|
|
||||||
*/
|
|
||||||
String updateJSON() default "";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list of custom properties for this mod. Completely up to the mod author if/when they
|
* A list of custom properties for this mod. Completely up to the mod author if/when they
|
||||||
* want to put anything in here.
|
* want to put anything in here.
|
||||||
|
@ -312,6 +136,7 @@ public @interface Mod
|
||||||
* @author cpw
|
* @author cpw
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(ElementType.METHOD)
|
@Target(ElementType.METHOD)
|
||||||
@interface EventHandler{}
|
@interface EventHandler{}
|
||||||
|
@ -356,16 +181,6 @@ public @interface Mod
|
||||||
String owner() default "";
|
String owner() default "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Mod instance factory method. Should return an instance of the mod. Applies only to static methods on the same class as {@link Mod}.
|
|
||||||
* @author cpw
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target(ElementType.METHOD)
|
|
||||||
@interface InstanceFactory {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class which will be subscribed to {@link net.minecraftforge.common.MinecraftForge.EVENT_BUS} at mod construction time.
|
* A class which will be subscribed to {@link net.minecraftforge.common.MinecraftForge.EVENT_BUS} at mod construction time.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue