Search in sources :

Example 1 with API

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;
}
Also used : DefaultArtifactVersion(net.minecraftforge.fml.common.versioning.DefaultArtifactVersion) API(net.minecraftforge.fml.common.API) VersionRange(net.minecraftforge.fml.common.versioning.VersionRange)

Aggregations

API (net.minecraftforge.fml.common.API)1 DefaultArtifactVersion (net.minecraftforge.fml.common.versioning.DefaultArtifactVersion)1 VersionRange (net.minecraftforge.fml.common.versioning.VersionRange)1