Closed dktapps closed 6 years ago
MAY CORRUPT YOUR WORLDS
It's not just may. It kinda does it, no skylight for new generated chunks, which may result into very weird lighting.
@robske110 well push your branch to GitHub so I can review it then!
In the vision that this issue may encounter a large amount of irrelevant comments (like this one), this issue has been locked. If you wish to discuss about this issue, please use this forum thread, or create a thread for specific discussion.
This issue is too stale to be of any further use.
Issue description
OK, here goes nothing...
So, you noticed that Minecraft PE 1.0.0 was released today, yes? Well, here goes...
I released changes onto GitHub today for the update. However, some major backwards incompatible changes had to be made, resulting in a need to bump the API version to 3.0.0.
Stop screaming!
If you want to test out MCPE 1.0 now, you may do so by heading over to GitHub and cloning the mcpe-1.0 branch. However, this branch is NOT STABLE, has TERRIBLE PERFORMANCE and MAY CORRUPT YOUR WORLDS. NUCLEAR MATERIAL, HANDLE WITH CAUTION.
But, API 3.0.0? ALREADY?
In internal discussions we (the team) came to the realization that A LOT of things need rewriting within the PocketMine core, because of lack of suitability (e.g. Level module), lack of customisability (Block), lack of quality (Block, Entity, Item, Inventory, Crafting, Network, etc...), or lack of capability to use new features (Command).
SO: We decided that instead of doing these rewrites one by one (and necessitating several major API bumps in quick succession), we are going to bundle these changes under the API 3.0 headline.
Future API versioning
Of course, you are going to want to use development builds because you need them to get MCPE 1.0 support. And of course the stuff we have planned is going to take a while, so we are now using an extended API versioning scheme.
Indev versions of PocketMine-MP will now include a suffix to their API version to indicate what level of changes have been made. This will allow plugin developers to develop for development builds without us needing to bump the API every time somebody makes a BC breaking change. This is intended to provide a measure of sanity for plugin developers so your plugins don't randomly start crashing when you update to a new development build.
The current API version reported by the mcpe-1.0 branch is 3.0.0-ALPHA1. (Some of you may already have noticed that the Travis builds are failing due to DevTools being incompatible API).
Because massive BC breaking changes can happen indev, the system has zero tolerance for incompatible development APIs. For example, a plugin with API 3.0.0-ALPHA2 cannot be loaded with 3.0.0-ALPHA1 or 3.0.0-ALPHA3. Regular non-development API versions will continue to work exactly as they did before, i.e. major different = incompatible, minor different = OK if plugin is older, incompatible if plugin is newer.
Planned changes for API 3.0
[x] Update the core to use PHP 7 features fully (this was intended for API 2.0, but things went a little pear-shaped when we lost shoghicp and this was never completed) - (WIP)
[ ] Level API refactor, support Dimensions, provide API for dimensions
[ ] Command API rewrite, support the new-style plugin commands added in MCPE 0.16
[ ] Block/Item rewrite, redesign hierarchy, find alternatives to having a class for every. single. block. and being a huge mess (or at least a consistent naming scheme!) - (WIP)
[ ] Entity rewrite, component-based design, possibly support addons, provide better plugin API for entities, possibly basic AI (?) - (WIP)
[ ] Network API rewrite, refactor Player->handleDataPacket() into individual packet handlers, possibly modularise networking component - (WIP)
[x] Support server-side resource-packs - basic implementation done on api3/network, improvements to be made but base functionality in place
[x] Inventory rewrite, better transactions (waiting on shoghicp to implement this into MCPE itself)
[x] Refactor generic code into submodules/plugins, such as the NBT library, streams, anti-cheat, etc. - (WIP)
NO ETAs will be given, so don't bother asking for one. This list is also not finalized and may be modified at any time.