Open bundabrg opened 4 years ago
You kinda have to PR to protocol otherwise this pull request is useless and can’t be merged
That's why its a draft. Also in its current state it would be bad to merge into master as we need to specify the edition at runtime. I'm just placing this here in case there are any comments otherwise my actions will be to PR v363 to Protocol and add a config item for edition.
This now supports both MCPE and MCEE with a flag in the config file.
It will not compile unless first compiling https://github.com/NukkitX/Protocol/pull/39 which will provide 2.5.7-SNAPSHOT version of of Protocol.
Now all yours @lukeeey. I'm so tired of looking at raw packets of meaningless data and having intimate knowledge of both zig zag encoding and VarInts as well as forgetting when packets had varints and when it was ints.
I do have a question. If a packet that does not have any mapping comes across does this get logged or is it just silently passed on? I have a slight suspicion that MCEE is passing a packet that I'm not seeing when the client presses pause and running tcpdump to confirm this is tricky considering the deluge of other data flowing.
Is there any sort of server software for education edition? Or you may be able to use IDA to dissasemble the client and then search for strings containing "Packet", as every packet class has a method that returns the packet name as a string.
Just chiming in - As far as I can tell, there is no standalone server software for edu at the moment. See my post here https://minecrafteducation.zendesk.com/hc/en-us/community/posts/360062461351
I've not needed to make any changes to this so I think this can be considered complete.
It's also now easier to test as the feature/mcee branch of GeyserMC provides a way to generate a token and connect using only 1 mcee account.
This is now 1.16 ready
I can now successfully run ProxyPass between two MCEE 1.14.60 devices.
Changes include:
Will proxy through the MCEE signedToken correctly. I don't think the token ever expires so copying it could be useful if developing an MCEE server or an addon to GeyserMC for example. The token tells clients what tenant the server belongs to and both must belong to the same tenant. Technically you could multi-tenant a server by responding with an appropriate token.
With encrypt client and server bound traffic. We have to do this when passing the signedToken onwards but this change may be useful anyway for normal bedrock clients
Issues:
MCEE has a different CODEC (v363) as well as edition ("MCEE" instead of "MCPE") so this cannot run on the same port as Bedrock and as it stands is really an MCEE only branch and may be better to have a runtime flag that chooses the edition to run as (or a config value). I'm open to suggestions.
Uses a private build of Protocol for version v363 which is really just v361 rebadged with minor changes so it won't compile for anyone else yet. If this is of interest I'll PR to Protocol with my changes as well.