py-mine / mcproto

Library providing easy low level interactions with minecraft protocol

Home Page:https://mcproto.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add Bedrock Support

ItsDrike opened this issue · comments

This library currently only supports the Java version of minecraft, add support for bedrock.

This feature is currently not planned and is considered as deferred. It is NOT available to be worked on by others, at least not until version 1.0.0 is released, after which this might make more sense for the library.

This is because even if someone would be willing to write a working implementation for bedrock, the project doesn't currently have maintainers willing to keep this implementation up to date and fix potential bugs in it.

It would also likely require a pretty big restructurization of the project, as the current file structure is set up to just cover the java implementation.

This is therefore something that I'm not yet willing to allow to happen, as the project is still in heavy development and changes are constantly being made even just to cover the java version, perhaps once the project reaches a bit more stable stage, this can be revisited.

Whenever this is being worked on. I'd recommend splitting the project files. Basicly the java files into a java folder. And the bedrock ones being split into a be folder.

Yeah, I agree that a split like this would probably be the best way to go about it, it is quite annoying that it inevitably means a major breaking change though, but there's really no other good way to handle it.

Yes. But due to the split. Imports would be quarry.java or quarry.be instead of quarry (The module name)

After some consideration, I've decided that bedrock support would not make sense for this project, very likely not even in the long term. It would require a lot of new code, and essentially a complete split between the java version and bedrock, as these are completely incompatible.

I'd prefer this be left to another library to handle. This library might still benefit from utilizing the buffer and connection classes that mcproto already provides, and extending them, so mcproto might become a dependency of that library, but mcproto itself will not support bedrock any time soon, certainly not immediately after 1.0.0, as my previous comment suggested it might.

There is some slight potential for this issue to get re-opened at some point, if bedrock support really would be something we'd want to do, however I still think that should be a task left for another library (it could however potentially be one under the py-mine banner).