diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java index dabd8db54..58554e6dd 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/DefaultDependencyManager.java @@ -102,19 +102,27 @@ public class DefaultDependencyManager extends AbstractDependencyManager { if (!gameVersion.isPresent()) return null; LibraryAnalyzer analyzer = LibraryAnalyzer.analyze(version.resolvePreservingPatches(getGameRepository())); - version.resolve(getGameRepository()).getLibraries().stream().filter(Library::appliesToCurrentEnvironment).forEach(library -> { - Optional libraryVersion = analyzer.getVersion(OPTIFINE); - if (OPTIFINE.matchLibrary(library) && libraryVersion.isPresent()) { - if (GameLibrariesTask.shouldDownloadLibrary(repository, version, library, integrityCheck)) { - tasks.add(installLibraryAsync(gameVersion.get(), version, OPTIFINE.getPatchId(), libraryVersion.get())); - } + for (LibraryAnalyzer.LibraryType type : LibraryAnalyzer.LibraryType.values()) { + Optional library = analyzer.getLibrary(type); + if (library.isPresent() && GameLibrariesTask.shouldDownloadLibrary(repository, version, library.get(), integrityCheck)) { + tasks.add(downloadMissingLibraryAsync(gameVersion.get(), version, type, library.get())); } - }); - + } return Task.allOf(tasks); }); } + private Task downloadMissingLibraryAsync(String gameVersion, Version version, LibraryAnalyzer.LibraryType libraryType, Library library) { + switch (libraryType) { + case OPTIFINE: + if (library.hasDownloadURL()) + break; + + return installLibraryAsync(gameVersion, version, libraryType.getPatchId(), library.getVersion()); + } + return Task.completed(null); + } + @Override public Task installLibraryAsync(String gameVersion, Version baseVersion, String libraryId, String libraryVersion) { if (baseVersion.isResolved()) throw new IllegalArgumentException("Version should not be resolved"); diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java index 172aecc93..cc4968f4a 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/LibraryAnalyzer.java @@ -48,6 +48,10 @@ public final class LibraryAnalyzer implements Iterable getLibrary(LibraryType type) { + return Optional.ofNullable(libraries.get(type.getPatchId())).map(Pair::getKey); + } + @NotNull @Override public Iterator iterator() { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java index e4fb09577..656a133a2 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/DefaultGameRepository.java @@ -29,6 +29,7 @@ import org.jackhuang.hmcl.event.RefreshedVersionsEvent; import org.jackhuang.hmcl.event.RefreshingVersionsEvent; import org.jackhuang.hmcl.event.RemoveVersionEvent; import org.jackhuang.hmcl.event.RenameVersionEvent; +import org.jackhuang.hmcl.game.tlauncher.TLauncherVersion; import org.jackhuang.hmcl.mod.ModManager; import org.jackhuang.hmcl.mod.ModpackConfiguration; import org.jackhuang.hmcl.task.Task; @@ -135,6 +136,10 @@ public class DefaultGameRepository implements GameRepository { @Override public File getVersionJar(Version version) { Version v = version.resolve(this); + File currentVersionJar = new File(getVersionRoot(v.getId()), v.getId() + ".jar"); + if (currentVersionJar.exists()) { + return currentVersionJar; + } String id = Optional.ofNullable(v.getJar()).orElse(v.getId()); return new File(getVersionRoot(id), id + ".jar"); } @@ -149,6 +154,11 @@ public class DefaultGameRepository implements GameRepository { return gameVersions.get(versionJar); } else { Optional gameVersion = GameVersion.minecraftVersion(versionJar); + + if (!gameVersion.isPresent()) { + LOG.warning("Cannot find out game version of " + version.getId() + ", primary jar: " + versionJar.toString() + ", jar exists: " + versionJar.exists()); + } + gameVersions.put(versionJar, gameVersion); return gameVersion; } @@ -173,7 +183,21 @@ public class DefaultGameRepository implements GameRepository { } public Version readVersionJson(File file) throws IOException, JsonParseException { - return JsonUtils.fromNonNullJson(FileUtils.readText(file), Version.class); + String jsonText = FileUtils.readText(file); + try { + // Try TLauncher version json format + return JsonUtils.fromNonNullJson(jsonText, TLauncherVersion.class).toVersion(); + } catch (JsonParseException ignored) { + } + + try { + // Try official version json format + return JsonUtils.fromNonNullJson(jsonText, Version.class); + } catch (JsonParseException ignored) { + } + + LOG.warning("Cannot parse version json + " + file.toString() + "\n" + jsonText); + throw new JsonParseException("Version json incorrect"); } @Override diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java index 77ca108bf..4325eac47 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Library.java @@ -1,6 +1,6 @@ /* * Hello Minecraft! Launcher - * Copyright (C) 2020 huangyuhui and contributors + * Copyright (C) 2021 huangyuhui and contributors * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ */ package org.jackhuang.hmcl.game; -import com.google.gson.JsonParseException; +import com.google.gson.*; import com.google.gson.annotations.SerializedName; import org.jackhuang.hmcl.util.Constants; import org.jackhuang.hmcl.util.Immutable; @@ -26,6 +26,7 @@ import org.jackhuang.hmcl.util.gson.TolerableValidationException; import org.jackhuang.hmcl.util.gson.Validation; import org.jackhuang.hmcl.util.platform.Architecture; import org.jackhuang.hmcl.util.platform.OperatingSystem; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; @@ -142,6 +143,12 @@ public class Library implements Comparable, Validation { ); } + public boolean hasDownloadURL() { + LibraryDownloadInfo temp = getRawDownloadInfo(); + if (temp != null) return temp.getUrl() != null; + else return url != null; + } + public List getChecksums() { return checksums; } @@ -154,6 +161,7 @@ public class Library implements Comparable, Validation { * Hint for how to locate the library file. * @return null for default, "local" for location in version/<version>/libraries/filename */ + @Nullable public String getHint() { return hint; } @@ -162,6 +170,7 @@ public class Library implements Comparable, Validation { * Available when hint is "local" * @return the filename of the local library in version/<version>/libraries/$filename */ + @Nullable public String getFileName() { return fileName; } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java index 9c2228809..d812258c0 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/RuledArgument.java @@ -85,13 +85,28 @@ public class RuledArgument implements Argument { @Override public RuledArgument deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { JsonObject obj = json.getAsJsonObject(); - return new RuledArgument( - context.deserialize(obj.get("rules"), new TypeToken>() { - }.getType()), - obj.get("value").isJsonPrimitive() - ? Collections.singletonList(obj.get("value").getAsString()) - : context.deserialize(obj.get("value"), new TypeToken>() { - }.getType())); + + List rules = context.deserialize(obj.get("rules"), new TypeToken>() { + }.getType()); + + JsonElement valuesElement; + if (obj.has("values")) { + valuesElement = obj.get("values"); + } else if (obj.has("value")) { + valuesElement = obj.get("value"); + } else { + throw new JsonParseException("RuledArguments instance does not have either value or values member."); + } + + List values; + if (valuesElement.isJsonPrimitive()) { + values = Collections.singletonList(valuesElement.getAsString()); + } else { + values = context.deserialize(valuesElement, new TypeToken>() { + }.getType()); + } + + return new RuledArgument(rules, values); } } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/VersionJsonType.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/VersionJsonType.java new file mode 100644 index 000000000..589200fe6 --- /dev/null +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/VersionJsonType.java @@ -0,0 +1,23 @@ +/* + * Hello Minecraft! Launcher + * Copyright (C) 2021 huangyuhui and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.jackhuang.hmcl.game; + +public enum VersionJsonType { + OFFICIAL, + TLAUNCHER +} diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherLibrary.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherLibrary.java new file mode 100644 index 000000000..665f7ea2b --- /dev/null +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherLibrary.java @@ -0,0 +1,67 @@ +/* + * Hello Minecraft! Launcher + * Copyright (C) 2021 huangyuhui and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.jackhuang.hmcl.game.tlauncher; + +import com.google.gson.annotations.SerializedName; +import org.jackhuang.hmcl.game.*; +import org.jackhuang.hmcl.util.Immutable; +import org.jackhuang.hmcl.util.platform.OperatingSystem; + +import java.util.List; +import java.util.Map; + +@Immutable +public class TLauncherLibrary { + + @SerializedName("name") + private final Artifact name; + private final String url; + private final LibraryDownloadInfo artifact; + + @SerializedName("classifies") // stupid typo made by TLauncher + private final Map classifiers; + private final ExtractRules extract; + private final Map natives; + private final List rules; + private final List checksums; + + public TLauncherLibrary(Artifact name, String url, LibraryDownloadInfo artifact, Map classifiers, ExtractRules extract, Map natives, List rules, List checksums) { + this.name = name; + this.url = url; + this.artifact = artifact; + this.classifiers = classifiers; + this.extract = extract; + this.natives = natives; + this.rules = rules; + this.checksums = checksums; + } + + public Library toLibrary() { + return new Library( + name, + url, + new LibrariesDownloadInfo(artifact, classifiers), + checksums, + extract, + natives, + rules, + null, + null + ); + } +} diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherVersion.java new file mode 100644 index 000000000..36ed57660 --- /dev/null +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/tlauncher/TLauncherVersion.java @@ -0,0 +1,109 @@ +/* + * Hello Minecraft! Launcher + * Copyright (C) 2021 huangyuhui and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.jackhuang.hmcl.game.tlauncher; + +import com.google.gson.JsonParseException; +import org.jackhuang.hmcl.game.*; +import org.jackhuang.hmcl.util.gson.JsonMap; +import org.jackhuang.hmcl.util.gson.TolerableValidationException; +import org.jackhuang.hmcl.util.gson.Validation; +import org.jetbrains.annotations.Nullable; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +public class TLauncherVersion implements Validation { + + private final String id; + private final String minecraftArguments; + private final Arguments arguments; + private final String mainClass; + private final String inheritsFrom; + private final String jar; + private final AssetIndexInfo assetIndex; + private final String assets; + private final Integer complianceLevel; + @Nullable + private final GameJavaVersion javaVersion; + private final List libraries; + private final List compatibilityRules; + private final JsonMap downloads; + private final JsonMap logging; + private final ReleaseType type; + private final Date time; + private final Date releaseTime; + private final Integer minimumLauncherVersion; + private final Integer tlauncherVersion; + + public TLauncherVersion(String id, String minecraftArguments, Arguments arguments, String mainClass, String inheritsFrom, String jar, AssetIndexInfo assetIndex, String assets, Integer complianceLevel, @Nullable GameJavaVersion javaVersion, List libraries, List compatibilityRules, JsonMap downloads, JsonMap logging, ReleaseType type, Date time, Date releaseTime, Integer minimumLauncherVersion, Integer tlauncherVersion) { + this.id = id; + this.minecraftArguments = minecraftArguments; + this.arguments = arguments; + this.mainClass = mainClass; + this.inheritsFrom = inheritsFrom; + this.jar = jar; + this.assetIndex = assetIndex; + this.assets = assets; + this.complianceLevel = complianceLevel; + this.javaVersion = javaVersion; + this.libraries = libraries; + this.compatibilityRules = compatibilityRules; + this.downloads = downloads; + this.logging = logging; + this.type = type; + this.time = time; + this.releaseTime = releaseTime; + this.minimumLauncherVersion = minimumLauncherVersion; + this.tlauncherVersion = tlauncherVersion; + } + + @Override + public void validate() throws JsonParseException, TolerableValidationException { + Validation.requireNonNull(tlauncherVersion, "Not TLauncher version json format"); + } + + public Version toVersion() { + return new Version( + false, + id, + null, + null, + minecraftArguments, + arguments, + mainClass, + inheritsFrom, + jar, + assetIndex, + assets, + complianceLevel, + javaVersion, + libraries == null ? null : libraries.stream().map(TLauncherLibrary::toLibrary).collect(Collectors.toList()), + compatibilityRules, + downloads, + logging, + type, + time, + releaseTime, + minimumLauncherVersion, + null, + null, + null + ); + } +} diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/gson/GsonSerializerHelper.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/gson/GsonSerializerHelper.java new file mode 100644 index 000000000..bc2844586 --- /dev/null +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/gson/GsonSerializerHelper.java @@ -0,0 +1,32 @@ +/* + * Hello Minecraft! Launcher + * Copyright (C) 2021 huangyuhui and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.jackhuang.hmcl.util.gson; + +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSerializer; + +public abstract class GsonSerializerHelper implements JsonSerializer, JsonDeserializer { + + protected static void add(JsonObject object, String property, JsonElement value) { + if (value == null) return; + object.add(property, value); + } + +} diff --git a/HMCLCore/src/test/resources/game-json/tlauncher.json b/HMCLCore/src/test/resources/game-json/tlauncher.json new file mode 100644 index 000000000..b2c14fa2c --- /dev/null +++ b/HMCLCore/src/test/resources/game-json/tlauncher.json @@ -0,0 +1,1580 @@ +{ + "id": "OptiFine 1.16.5", + "jar": "1.16.5", + "time": "2021-01-14T00:09:18+08:00", + "releaseTime": "2021-01-15T00:05:32+08:00", + "type": "modified", + "mainClass": "net.minecraft.launchwrapper.Launch", + "minimumLauncherVersion": 21, + "tlauncherVersion": 0, + "arguments": { + "game": [ + { + "values": [ + "--username" + ], + "rules": [] + }, + { + "values": [ + "${auth_player_name}" + ], + "rules": [] + }, + { + "values": [ + "--version" + ], + "rules": [] + }, + { + "values": [ + "${version_name}" + ], + "rules": [] + }, + { + "values": [ + "--gameDir" + ], + "rules": [] + }, + { + "values": [ + "${game_directory}" + ], + "rules": [] + }, + { + "values": [ + "--assetsDir" + ], + "rules": [] + }, + { + "values": [ + "${assets_root}" + ], + "rules": [] + }, + { + "values": [ + "--assetIndex" + ], + "rules": [] + }, + { + "values": [ + "${assets_index_name}" + ], + "rules": [] + }, + { + "values": [ + "--uuid" + ], + "rules": [] + }, + { + "values": [ + "${auth_uuid}" + ], + "rules": [] + }, + { + "values": [ + "--accessToken" + ], + "rules": [] + }, + { + "values": [ + "${auth_access_token}" + ], + "rules": [] + }, + { + "values": [ + "--userType" + ], + "rules": [] + }, + { + "values": [ + "${user_type}" + ], + "rules": [] + }, + { + "values": [ + "--versionType" + ], + "rules": [] + }, + { + "values": [ + "${version_type}" + ], + "rules": [] + }, + { + "values": [ + "--demo" + ], + "rules": [ + { + "action": "allow", + "features": { + "is_demo_user": true + } + } + ] + }, + { + "values": [ + "--width", + "${resolution_width}", + "--height", + "${resolution_height}" + ], + "rules": [ + { + "action": "allow", + "features": { + "has_custom_resolution": true + } + } + ] + }, + { + "values": [ + "--tweakClass" + ], + "rules": [] + }, + { + "values": [ + "optifine.OptiFineTweaker" + ], + "rules": [] + } + ], + "jvm": [ + { + "values": [ + "-XstartOnFirstThread" + ], + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ] + }, + { + "values": [ + "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump" + ], + "rules": [ + { + "action": "allow", + "os": { + "name": "windows" + } + } + ] + }, + { + "values": [ + "-Dos.name=Windows 10", + "-Dos.version=10.0" + ], + "rules": [ + { + "action": "allow", + "os": { + "name": "windows", + "version": "^10\\." + } + } + ] + }, + { + "values": [ + "-Xss1M" + ], + "rules": [ + { + "action": "allow", + "os": {} + } + ] + }, + { + "values": [ + "-Djava.library.path=${natives_directory}" + ], + "rules": [] + }, + { + "values": [ + "-Dminecraft.launcher.brand=${launcher_name}" + ], + "rules": [] + }, + { + "values": [ + "-Dminecraft.launcher.version=${launcher_version}" + ], + "rules": [] + }, + { + "values": [ + "-cp" + ], + "rules": [] + }, + { + "values": [ + "${classpath}" + ], + "rules": [] + } + ] + }, + "assets": "1.16", + "source": "local_version_repo", + "libraries": [ + { + "name": "optifine:OptiFine:1.16.5_HD_U_G8", + "artifact": { + "sha1": "9cb751eb247f357c96463e406c946c0ebb9e1307", + "size": 5520538, + "path": "optifine/OptiFine/OptiFine-1.16.5_HD_U_G8/OptiFine-1.16.5_HD_U_G8.jar", + "url": "http://res.tlauncher.org/unb/libraries/optifine/OptiFine/1.16.5_HD_U_G8/OptiFine-1.16.5_HD_U_G8.jar" + } + }, + { + "name": "optifine:launchwrapper-of:2.2", + "artifact": { + "sha1": "48d08d4b6d7b74b8c304c0a5bdb244a081c54175", + "size": 15900, + "path": "optifine/launchwrapper-of/2.2/launchwrapper-of-2.2.jar", + "url": "http://res.tlauncher.org/unb/libraries/optifine/launchwrapper-of/2.2/launchwrapper-of-2.2.jar" + } + }, + { + "name": "com.mojang:patchy:1.2.3", + "artifact": { + "sha1": "e3107ca512d704a434076a153a6e1149e3787275", + "size": 22340, + "path": "com/mojang/patchy/1.2.3/patchy-1.2.3.jar", + "url": "https://libraries.minecraft.net/com/mojang/patchy/1.2.3/patchy-1.2.3.jar" + } + }, + { + "name": "oshi-project:oshi-core:1.1", + "artifact": { + "sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8", + "size": 30973, + "path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar", + "url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar" + } + }, + { + "name": "net.java.dev.jna:jna:4.4.0", + "artifact": { + "sha1": "cb208278274bf12ebdb56c61bd7407e6f774d65a", + "size": 1091208, + "path": "net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar", + "url": "https://libraries.minecraft.net/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar" + } + }, + { + "name": "net.java.dev.jna:platform:3.4.0", + "artifact": { + "sha1": "e3f70017be8100d3d6923f50b3d2ee17714e9c13", + "size": 913436, + "path": "net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar", + "url": "https://libraries.minecraft.net/net/java/dev/jna/platform/3.4.0/platform-3.4.0.jar" + } + }, + { + "name": "com.ibm.icu:icu4j:66.1", + "artifact": { + "sha1": "72c7519b6d91f7a1f993bd44a99fe95d67211b27", + "size": 12935630, + "path": "com/ibm/icu/icu4j/66.1/icu4j-66.1.jar", + "url": "https://libraries.minecraft.net/com/ibm/icu/icu4j/66.1/icu4j-66.1.jar" + } + }, + { + "name": "com.mojang:javabridge:1.0.22", + "artifact": { + "sha1": "6aa6453aa99a52a5cd91749da1af6ab70e082ab3", + "size": 5111, + "path": "com/mojang/javabridge/1.0.22/javabridge-1.0.22.jar", + "url": "https://libraries.minecraft.net/com/mojang/javabridge/1.0.22/javabridge-1.0.22.jar" + } + }, + { + "name": "net.sf.jopt-simple:jopt-simple:5.0.3", + "artifact": { + "sha1": "cdd846cfc4e0f7eefafc02c0f5dce32b9303aa2a", + "size": 78175, + "path": "net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar", + "url": "https://libraries.minecraft.net/net/sf/jopt-simple/jopt-simple/5.0.3/jopt-simple-5.0.3.jar" + } + }, + { + "name": "io.netty:netty-all:4.1.25.Final", + "artifact": { + "sha1": "d0626cd3108294d1d58c05859add27b4ef21f83b", + "size": 3823147, + "path": "io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar", + "url": "https://libraries.minecraft.net/io/netty/netty-all/4.1.25.Final/netty-all-4.1.25.Final.jar" + } + }, + { + "name": "com.google.guava:guava:21.0", + "artifact": { + "sha1": "3a3d111be1be1b745edfa7d91678a12d7ed38709", + "size": 2521113, + "path": "com/google/guava/guava/21.0/guava-21.0.jar", + "url": "https://libraries.minecraft.net/com/google/guava/guava/21.0/guava-21.0.jar" + } + }, + { + "name": "org.apache.commons:commons-lang3:3.5", + "artifact": { + "sha1": "6c6c702c89bfff3cd9e80b04d668c5e190d588c6", + "size": 479881, + "path": "org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar", + "url": "https://libraries.minecraft.net/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar" + } + }, + { + "name": "commons-io:commons-io:2.5", + "artifact": { + "sha1": "2852e6e05fbb95076fc091f6d1780f1f8fe35e0f", + "size": 208700, + "path": "commons-io/commons-io/2.5/commons-io-2.5.jar", + "url": "https://libraries.minecraft.net/commons-io/commons-io/2.5/commons-io-2.5.jar" + } + }, + { + "name": "commons-codec:commons-codec:1.10", + "artifact": { + "sha1": "4b95f4897fa13f2cd904aee711aeafc0c5295cd8", + "size": 284184, + "path": "commons-codec/commons-codec/1.10/commons-codec-1.10.jar", + "url": "https://libraries.minecraft.net/commons-codec/commons-codec/1.10/commons-codec-1.10.jar" + } + }, + { + "name": "net.java.jinput:jinput:2.0.5", + "artifact": { + "sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4", + "size": 208338, + "path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar", + "url": "https://libraries.minecraft.net/net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar" + } + }, + { + "name": "net.java.jutils:jutils:1.0.0", + "artifact": { + "sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6", + "size": 7508, + "path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar", + "url": "https://libraries.minecraft.net/net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar" + } + }, + { + "name": "com.mojang:brigadier:1.0.17", + "artifact": { + "sha1": "c6b7dc51dd44379cc751b7504816006e9be4b1e6", + "size": 77392, + "path": "com/mojang/brigadier/1.0.17/brigadier-1.0.17.jar", + "url": "https://libraries.minecraft.net/com/mojang/brigadier/1.0.17/brigadier-1.0.17.jar" + } + }, + { + "name": "com.mojang:datafixerupper:4.0.26", + "artifact": { + "sha1": "ebd6690f33871ccee9b6132c6480668ee2e35020", + "size": 673183, + "path": "com/mojang/datafixerupper/4.0.26/datafixerupper-4.0.26.jar", + "url": "https://libraries.minecraft.net/com/mojang/datafixerupper/4.0.26/datafixerupper-4.0.26.jar" + } + }, + { + "name": "com.google.code.gson:gson:2.8.0", + "artifact": { + "sha1": "c4ba5371a29ac9b2ad6129b1d39ea38750043eff", + "size": 231952, + "path": "com/google/code/gson/gson/2.8.0/gson-2.8.0.jar", + "url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar" + } + }, + { + "name": "com.mojang:authlib:2.1.28", + "artifact": { + "sha1": "ad54da276bf59983d02d5ed16fc14541354c71fd", + "size": 76328, + "path": "com/mojang/authlib/2.1.28/authlib-2.1.28.jar", + "url": "https://libraries.minecraft.net/com/mojang/authlib/2.1.28/authlib-2.1.28.jar" + } + }, + { + "name": "org.apache.commons:commons-compress:1.8.1", + "artifact": { + "sha1": "a698750c16740fd5b3871425f4cb3bbaa87f529d", + "size": 365552, + "path": "org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar", + "url": "https://libraries.minecraft.net/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" + } + }, + { + "name": "org.apache.httpcomponents:httpclient:4.3.3", + "artifact": { + "sha1": "18f4247ff4572a074444572cee34647c43e7c9c7", + "size": 589512, + "path": "org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar", + "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar" + } + }, + { + "name": "commons-logging:commons-logging:1.1.3", + "artifact": { + "sha1": "f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f", + "size": 62050, + "path": "commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar", + "url": "https://libraries.minecraft.net/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar" + } + }, + { + "name": "org.apache.httpcomponents:httpcore:4.3.2", + "artifact": { + "sha1": "31fbbff1ddbf98f3aa7377c94d33b0447c646b6e", + "size": 282269, + "path": "org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar", + "url": "https://libraries.minecraft.net/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar" + } + }, + { + "name": "it.unimi.dsi:fastutil:8.2.1", + "artifact": { + "sha1": "5ad88f325e424f8dbc2be5459e21ea5cab3864e9", + "size": 18800417, + "path": "it/unimi/dsi/fastutil/8.2.1/fastutil-8.2.1.jar", + "url": "https://libraries.minecraft.net/it/unimi/dsi/fastutil/8.2.1/fastutil-8.2.1.jar" + } + }, + { + "name": "org.apache.logging.log4j:log4j-api:2.8.1", + "artifact": { + "sha1": "e801d13612e22cad62a3f4f3fe7fdbe6334a8e72", + "size": 228859, + "path": "org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar", + "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-api/2.8.1/log4j-api-2.8.1.jar" + } + }, + { + "name": "org.apache.logging.log4j:log4j-core:2.8.1", + "artifact": { + "sha1": "4ac28ff2f1ddf05dae3043a190451e8c46b73c31", + "size": 1402925, + "path": "org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar", + "url": "https://libraries.minecraft.net/org/apache/logging/log4j/log4j-core/2.8.1/log4j-core-2.8.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "2bb514e444994c6fece99a21f76e0c90438e377f", + "size": 317748, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "8ad6294407e15780b43e84929c40e4c5e997972e", + "size": 321900, + "path": "org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-jemalloc:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "7a0c583fcbec32b15784f846df536e1837d83666", + "size": 38616, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-jemalloc:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "ee8e57a79300f78294576d87c4a587f8c99402e2", + "size": 34848, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-openal:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "dc7ff2dabb40a141ee9bf2e326d9b1b19f3278fb", + "size": 80103, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-openal:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "2b772a102b0a11ee5f2109a5b136f4dc7c630827", + "size": 80012, + "path": "org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-opengl:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "57008c2374c5bc434b18adfef3f3653ee450ee18", + "size": 931322, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-opengl:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "6ac5bb88b44c43ea195a570aab059f63da004cd8", + "size": 929780, + "path": "org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-glfw:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "027abb7f64894b61cad163791acd8113f0b21296", + "size": 116708, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-glfw:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "d3ad4df38e400b8afba1de63f84338809399df5b", + "size": 108907, + "path": "org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-stb:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "31f5eb5fce3791d58ec898bc5c1867d76d781ba1", + "size": 105765, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-stb:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "3b8e6ebc5851dd3d17e37e5cadce2eff2a429f0f", + "size": 104469, + "path": "org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-tinyfd:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "259f1dbddb921e27e01b32458d6f584eb8bba13a", + "size": 7088, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1.jar" + } + }, + { + "name": "org.lwjgl:lwjgl-tinyfd:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "fcbe606c8f8da6f8f9a05e2c540eb1ee8632b0e9", + "size": 7092, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2.jar" + } + }, + { + "name": "org.lwjgl:lwjgl:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "2bb514e444994c6fece99a21f76e0c90438e377f", + "size": 317748, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "1f6b7050737559b775d797c0ea56612b8e373fd6", + "size": 1287174, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "9bdd47cd63ce102cec837a396c8ded597cb75a66", + "size": 87484, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "5a4c271d150906858d475603dcb9479453c60555", + "size": 39835, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "e799d06b8969db0610e68776e0eff4b6191098bd", + "size": 255871, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "106f90ac41449004a969309488aa6e3a2f7d6731", + "size": 255671, + "path": "org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.1/lwjgl-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "8ad6294407e15780b43e84929c40e4c5e997972e", + "size": 321900, + "path": "org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "ae7976827ca2a3741f6b9a843a89bacd637af350", + "size": 124776, + "path": "org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "bbfb75693bdb714c0c69c2c9f9be73d259b43b62", + "size": 48462, + "path": "org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "05359f3aa50d36352815fc662ea73e1c00d22170", + "size": 279593, + "path": "org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.2.2/lwjgl-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-jemalloc:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "7a0c583fcbec32b15784f846df536e1837d83666", + "size": 38616, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "04f6897be1e2d68bff5ec5e91a2b96e32f084c09", + "size": 461041, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "5536616b558cea2fea6330ca682fd7c733db9c43", + "size": 156057, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "439ab9d0264167a949cc7bcce673704322baaf50", + "size": 117001, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "3c869b3d7638c800b7039cd859d064658643ad6e", + "size": 218136, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "4450dca46228c02c51bb9bbda70e7cfc3154296d", + "size": 31279, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.1/lwjgl-jemalloc-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-jemalloc:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "ee8e57a79300f78294576d87c4a587f8c99402e2", + "size": 34848, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "268c08a150347e04e44ba56e359d62c9b78669df", + "size": 156173, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "805f5a10465375ba034b27b72331912fd2846690", + "size": 117127, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "338b25b99da3ba5f441f6492f2ce2a9c608860ed", + "size": 220623, + "path": "org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.2.2/lwjgl-jemalloc-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-openal:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "dc7ff2dabb40a141ee9bf2e326d9b1b19f3278fb", + "size": 80103, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "95752f443686da1b3443e397dc83e730e1907a1e", + "size": 617869, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "bcd4be67863dd908f696f628c3ca9f6eb9ae5152", + "size": 590716, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "9357ebfc82a0d6f64e17093dd963219367cd6fa2", + "size": 528004, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "92fb931e65c637cea209ad5c3ffebd1b325ed41d", + "size": 1310083, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "8fe3d6e6353685164b1eb3a22980aaa1115d4a32", + "size": 78379, + "path": "org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.1/lwjgl-openal-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-openal:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "2b772a102b0a11ee5f2109a5b136f4dc7c630827", + "size": 80012, + "path": "org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "0364f9f5c3947393083ab5f37a571f5603aadd0b", + "size": 590997, + "path": "org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "a97b6345d5a9ddf889e262bd7ad8eed43b1bb063", + "size": 528006, + "path": "org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "ec20a7d42a2438528fca87e60b1705f1e2339ddb", + "size": 1310102, + "path": "org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.2.2/lwjgl-openal-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-opengl:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "57008c2374c5bc434b18adfef3f3653ee450ee18", + "size": 931322, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "e25fc8cbcbee68182a6b7f13ad71b1f0961005ad", + "size": 4307561, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "c43bb08ed7dcf1a6d344803e464148b3b14dd274", + "size": 77401, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "dca9ad9e59a87172144d531e08ef7f6988073db0", + "size": 38998, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "80954961b31084d7b4f2f041d6b5a799a774c880", + "size": 170804, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "47930ffbef53c0f45c7e35c01b1c6ad5b2205809", + "size": 1251582, + "path": "org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.1/lwjgl-opengl-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-opengl:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "6ac5bb88b44c43ea195a570aab059f63da004cd8", + "size": 929780, + "path": "org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "338d33387919cb3f4cdba143c2b738a71ccfda60", + "size": 77392, + "path": "org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "cf4f43e69ee70d8ebfbb6ba93dec9016339e4fdc", + "size": 38989, + "path": "org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "d8dcdc91066cae2d2d8279cb4a9f9f05d9525826", + "size": 170798, + "path": "org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.2.2/lwjgl-opengl-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-glfw:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "027abb7f64894b61cad163791acd8113f0b21296", + "size": 116708, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "81482a14b617e4fb0c7de69b3e06ef2e28ef894f", + "size": 690774, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "5a2fb27f9e12a34ecabf6f6a7606c61849e347ee", + "size": 157431, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "72fe6dab6110a5a1cd4833f11840eef7b2eadce5", + "size": 64724, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "00def7c58ad2e1cb258d6d73be181ffab8ef8bd5", + "size": 265304, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "4c56ae817da75996b19601c87d7e759b846c3902", + "size": 101885, + "path": "org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.1/lwjgl-glfw-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-glfw:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "d3ad4df38e400b8afba1de63f84338809399df5b", + "size": 108907, + "path": "org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "0957733f26a6661d4883da0335f7ef46d3bbbd7d", + "size": 159198, + "path": "org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "98f745038d17ac3192fcd01dc44126b03ec1570d", + "size": 67311, + "path": "org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "dc6826d636bf796b33a49038c354210e661bfc17", + "size": 266648, + "path": "org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.2.2/lwjgl-glfw-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-stb:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "31f5eb5fce3791d58ec898bc5c1867d76d781ba1", + "size": 105765, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "524d79537f840d6cfe50e030d24413933f0d464b", + "size": 684972, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "66e01b8036258619332cb452b970ca0a52db1a87", + "size": 197208, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "1f5615c952451c30afafba4a6e3ba4e1cd9e7f5c", + "size": 192364, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "d100bfd2b0d03223a043cfcb64a2dfd2bb7f4c61", + "size": 454473, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "50ac43d4c6ea5846f354f9576134c0f9264345c2", + "size": 96479, + "path": "org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.1/lwjgl-stb-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-tinyfd:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "fcbe606c8f8da6f8f9a05e2c540eb1ee8632b0e9", + "size": 7092, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2.jar" + }, + "classifies": { + "javadoc": { + "sha1": "ba657a222ee267b75fa81ae5ab29ae29b50f725f", + "size": 368913, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-javadoc.jar" + }, + "linux": { + "sha1": "39e35b161c130635d9c8918ce04e887a30c5b687", + "size": 38804, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "46d0798228b8a28e857a2a0f02310fd6ba2a4eab", + "size": 42136, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "e9115958773644e863332a6a06488d26f9e1fc9f", + "size": 208314, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-natives-windows.jar" + }, + "sources": { + "sha1": "2fe76dcf2ca02ae0e64ac7c69eb251c09df0e922", + "size": 5034, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.2/lwjgl-tinyfd-3.2.2-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-tinyfd:3.2.1", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-macos" + }, + "artifact": { + "sha1": "259f1dbddb921e27e01b32458d6f584eb8bba13a", + "size": 7088, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1.jar" + }, + "classifies": { + "javadoc": { + "sha1": "0a85d995178cdab6b94d9a172dd9e7d2a0d70cfb", + "size": 368913, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-javadoc.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-javadoc.jar" + }, + "linux": { + "sha1": "4ad49108397322596d7b85c2c687e5de6ee52157", + "size": 38192, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-linux.jar" + }, + "osx": { + "sha1": "759c2fd9cc5c6ce0b5b7af77ac8200483b7fb660", + "size": 41962, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-macos.jar" + }, + "windows": { + "sha1": "85750d2ca022852e15f58c0b94b3d1d4e7f0ba52", + "size": 207577, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-natives-windows.jar" + }, + "sources": { + "sha1": "c375699fd794c4c87d935e0f9a84e7d80d0de77e", + "size": 5034, + "path": "org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-sources.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.2.1/lwjgl-tinyfd-3.2.1-sources.jar" + } + } + }, + { + "name": "org.lwjgl:lwjgl-stb:3.2.2", + "rules": [ + { + "action": "allow" + }, + { + "action": "disallow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "artifact": { + "sha1": "3b8e6ebc5851dd3d17e37e5cadce2eff2a429f0f", + "size": 104469, + "path": "org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2.jar" + }, + "classifies": { + "linux": { + "sha1": "172c52e586fecf43f759bc4f70a778c01f6fdcc1", + "size": 203476, + "path": "org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-linux.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-linux.jar" + }, + "osx": { + "sha1": "ee059b129b09fdecbd8595273926ae930bf5a5d7", + "size": 196796, + "path": "org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-macos.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-macos.jar" + }, + "windows": { + "sha1": "811f705cbb29e8ae8d60bdf8fdd38c0c123ad3ef", + "size": 465810, + "path": "org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-windows.jar", + "url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.2.2/lwjgl-stb-3.2.2-natives-windows.jar" + } + } + }, + { + "name": "com.mojang:text2speech:1.11.3", + "artifact": { + "sha1": "f378f889797edd7df8d32272c06ca80a1b6b0f58", + "size": 13164, + "path": "com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar", + "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar" + } + }, + { + "name": "com.mojang:text2speech:1.11.3", + "natives": { + "linux": "natives-linux", + "windows": "natives-windows" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "artifact": { + "sha1": "f378f889797edd7df8d32272c06ca80a1b6b0f58", + "size": 13164, + "path": "com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar", + "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.11.3/text2speech-1.11.3.jar" + }, + "classifies": { + "linux": { + "sha1": "ac641755a2a841d1fca9e660194f42523ee5cfe0", + "size": 7833, + "path": "com/mojang/text2speech/1.11.3/text2speech-1.11.3-natives-linux.jar", + "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.11.3/text2speech-1.11.3-natives-linux.jar" + }, + "windows": { + "sha1": "c0b242c0091be5acbf303263c7eeeaedd70544c7", + "size": 81379, + "path": "com/mojang/text2speech/1.11.3/text2speech-1.11.3-natives-windows.jar", + "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.11.3/text2speech-1.11.3-natives-windows.jar" + }, + "sources": { + "sha1": "772a37dd77417571e6f119a8d306f0c14c2ee410", + "size": 5332, + "path": "com/mojang/text2speech/1.11.3/text2speech-1.11.3-sources.jar", + "url": "https://libraries.minecraft.net/com/mojang/text2speech/1.11.3/text2speech-1.11.3-sources.jar" + } + } + }, + { + "name": "ca.weblite:java-objc-bridge:1.0.0", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "natives": { + "osx": "natives-osx" + }, + "extract": { + "exclude": [ + "META-INF/" + ] + }, + "artifact": { + "sha1": "6ef160c3133a78de015830860197602ca1c855d3", + "size": 40502, + "path": "ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar", + "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar" + }, + "classifies": { + "javadoc": { + "sha1": "fb0092f22cb4fe8e631452f577b7a238778abf2a", + "size": 174060, + "path": "ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-javadoc.jar", + "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-javadoc.jar" + }, + "osx": { + "sha1": "08befab4894d55875f33c3d300f4f71e6e828f64", + "size": 5629, + "path": "ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-natives-osx.jar", + "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-natives-osx.jar" + }, + "sources": { + "sha1": "865837a198189aee737019561ece842827f24278", + "size": 43283, + "path": "ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-sources.jar", + "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0-sources.jar" + } + } + }, + { + "name": "ca.weblite:java-objc-bridge:1.0.0", + "rules": [ + { + "action": "allow", + "os": { + "name": "osx" + } + } + ], + "artifact": { + "sha1": "6ef160c3133a78de015830860197602ca1c855d3", + "size": 40502, + "path": "ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar", + "url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.0.0/java-objc-bridge-1.0.0.jar" + } + } + ], + "downloads": { + "client": { + "sha1": "37fd3c903861eeff3bc24b71eed48f828b5269c8", + "size": 17547153, + "url": "https://launcher.mojang.com/v1/objects/37fd3c903861eeff3bc24b71eed48f828b5269c8/client.jar" + }, + "client_mappings": { + "sha1": "374c6b789574afbdc901371207155661e0509e17", + "size": 5746047, + "url": "https://launcher.mojang.com/v1/objects/374c6b789574afbdc901371207155661e0509e17/client.txt" + }, + "server": { + "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced", + "size": 37962360, + "url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar" + }, + "server_mappings": { + "sha1": "41285beda6d251d190f2bf33beadd4fee187df7a", + "size": 4400926, + "url": "https://launcher.mojang.com/v1/objects/41285beda6d251d190f2bf33beadd4fee187df7a/server.txt" + } + }, + "assetIndex": { + "id": "1.16", + "totalSize": 332467385, + "size": 294843, + "url": "https://launchermeta.mojang.com/v1/packages/ad75fb46ff5c89aa5f9c90e12481e963854f9a6e/1.16.json" + }, + "complianceLevel": 1.0, + "javaVersion": { + "component": "jre-legacy", + "majorVersion": 8.0 + }, + "skinVersion": false +} \ No newline at end of file