meta.libs

Here are the examples of the java api meta.libs taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

17 Source : FabricJarSource.java
with MIT License
from comp500

@Override
public MetadataResolutionResult resolve(MetadataCacheHelper.MetadataCacheView cacheView, ResolutionContext ctx) throws IOException {
    String gameVersion = ctx.getLoadingVersion();
    Side side = ctx.getLoadingSide();
    FabricMetadata meta;
    meta = cacheView.getObject("fabric.json", FabricMetadata.clreplaced, () -> {
        try {
            JsonObject latestLoaderData;
            if (ctx.getConfigFile().pinFabricLoaderVersion != null) {
                URL loaderJsonUrl = new URI("https", "meta.fabricmc.net", "/v2/versions/loader/" + gameVersion + "/" + ctx.getConfigFile().pinFabricLoaderVersion, null).toURL();
                latestLoaderData = RequestUtils.getJson(loaderJsonUrl).getAsJsonObject();
            } else {
                URL loaderJsonUrl = new URI("https", "meta.fabricmc.net", "/v2/versions/loader/" + gameVersion, null).toURL();
                JsonArray manifestData = RequestUtils.getJson(loaderJsonUrl).getAsJsonArray();
                if (manifestData.size() == 0) {
                    throw new IOException("Failed to update configuration: no Fabric versions available!");
                }
                latestLoaderData = manifestData.get(0).getAsJsonObject();
            }
            if (ctx.getConfigFile().pinFabricLoaderVersion == null) {
                ctx.getConfigFile().pinFabricLoaderVersion = latestLoaderData.getAsJsonObject("loader").get("version").getreplacedtring();
                ctx.getConfigFile().save();
            }
            JsonObject launcherMeta = latestLoaderData.getAsJsonObject("launcherMeta");
            JsonObject mainClreplaced = launcherMeta.getAsJsonObject("mainClreplaced");
            FabricMetadata newMetadata = new FabricMetadata(mainClreplaced.get(side.name).getreplacedtring());
            String loaderMaven = latestLoaderData.getAsJsonObject("loader").get("maven").getreplacedtring();
            URL loaderMavenUrl = RequestUtils.resolveMavenPath(FABRIC_MAVEN, loaderMaven).toURL();
            newMetadata.libs.add(new FabricLibraryJar(loaderMaven, loaderMavenUrl, RequestUtils.getSha1Hash(loaderMavenUrl)));
            String intermediaryMaven = latestLoaderData.getAsJsonObject("intermediary").get("maven").getreplacedtring();
            URL intermediaryMavenUrl = RequestUtils.resolveMavenPath(FABRIC_MAVEN, intermediaryMaven).toURL();
            newMetadata.libs.add(new FabricLibraryJar(intermediaryMaven, intermediaryMavenUrl, RequestUtils.getSha1Hash(intermediaryMavenUrl)));
            JsonObject libraries = launcherMeta.getAsJsonObject("libraries");
            for (JsonElement library : libraries.getAsJsonArray("common")) {
                JsonObject libraryObj = library.getAsJsonObject();
                URL libUrl = RequestUtils.resolveMavenPath(new URI(libraryObj.get("url").getreplacedtring()), libraryObj.get("name").getreplacedtring()).toURL();
                newMetadata.libs.add(new FabricLibraryJar(libraryObj.get("name").getreplacedtring(), libUrl, RequestUtils.getSha1Hash(libUrl)));
            }
            for (JsonElement library : libraries.getAsJsonArray(side.name)) {
                JsonObject libraryObj = library.getAsJsonObject();
                // Special-case guava on server ("jimfs in fabric-server-launch requires guava on the system clreplacedloader")
                // We already work around this behaviour, and we can't get it on the system clreplacedloader directly anyway
                if (side == Side.SERVER && libraryObj.get("name").getreplacedtring().contains("com.google.guava:guava")) {
                    continue;
                }
                URL libUrl = RequestUtils.resolveMavenPath(new URI(libraryObj.get("url").getreplacedtring()), libraryObj.get("name").getreplacedtring()).toURL();
                newMetadata.libs.add(new FabricLibraryJar(libraryObj.get("name").getreplacedtring(), libUrl, RequestUtils.getSha1Hash(libUrl)));
            }
            return newMetadata;
        } catch (URISyntaxException e) {
            throw new IOException("Failed to parse Fabric source URL", e);
        }
    });
    cacheView.completeUpdate();
    List<ResolvableJar> jars = new ArrayList<>();
    for (FabricLibraryJar libraryJar : meta.libs) {
        jars.add(new ResolvableJar(libraryJar.source, ctx.getEnvironment().jarStorage.getLibraryMaven(libraryJar.mavenPath), SHA1HashingInputStream.verifier(libraryJar.hash, libraryJar.source.toString()), "Fabric library " + libraryJar.source));
    }
    return new MetadataResolutionResult(jars, meta.mainClreplaced);
}

5 Source : MinecraftJarSource.java
with MIT License
from comp500

@Override
public MetadataResolutionResult resolve(MetadataCacheHelper.MetadataCacheView cacheView, ResolutionContext ctx) throws IOException {
    String gameVersion = ctx.getLoadingVersion();
    Side side = ctx.getLoadingSide();
    MinecraftMetadata meta = cacheView.getObject("minecraft.json", MinecraftMetadata.clreplaced, () -> {
        URL versionMetaUrl = retrieveVersionMetaUrl(gameVersion);
        JsonObject manifestData = RequestUtils.getJson(versionMetaUrl).getAsJsonObject();
        JsonObject downloads = manifestData.getAsJsonObject("downloads");
        JsonObject download = downloads.getAsJsonObject(side.name);
        MinecraftGameJar jar = new MinecraftGameJar(gameVersion, new URL(download.get("url").getreplacedtring()), download.get("sha1").getreplacedtring(), side);
        Gson gson = new Gson();
        String currentOS = ctx.getEnvironment().os;
        MinecraftMetadata newMetadata = new MinecraftMetadata(jar, manifestData.get("mainClreplaced").getreplacedtring());
        for (JsonElement lib : manifestData.getAsJsonArray("libraries")) {
            JsonObject libObj = lib.getAsJsonObject();
            JsonElement rulesEl = libObj.get("rules");
            if (rulesEl != null) {
                Type rulesListType = new TypeToken<ArrayList<Rule>>() {
                }.getType();
                List<Rule> rules = gson.fromJson(rulesEl, rulesListType);
                Collections.reverse(rules);
                boolean isAllowed = false;
                for (Rule rule : rules) {
                    if (rule.os != null) {
                        if (!currentOS.equals(rule.os.name)) {
                            continue;
                        }
                    }
                    if (rule.action.equals("disallow")) {
                        break;
                    }
                    if (rule.action.equals("allow")) {
                        isAllowed = true;
                        break;
                    }
                }
                if (!isAllowed) {
                    continue;
                }
            }
            JsonObject downloadsObj = libObj.getAsJsonObject("downloads");
            JsonObject nativesObj = libObj.getAsJsonObject("natives");
            if (nativesObj != null && nativesObj.size() > 0) {
                // TODO: should natives be ignored anyway? - we don't/can't handle them properly (see wiki)
                if (nativesObj.has(currentOS)) {
                    String nativesClreplacedifier = nativesObj.get(currentOS).getreplacedtring();
                    JsonObject nativesDownloadObj = downloadsObj.getAsJsonObject("clreplacedifiers").getAsJsonObject(nativesClreplacedifier);
                    if (nativesDownloadObj == null) {
                        throw new RuntimeException("No natives available in " + downloadsObj + " clreplacedifier " + nativesClreplacedifier);
                    }
                    newMetadata.libs.add(new MinecraftLibraryJar(libObj.get("name").getreplacedtring() + ":" + nativesClreplacedifier, new URL(nativesDownloadObj.get("url").getreplacedtring()), nativesDownloadObj.get("sha1").getreplacedtring()));
                }
                continue;
            }
            JsonObject artifactObj = downloadsObj.getAsJsonObject("artifact");
            newMetadata.libs.add(new MinecraftLibraryJar(libObj.get("name").getreplacedtring(), new URL(artifactObj.get("url").getreplacedtring()), artifactObj.get("sha1").getreplacedtring()));
        }
        return newMetadata;
    });
    cacheView.completeUpdate();
    List<ResolvableJar> jars = new ArrayList<>();
    jars.add(new ResolvableJar(meta.gameJar.source, ctx.getEnvironment().jarStorage.getGameJar(meta.gameJar.version, meta.gameJar.side), SHA1HashingInputStream.verifier(meta.gameJar.hash, meta.gameJar.source.toString()), "Minecraft " + side + " " + gameVersion));
    // The server JAR bundles all it's dependencies
    if (side == Side.CLIENT) {
        for (MinecraftLibraryJar libraryJar : meta.libs) {
            jars.add(new ResolvableJar(libraryJar.source, ctx.getEnvironment().jarStorage.getLibraryMaven(libraryJar.mavenPath), SHA1HashingInputStream.verifier(libraryJar.hash, libraryJar.source.toString()), "Minecraft library " + libraryJar.mavenPath));
        }
    }
    if (side == Side.SERVER) {
        return new MetadataResolutionResult(jars, "net.minecraft.server.Main");
    } else {
        return new MetadataResolutionResult(jars, meta.mainClreplacedClient);
    }
}