Using java's inbuilt compression algorithms (gzip or deflator both) was
a bit too slow for me.
Fawe is now using the LZ4 compression algorithm, which is super fast. So
fast that I decided to add a default 1 pass of compression to history.
Enabling further compression will do an additional high LZ4 compression.
Streamlined the queue so now the queue doesn't need to be fetched on
each block
Removed block reording from editsession as it alone takes half a
second/million blocks
Replaced block fetch from history extent with optimized algorithm.
Switched to MemoryOptimizedHistory without compression by default. The
increase in cpu is negligable but the reduction in memory is
substantial. Further compression can still be enabled.
history.compress: Enables compression of player history (slower, but
reduced memory usage)
history.use-disk: Player history is saved to disk (slower, but saves a
lot of memory)
As the message bukkit sends can't be configured by the server owner:
I'm sorry, but you do not have permission to perform this command.
Please contact the server administrators if you believe this is in
error.
Code cleanup:
- Slight restructure
- FaweAPI class with some useful functions
- Abstracting some components for future port different versions /
platform
Fixes:
- Fixed lighting issues
- Fixed some async exceptions
- Fixed undo/redo having unexpected behavior
- Fixed support for third party extents
Improvements on the relighting algorithm.
- It's slightly slower but results in more reliable lighting
Queue optimizations:
- Decreased overhead, faster block placement and relighting
- Now supports async biome changes
Block logging:
- Now supports block logging (with BlocksHub)
Schematic streaming:
- Completely bypass the clipboard and "//stream <file>" giant schematics
into the world
Region selection:
- Use "//worldeditregion" to select your current region restriction
Manual relighting:
- Use "//fixlighting" to fix the lighting in your current selection