Matsv / PAaaS

Minecraft Protocol Analysis as a Service
https://matsv.nl/PAaaS/
MIT License
44 stars 5 forks source link

Older snapshots/minor versions not listed (+how to find them) #3

Open Pokechu22 opened 8 years ago

Pokechu22 commented 8 years ago

Right now, it seems like version_manifest.json is used to get a list of all versions. However, that only includes the latest versions, the latest revisions of some older versions, and the latest snapshots.

It can be pretty useful to compare the first snapshot of a version with the version before it, so I think those versions should be listed.

Now, the hard part is finding the versions. The good news is that you can use the Minecraft.Download urls to get them; the bad news is that there isn't any good index of those URLs. Additionally, I believe mojang has said that they prefer that people download jars from launchermeta URLs since the s3 ones are more expensive or something.

While I don't have any good recommendations for the index (other than maybe storing a list of all snapshots from the wiki, but that'd need to be updated), I can say that there's a way to get the snapshots from launchermeta if you've got their name.

  1. Request the JSON from Minecraft.Download, such as http://s3.amazonaws.com/Minecraft.Download/versions/13w16a/13w16a.json.
  2. Use the downloads block in that version JSON (which should be the same as the launchermeta json) to download the actual client jar (like you would with a normal version).
  3. Work off of that jar.

I think that the JSONs, since they're comparatively small files, are probably fine to download from Minecraft.Download if s3 is used to actually get the jars.

Matsv commented 8 years ago

The reason that we aren't supporting < 1.8 is because Burger seems to break for those versions. We thought it'd get too over-complicated to download an older compatible version of Burger for every old version.

Do you mean having all the snapshots between every version or only the ones in development? Depending on a wiki wouldn't really be an option, no. The aim of this application is to find changes out before it's released on any wiki.

If we support all the snapshots (above 1.8), it'd probably be better to create another service that indexes all the Minecraft versions (detect new versions from the version_manifest.json) and provide an API for it.

Pokechu22 commented 8 years ago

Do you mean having all the snapshots between every version or only the ones in development?

Yea, that's mainly what I mean, but it would be hard to implement. I wish mojang had some kind of full index; it would make things much easier.

We thought it'd get too over-complicated to download an older compatible version of Burger for every old version.

At some point I hope to make burger handle compatibility for older versions as well as newer versions automatically; it just doesn't do so right now.