Add code to handle old embedded server jar dependencies #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In MC version 1.18, Mojang switched to embedding the original jar files instead of inlining the libraries into the server jar directly. Our code currently relies on the META-INF/libraries.list that ships since 1.18.
To support metadata for versions before 1.18, this PR will heuristically try to determine the GAV of libraries embedded in the server.
For each library declared for the client in the same version, it downloads the library and fingerprints each file in it to check against the server jar. For full matches, that library is added to the server library list. If there's a partial match, we also try to upgrade the library (against a known list), since for some reason in some versions the server jar contains newer libraries than the client.