node-minecraft-protocol
node-minecraft-protocol copied to clipboard
example proxy is producing packet serialize/deserialize errors
[x] The FAQ doesn't contain a resolution to my issue
Versions
- minecraft-protocol: 1.25.0 but also a clone from master as a version supporting 1.16.5 has not been released
- server: 1.16.5, vanilla
- node: 14.16.1
Detailed description of a problem
When I run the example proxy and connect through it to a server, I'm getting errors like this:
client<-server: Error in packet play.entity_equipment
received buffer 47a9080001be04010a000003000644616d616765000000000002018105010a000003000644616d616765000000000003018005010a000003000644616d61676500000
000000401ff04010a000003000644616d61676500000000000501fe04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000020200036c766c000208
0002696400146d696e6563726166743a70726f74656374696f6e000200036c766c0002080002696400146d696e6563726166743a756e627265616b696e670000
produced buffer 47a9080001be04010a000003000644616d6167650000000000
received length 205
produced length 25
They are all "server to client" packets, and all are getting truncated at 25.
Current code
const bufferEqual = require('buffer-equal')
proxyClient.on('raw', function (buffer, meta) {
if (client.state !== states.PLAY || meta.state !== states.PLAY) { return }
const packetData = proxyClient.deserializer.parsePacketBuffer(buffer).data.params
const packetBuff = client.serializer.createPacketBuffer({ name: meta.name, params: packetData })
if (!bufferEqual(buffer, packetBuff)) {
console.log('client<-server: Error in packet ' + meta.state + '.' + meta.name)
console.log('received buffer', buffer.toString('hex'))
console.log('produced buffer', packetBuff.toString('hex'))
console.log('received length', buffer.length)
console.log('produced length', packetBuff.length)
}
Expected behavior
Packets get passed without being changed.
what actions were you trying to perform in minecraft that caused this?
First, clarification: This is vanilla, so I clarified the bug description. I also just updated the versions that I just tested with, so those are now current.
I have a vanilla server running on my network. I run node examples\proxy\proxy.js 192.168.16.192 1.16.5 - this means offline-mode and no keepalive. (The server is in online mode) I then connect my client. Before I even get the world painted, I get these:
Incoming connection (::ffff:127.0.0.1)
client<-server: Error in packet play.entity_equipment
received buffer 47d1300201f104010a000003000644616d61676500000000000301f004010a000003000644616d61676500000000000401ef04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0001080002696400196d696e6563726166743a666972655f70726f74656374696f6e00000501ee04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0002080002696400196d696e6563726166743a666972655f70726f74656374696f6e0000
produced buffer 47d1300201f104010a000003000644616d6167650000000000
received length 213
produced length 25
client<-server: Error in packet play.entity_equipment
received buffer 47d1300201f104010a000003000644616d61676500000000000301f004010a000003000644616d61676500000000000401ef04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0001080002696400196d696e6563726166743a666972655f70726f74656374696f6e00000501ee04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0002080002696400196d696e6563726166743a666972655f70726f74656374696f6e0000
produced buffer 47d1300201f104010a000003000644616d6167650000000000
received length 213
produced length 25
client<-server: Error in packet play.entity_equipment
received buffer 47ce3102018105010a000003000644616d616765000000000003018005010a000003000644616d61676500000000000401ff04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0002080002696400196d696e6563726166743a666972655f70726f74656374696f6e00000501fe04010a000003000644616d6167650000000000
produced buffer 47ce3102018105010a000003000644616d6167650000000000
received length 152
produced length 25
client<-server: Error in packet play.entity_equipment
received buffer 47ce3102018105010a000003000644616d616765000000000003018005010a000003000644616d61676500000000000401ff04010a000003000644616d6167650000000009000c456e6368616e746d656e74730a000000010200036c766c0002080002696400196d696e6563726166743a666972655f70726f74656374696f6e00000501fe04010a000003000644616d6167650000000000
produced buffer 47ce3102018105010a000003000644616d6167650000000000
received length 152
produced length 25
If I just let the client idle, I continue getting these, all with different 'received' lengths, but clearly the produced is the same and truncated.