* Allow API detection of the biome fuzzer in use
This allows us to warn, fix, or optimize biome edits to the overworld.
* Drop edits to Y = 0 for biomes in overworld
* Re-work ArbitraryBiomeShape to simplify logic
Also fixes not being able to use THE_VOID with it
* Initial work on 3D biomes. Not implemented for Bukkit, and history is unfinished
* Further implement 3D Biomes. It's now usable on Forge/Fabric
* Fix a few cases of apply. Gotta fix the deprecated methods at some point
* Add Bukkit support
* Add clipboard support. Schematics are still not great, but the Sponge schem format doesn't support this yet.
* Fix the last of the issues
* Fixed up review comments
* Fixed review notes
* Simplify
* max is inclusive
* Standardize non-abstract compatibility handling
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
* feat(i18n): use a translation loader to allow CB/WG to use WorldEdit's TranslationManager
* Replace the old ResourceLoader with the new one
* Make ResourceLoader per-platform
* Update worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java
* Improve the impl to allow a default
* Update based on review suggestions
* Local resource should be pathName too
* Delegate to getRootResource, and prevent pathName from starting with /
* HTML
* Format javadoc a little better
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
* Delay command block active update if needed
If we are checking if a command block session is active, and we are not
on the main thread, schedule a task instead to update the active status
eventually, rather than waiting on the main thread.
Fixes#1284.
* What's that? Non-static state, you say?
Just saw we have a field for the plugin here. Might as well use it.
* Check if chunk is loaded for sender before type
* Deprecate BiomeRegistry, etc.
* Update some libraries, e.g. text
* Move to new translation renderer
* Revert "Deprecate BiomeRegistry, etc."
This reverts commit 59a5d6c92aec52739a8dc68ac3d23898af7593dd.
This was not a good idea for potential mod shenanigans.
* Move BiomeData#getName to BiomeRegistry, use i18n
* Use getRichName instead of getName
* Implement getRichName for NullBiomeRegistry
* Add getRichName for blocks
* Relocate net.kyori.minecraft
* Update adapters for getRichBlockName
* Add getRichName for items
* Update adapters for getRichItemName
* Update adapters JAR for merge
* Optionally validate placed blocks
This allows re-connection of fences, chests, panes, etc.; removal of
blocks in invalid states; and more!
The Connections side-effect already did this for neighbors, so this is
now renamed to Validation for accuracy, and left on by default.
This also fixes some inconsistencies between the Fabric & Forge
markAndNotifyBlock function.
* Add forge comment to fabric world
* Add WorldNativeAccess common logic
* Add Fabric WNA
* Add Bukkit WNA for adapters
* Fix imports for new Fabric mappings
* Pass raw world ref to Bukkit adapters
* Remove client-only block update call
We always assume a server world.
* Allow WNA impls to inspect side-effects
* Update adapters for WNA
* Licenses
* Fix adapter JAR
* Generify EVENTS side effect
* Update adapters for EVENTS change
* 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