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
17
Source : FabricJarSource.java
with MIT License
from comp500
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
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);
}
}