The launcher automatically redownloads any library from the mojang servers when the server-side checksum (.sha1) does not equal the client-side one (.sha). However, libraries with a custom maven url are not redownloaded when the checksum doesn't match.
Is this actually a launcher bug or is this intended behaviour, and when it is intended, i'm interested to know why it is intended.
~ Jeffrey Kog
Update
After looking in the source of the launcher (Yes, i know you don't want us decompiling stuff, but i only looked for the potential cause) i found out that this has to be intended, because in net.minecraft.launcher.versions.CompleteVersion in the method getRequiredDownloadables i found this:
if ((!local.isFile()) || (!library.hasCustomUrl())) {
neededFiles.add(new ChecksummedDownloadable(proxy, url, local, ignoreLocalFiles));
}
That means that it only checks the remote checksum when the library doesn't exist locally, or has no custom maven url.
I'm interested to hear what the reason is for disabling this, because it makes downloading libraries for mods (and automatically updating them without modifying the client-side profile) a lot harder.
Have a nice day!
Comments 3
Why does the launcher need to "prevent tampering with vanilla versions"? Surely the user can do whatever they want with their own computer (and they can just treat the files like mods and they won't be checked anyway), so what is the point? Just curious.
You should not hot-update the same version of a library. Mark it as a different version instead.
We cannot make assumptions about third party libraries, do you support e-tags or .sha1? If you don't, redownloading is kinda of a waste. If you do, well, fantastic, but why would the check ever return that the file changed?
The only reason that vanilla does this is to prevent tampering with vanilla versions. Modded versions do not need this.