-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LevelDB support & other updates #2175
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just had a skim over a few of the core classes. This definitely requires bumping the API to 2.0.
@@ -0,0 +1,4 @@ | |||
package cn.nukkit.utils.material; | |||
|
|||
public interface BlockType extends MaterialType { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do the classes in this package exist?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the time when I implemented it, I wasn't really sure where to put it. Didn't want to use blocks package because it contains already a ton of Block implementations, but I think it will be fine now.
Also it is worth noting this PR is not done yet, so some things are still to be changed/cleaned. But the current state should be at least something that already works and can be tested with.
I my opinion, we shouldn't break all plugins just because a part of the API (which most of them don't even depend on) was changed. You know how many plugin devs are inactive and how much people depend on public plugins. The whole point of releasing this at its current stage is trying to Keep Nukkit alive, avoid having all plugins needed to be rewritten until Nukkit has gained active users and plugin devs again. If we break all plugins, most people are just going to use forks and other software that have already finished their rewrite. If 1.0.20 isn't good, maybe we can do 1.5? |
Continue work started by SupremeMortal on raknet-v2
This PR adds support for LevelDB (version 1.20.10) worlds together with various other stuff from Nukkit PM1E (changelog) including but not limited to:
Jenkins downloads: https://ci.opencollab.dev/job/NukkitX/job/Nukkit/job/leveldb/
For server owners:
Lots of new blocks, items and game mechanics were added
World height was increased and void was moved below the new world height bottom limit
Timings were removed, use spark instead
Support for legacy MCRegion & LevelDB worlds was removed
New worlds are using LevelDB by default
Some commands had changes in their functionality:
Gold and iron ores now drop raw ores instead or ore block
Attacking entities now resets sprinting (player.attack-stop-sprint: false to disable)
Test and update your plugins. Make sure land protection etc. plugins are configured to handle new blocks and items if needed.
Convert worlds using 'convert' command in console to enable new features. Multiple worlds can be converted at once but don't play on the server while converting.
To back up a running server with LevelDB worlds safely, use 'save-off hold' -> backup -> 'save-on hold' (Note: This disables unloading of modified chunks which increases memory usage temporarily.)
For plugin developers:
Contains (at least partially) or should make following pull requests obsolete:
#417, #786, #879, #914 , #1819, #1280, #1493, #1511, #1873, #1908, #1967, #2117
Contains parts of code from other projects: Cloudburst Server, PowerNukkit
Should resolve following issues:
#2178, #2160, #2036, #2001, #2000, #1885, #1706, #1605, #1604, #1593, #1573, #1563, #1540, #1482, #1456, #1383, #1378, #1367, #1340, #1324, #1320, #1200, #864, #846, #839, #785, #733, #702, #698, #660, #497, #444, #418, #398, #325, #272, #116
Co-author: @Alemiz112