use of net.minecraftforge.fml.common.API in project ForestryMC by ForestryMC.
the class ModUtil method isAPILoaded.
/**
* Checks to see if an API within a specific version range is loaded.
*
* @param apiName the package name of the package-info.java file to check. (for example "cofh.api.energy")
* @param versionRangeString the version range, as defined in {@link VersionParser}.
*/
public static boolean isAPILoaded(String apiName, @Nullable String versionRangeString) {
Package apiPackage = Package.getPackage(apiName);
if (apiPackage == null) {
return false;
}
API apiAnnotation = apiPackage.getAnnotation(API.class);
if (apiAnnotation == null) {
return false;
}
if (versionRangeString != null) {
String apiVersionString = apiAnnotation.apiVersion();
if (apiVersionString == null) {
return false;
}
VersionRange versionRange = VersionParser.parseRange(versionRangeString);
DefaultArtifactVersion givenVersion = new DefaultArtifactVersion(apiName, apiVersionString);
DefaultArtifactVersion requiredVersion = new DefaultArtifactVersion(apiName, versionRange);
if (!requiredVersion.containsVersion(givenVersion)) {
return false;
}
}
return true;
}
Aggregations