Open GroobleDierne opened 1 month ago
Can you point missing files to 1.21.1 for now
Let's open an nmp and mineflayer PRs using this
nmp and mineflayer PRs
https://github.com/PrismarineJS/node-minecraft-protocol/pull/1347 https://github.com/PrismarineJS/mineflayer/pull/3489
fail due to wrong protocol as expected
see https://github.com/extremeheat/extracted_minecraft_data/pulls as a source of info for the protocol
see https://github.com/extremeheat/extracted_minecraft_data/pulls as a source of info for the protocol
I'm using yarn because some files failed to decompile in extremheat's repository. Anyway, I'll stop here for tonight.
https://github.com/PrismarineJS/node-minecraft-protocol/actions/runs/11543601911/job/32356083688 now passing but still some packet errors
https://github.com/PrismarineJS/node-minecraft-protocol/actions/runs/11543601911/job/32356083688 now passing but still some packet errors
I still need to implement one or two server-bound packets and the Slot
type is messed up which causes quite a lot of packets to throw errors sometimes. I'm also stuck with the unlock_recipes
packet, @extremeheat could you take a look at it?
I did some work on the protocol, still some work to do:
registryEntryHolder
and registryEntryHolderSet
types to correspond to the Holder and HolderSet types inside minecraft (ref) to replace usage of the arrayWithLengthOffset
type
if wolf_variant: ["registryEntryHolder", {
"base": { name: "variantId", type: "varint" },
"otherwise": { name: "variantData", type: "EntityMetadataWolfVariant" }
}]
bitflags
type implemented in bedrock-protocol to make the flags easier than tracking individual bits
["bitflags", {
"type": "u32",
"flags": ["x", "y", "z", "yaw", "pitch", "dx", "dy", "dz", "yawDelta"]
}]
@GroobleDierne For 'registryDataIsMandatory', 'version' needs to be changed to 'versions'
@GroobleDierne For 'registryDataIsMandatory', 'version' needs to be changed to 'versions'
Thx
Now only recipes related packets seem to be missing for protocol support
I'll try debugging them later today
Hey, please remove registries.json file from this PR and put it in its own PR. I think we need a lot more work on it to include in mc data
Also let's review https://github.com/GroobleDierne/minecraft-data/pull/2
Hey, please remove registries.json file from this PR and put it in its own PR. I think we need a lot more work on it to include in mc data
I realised that if the client and server share the same minecraft:core pack version (communicated through SelectKnowPacks), the server only needs to send every key from every registries. So my current plan is to implement this in p-registry, as for most registries, mc-data already has the data to generate the keys. In the long term, we must add some fields to the existing schemas and create new ones too.
After a looooooot of debugging, I figured out the bug was just in front of my eyes in the registryHolderSet decoding code and not in the protocol definition :face_holding_back_tears:
Fixes #929, #928
TODO: