PrismarineJS / minecraft-data

Language independent module providing minecraft data for minecraft clients, servers and libraries.
https://prismarinejs.github.io/minecraft-data
661 stars 222 forks source link

1.6.4 and earlier protocol data (pre-Netty) #114

Open deathcap opened 8 years ago

deathcap commented 8 years ago

Add protocol for 1.6.4 and earlier versions

This is before the large protocol rework (in http://wiki.vg/Protocol_History#13w41a, using Netty), vastly different overall packet structure:

No length prefix, instead the packet length can only be known after fully parsing it (I hear supporting this will require enhancements to ProtoDef). No separate namespace for client/server packet types either, or states.

Supporting 1.6.4 will be a large effort, but once complete, supporting earlier versions should be relatively easier (including possibly all the way back to 1.0.0).

References:

rom1504 commented 8 years ago

https://github.com/mhsjlw/minecraft-classic-protocol/blob/master/data/protocol.json might be interesting (it corresponds to http://wiki.vg/Classic_Protocol), it's even before 1.0.0, I don't remember what's the version number for it. Characteristics for classic are : toClient and toServer are there but no states. Not length prefixed, partial packet support is required.

rom1504 commented 8 years ago

protodef can now handle partial packets again ! I tested this with mc classic and it works That means supporting 1.6 is now possible.

rom1504 commented 1 year ago

https://github.com/PrismarineJS/minecraft-data/pull/443 was a try at this

rom1504 commented 9 months ago

notes for 1.5

This should be wiki.vg for Release 1.5 https://wiki.vg/index.php?title=Protocol&oldid=1094 This is the last revision on the Wiki before it was updated for 1.6. This should be the data types page that goes aloing with that version as well https://wiki.vg/index.php?title=Data_types&oldid=4204

Additionally MCP for 1.5.2 still works so you can easily look thru the source to get all the block and item information for the version.