* Speed up initial change buffering by removing streams and optional wrapping
* Bump the adapters for an experimental performance boost (Purely Bukkit 1.15.2)
* Bump adapters for fixes
* Bump adapters for further performance boosts
* Migrate fast mode to a BlockUpdates section, allowing fine-grained control
* Rename to SideEffect and clean up usage of the set
* Implement a 'usable' state
* Add a test command to demonstrate SideEffects. This is non-final
* Move //sideeffect into //fast
* Improve the box for //fast
* Switch to a system that includes "delayed" as a mode
* Remove the concept of configurable side effects, all are configurable. And each platform specifies what it supports.
* Implement side effects on other platforms (and spigot versions)
* Only use the side effects from the world editing platform
* Update from review
* Rename WorldApplyingExtent to SideEffectExtent
* More review fixes
* Update the World#applySideEffects return type to return the applied side effects
* Fixed requested changes
* Fixed checkstyle
* Improve setBlock javadocs
* Further improve
* Switch parameter name
* Fixed typo in translation key
* Temporarily remove DELAYED
* static final
* Side Effects = 7.2.0 snapshot
This reverts commit 376f241b7d.
Spigot bad. Also LP bad. This really shouldn't be necessary but it's
probably safer due to all the weird shit spigot and LP do.
* 100s of "Unknown property" warnings in log aren't useful, only drown
out the actual adapter warning
* Most people aren't looking at their console anyway, so hijack the old
Actor#tellVersion to warn of missing adapters.
* Add new experimental snapshot API
This API intends to replace the existing snapshot API in WorldEdit 8.
It is currently experimental, and the old API is soft-deprecated. Once
it is determined to be stable, the old API will be removed and replaced
with this new one.
It uses TrueVFS instead of TrueZIP, due to the latter's status as
matinence-only, and the face that TrueVFS is NIO-FileSystem compatible,
allowing us to integrate it with NIO's native zipfs. The TrueVFS system
does encompass multiple modules, but users and download + install
truevfs-profile-default as a fatjar. We depend on that profile to show
this as the intended solution.
* Port commands to experimental snapshots. Legacy ones are in sibling classes.
* Add many tests, fix bugs
* Clean up imports
* Verify sorting behaviors, fix bugs
* Add license to test
* Add support for DIM region folders
* Fix tests for Windows paths
* Rewrite tests for even more coverage, fix bugs
* Clean up naming on tests
* Add test for legacy format
* Stop trying to abuse `file://`, use `snapfs:` instead
* Simplify iterPaths
* Use File.separator in FS snap tests
* Fix some bugs from T9N PR (#538)
* Use printInfo/printError to keep colors right
* Escape quotes before they go in the map
* I18N-ify new snapshot code
* Rebase translation work for easier rebasing
* Fixed gradle setup
* Further translations
* Add a few more strings
* Remove support for pluralisation to match Minecraft and alleviate issues with over-complexity
* Further translations
* Added a tonne more translations
* Added the remaining translation nodes
* When custom files are found, use the base files for default values.
* Only download translations if a key is provided
* Fixed typo in brush radius too large
* Allow translation files to be missing entries, and use the english version in place.
* Fixed issues brought up in review
* Reverse translation order (#533)
* Fix a lot of PR comments
* Add JD to the Operation warned field due to no private fields in J8
* Only warn when there are messages
* Use commandblock name as session key
* Use a UUIDv3 with a given session prefix
* Use a UUIDv3
* Prefix the UUID and use a charset
* Fixed a few issues with using CommandBlocks
* Remove /worldedit:/ workaround
* Bypass Bukkit in more situations
* Use orElseGet
* Apply the same optimisation in the reverse BlockData adapter, and use lambdas instead of AIC
* Remove bukkit type checks
* Improve reliability of fallbacks
* Re-do commits to avoid awful rebase
* You can load and save a schematic file now. Still gotta setup ability to use commands as a console actor.
* Add a world override concept to LocalSession, and allow a lot more commands to be performed by actors.
* Fixed commands, and set the loaded schematic as the world override in CLI
* Properly load tags
* Added 1.14.4 data values
* Allow a majority of commands to be performed by the console.
* Fixed a lot of PR requested changes
* Added a Locatable interface and use that for getting the location of the player in commands.
* Added script support. Currently requires a newline at the end of the script.
* Shade everything to allow this to run locally - should probably minimize this to an extent later.
* Actually hook up the version
* Added a //world command to set the override
* Fixed a missed checkstyle issue
* Added CommandBlock support to Bukkit
* Make command block support configurable
* Minor cleanup and implementing a few of the final functions
* Fixed most issues from PR
* Improve UX, saving is now automatic and unknown command messages show
* Better save docs and support any clipboard format
* Include the entire formats list
* Arrays.copyOf
* Clear the world override if the selector is called on another world.
* Update logging extent to allow basic logging with non-player actors
* Remove LocatedBlock overhead in LBL map
* Add new space-efficient block map, with thourough testing
* Drop ordering property, add full insertion test
* Add licenses
* Fix mocked platform conflicts
* Disable full block map testing for faster builds
* Re-implement BlockMap with fastutil maps
* Re-write chunk batching to be memory efficient
* Make MultiStageReorder use BlockMap
* Increase LBL load factor, fix long-pack limit detection
* Fix infinite loop in chunk batching
* Save memory in history by cleaning up MSR
* Re-implement LocatedBlockList in BlockMap
* Fix data race with BlockType lazy fields
* Make IDs ALWAYS present, only runtime-consistent. Use for memory efficiency in BlockMap
* Remap inner structure of BlockMap for smaller maps
* Remove containedBlocks fields, not very efficient
* Fix minor de-optimizing bug in stage reorder
* Make long packed y signed
* Add extended Y limit configuration option
* Add licenses
* Store 3 ints for unoptimized BV list
* Add final to BitMath
* Correct int-cast for long-packing
Edge cases might still exist around plugins which use WE for initial
world-gen, or in general plugins that try to access the platform
before it's ready.
The new command now writes a json file to WorldEdit's working directory with instructions on which chunks to delete, which is read by the plugin/mod at startup and calls the ChunkDeleter.
The chunk deleter parses the json and iterates the instructions, backing up .mca files as it goes and overwriting the offset headers with 0 wherever a chunk needs to be deleted.
This allows Minecraft to reclaim the space used for that chunk, as well as forcing it to be generated from scratch next time the area is loaded.
All patterns now have suggestions, including recursive patterns.
Suggestions will suggest blocks and block states.
All masks now have suggestions, though mask intersections are not
yet supported due to issues with quotes strings.
EntityRemover and ItemFactory now also have completions, as well
as all RegistryConverters (though I am unsure how many are actually
used).
Also use paper's AsyncTabComplete event, if available.
Allows setting a mask used for block traces. This allows brush tools to
pass through various materials, such as water (e.g. `/tracemask #solid`
or `/tracemask !air,water`) before starting to build.
By default, a null mask is equivalent to #existing (original behavior).
https://gfycat.com/ImmaculateFrayedCockatiel
Legacy mapper now uses the data fixers to upgrade blocks and item types
(e.g. signs, dyes that changed names in 1.14).
The sponge schematic reader can now attempt to use the data fixers to
upgrade blocks, block entities, biomes and entities. This has been
tested with the 1.13 -> 1.14 changes. It is yet to be seen if it will
continue to work because...
The mc edit schematic reader has code for using data fixers, but it is
currently disabled as there seem to be some issues with fixing up older
block entities.
Closes a few old youtrack issues which I don't remember because I had
like 30 tabs open, and a few other issues which I found while testing
some of those.
Refactored PaginationBox to be abstract. Implementations can generate individual components as needed now.
Add lots of Component usage to schematic list, help listings, etc.
Fix a few schematic and file resolution issues.