* Ensure that the wand can be used before giving it
* Add a note to //wand about new perm requirements
* It's an item, not an "object"
* Fix checkstyle
This forces the repo file to FULLY OVERRIDE the default locale. Nothing
will be loaded from the default locale in either the config folder, or
the i18n dependency.
* Move to packaged translations
* License that file
* Fix some checkstyle too
* Support reloading translation files
* Add missing dash for unpack directory
* Mark unpacked zips as owner-only
* Added a method to check whether a block can be placed at a location
* Make the snow system only place at locations that it can by game logic
* Make canPlaceAt a default method
* Fixed PR comments
* Use a World field
* Just throw directly
* IAE makes more sense
* Remove unused import
* Check for editsession without a world
* Allow stacking by block units with //stack
* Delegate out the old method
* Use CuboidRegion as the type of the new region
* Fixed up PR notes
* Add docs
* No indent
* Formatting
* Use the bounding box rather than limiting it
* Don't limit to cuboid
* Make the old one use the block unit method
* Update the selection movement too
* Fixed affected being missed
* Use an assertion erorr
* Use block change limit for //copy
* Use a cuboid region for accuracy
* Add a bounding box method to Region and use that
* Update worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
* Fixed throwables being ignored and show a message while waiting for long running tasks
* Fixed checkstyle issue
* Use a better system that's more versatile
* Require a delay message for delayed repeating messages
* Few changes for PR review
* Changes based on feedback
* Fixed weird missed diffs
* Rename fields
* 😟😟😟😟
* 😠
* Fixed an issue where upwards resolved schematics would break schem list
* Missed diff
* PR changes
* Further fixes
* Improve sorting logic
* Pass in comparator rather than using sort type
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
* Add tracing feature to EditSessions
This helps track down what plugin (or more specifically, extent) is
blocking actions from happening.
* Set a trace hook instead of a one-off command
* Correct the logic for determining tracing active
* Fix extra newline in AbstractPlayerActor
* Fix checkstyle
* Improve messaging of trace mode
* Added a snow brush
* Re-add the Apply class for deprecation reasons
* Use the context extent rather than an EditSession
* Only freeze water source blocks.
* Fixed the bind message for snow stacker
* Fixed PR issues
Everything delegates to the original EditSession signature. The new
RegenOptions + EditSession variant is removed, as it was never
officially published. A delegation check was installed in the
NAFC-marked method.
* Convert simulateSnow to an Operation and add stacking support
* Fixed height calculations
* Use a LayerVisitor for SnowSimulator
* Fixed few issues
* Update the 1.16 block mappings, and use isSolid rather than !isTranslucent due to translucent no longer existing. A better solution should come later.
* I feel this is a better temporary check
* Localise the ExceptionConverter
* Further work on localising exceptions
* Everything but input parsing is now localised
* Finish making errors localisable
* Fixed a few notes from review
* Fixed another spot
* More changes
* Specialise parser errors
* Add RegenOptions to the API
* Integerate regen options into //regen
* Rename isRegenBiomes to shouldRegenBiomes
* Go through the EditSession for setting biomes
* Respect 3D biome support in regen
* Add RegenOptions implementation for 1.16 Bukkit adapter.
Co-authored-by: wizjany <wizjany@gmail.com>
* Replace BlockStates reading with new 1.16 logic
* Account for running on older platforms
Splits out the new reading to AnvilChunk16, uses data version to detect
the appropriate version.
* Move data versions to Constants
Also fixes some logic hiccups that become obvious with the new names.
* Fix LegacyMapper DFU handling
* Fix factor indexing
People have issues copy/pasting with this on, so I think for now it's
better to leave it off. If someone needs the special behavior for
setting panes or fences, they can turn it back on.
We do need to investigate the reason why it's not working, and
potentially save validation for post-edit, rather than prior to
placement.
This re-adds a deprecated `//fast` and moves the current logic to
`//perf`. Later `//perf` will have its syntax reworked, when Piston
finally supports sub-commands properly!
* 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
* [Fabric] Test port to 1.16-pre5
* [Fabric] Fix/improve regen implementation
* Cleanup properly in regen
* Cleanup unused interfaces/methods from porting
* Add licenses to new classes
* Allow packages from refactor in checkstyle
* Remove unused imports from WorldGenListener
* Remap the access widener in the dist jar
* [Fabric] Update to 1.16-pre6 (recursion limit)
Requires an update in the Bukkit Adapters later.
* [Fabric] Update to 1.16
May or may not build, depending on how cached everything is.
* 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>
* Use a long to refer to the volume of a region, and rename the method to getVolume
* Fixed issues noted in review
* Forgot to floor
* Fixed review notes
* Can use a long here rather than BigDecimal
* Improve javadocs
* style
* 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>
* Use custom radix sort for ordering blocks
* Licenses :P
* Fix ordering, add test for it
* Grant Gradle more memory (thx Fabric)
* Increase (?) / Specify memory for core tests
* Many attempts at fixing OOM
* 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
Some bits of the Fabric 1.15.2 update were moved into common code.
This is NOT ready yet, tree features still need to be updated. Mappings
are comitted, just waiting for them to come out.
* 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
* Fix flipping of chests and stairs
* Check if the new property value is valid before updating
* Only for horizontal flips double chests/stairs should be modified
Fix `//stack -s [num]` shifting the selection to unexpected places. This fix causes `//stack -s [num]` behavior in diagonal directions to be consistent with the behavior in non-diagonal directions, which means that the last stack will be selected.
* 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