PrismarineJS / minecraft-data

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

Legacy ping protocol #95

Open deathcap opened 8 years ago

deathcap commented 8 years ago

re: https://github.com/PrismarineJS/node-minecraft-protocol/issues/332 FE legacy ping support

0xfe is not correctly decoded/encoded, although it is defined in the handshaking state, it does not have a varint packet id and length like modern packets.

This can be worked around in node-minecraft-protocol, but it might be better if minecraft-data's protocol specification could include knowledge of the legacy ping's specialized packet format.

(Not clear how to do this, if it is something protodef can handle, see https://github.com/PrismarineJS/node-minecraft-protocol/issues/332#issuecomment-177322556)

deathcap commented 8 years ago

An attempt at making the 0xfe payload ubyte optional in https://gist.github.com/deathcap/7c9b94452b0d6f3d9429 using a switch with default void, but fails "Read error for params.legacy_server_list_ping.payload : Cannot read property 'split' of undefined"

rom1504 commented 8 years ago

Needs to support "implicitly optional" type for this. Not clear how this can be implemented generally (kind of related to https://github.com/roblabla/ProtoDef/issues/24 )