* fix: try parsing special block data before blindly applying NBT
* Fix legacy block wrappers with new NBT API (#2361)
(cherry picked from commit 5b674745f17d8ede505857242e5240c6dbeebfd6)
---------
Co-authored-by: Maddy Miller <mnmiller1@me.com>
* Add the bundled data files
* feat: add 1.21.4 adapter
* Update the XTypes/XCategories files
Co-authored-by: Maddy Miller <mnmiller1@me.com>
* chore/fix: update isFullCube to actually check for shape not occlusion
* chore: remove forget packet
* chore: add block connection fixer to adapter
---------
Co-authored-by: Maddy Miller <mnmiller1@me.com>
* feat: implement command to fix block connections
- closes#313
* set SETUP to true on setup
* Add (untested) processing capability and second passes where appropriate
* Minor refactor, add various javadocs
* Minor adjustments
* Better chest handling
* Utilise thread extends when able
* Add strings, changes to fastmode/side effect handling
* Cleanup
* Add for 1.21
* Adjustment for tall flowers - add capability to forcefully override block updates
* Move to Fawe/LinTag
* fix: adjustments, fix certain upside-down blocks
* Add for 1.21.3
* Optimize layer iteration to prevent performance overhead.
Adjusted the layer iteration logic in the Region class to use the minimum and maximum Y-values from the chunk. This prevents unnecessary iterations when getMinimumY or getMaximumY returns extreme values, improving performance efficiency.
* Optimize layer iteration logic in Region class.
Refactored the loop to reduce repeated evaluations by storing pre-calculated min and max values for Y coordinates. This change enhances readability and may improve performance by minimizing unnecessary calculations during the iteration process.
* Update variable naming
* Shift bitwise operations to variable initialization
* chore: update isFullCube to actually check for shape not occlusion
* chore/fix: fix and update snow simulator
* chore: consistent property field naming
* fix: some improvements to GET chunk writing
- ensure levelChunk is loaded before giving to copy GET - this is not necessarily guaranteed to be nonnull if two edits overlap. Whilst not advised, such an easy failure should not occur when two edits collide
* Prevent writing chunk sections when FAWE is also sending packets for a chunk and vice versa
- alter IntPair hashcode to be more often unique
- Utilise ConcurrentHashMap for free synchronisation
* Minor comment changes
* Use one-per-world-instance FaweBukkitWorld to store world chunk map
* fix(#2864)
* Cherry-picked EngineHub/WorldEdit@cfd9eea
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
* Allow metadata tags to be optional + default value for this.origin
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
* Correct depth to be default of `0`
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
---------
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
* fix: adjust linked filter to be left-right and do not link to new forked instances
- Assume that child filters know about their own forks
- fixes#1874
* Remove appliesChunk|Layer for now
* feat: improve fawe limits (#2773)
- add FaweLimit implementations for increasing concurrency levels
- allow FaweLimit to perform processing (and forcefully disable as required) to capture [tile] entities
- Use `BlockVector3#set(Extent orDefault)` where appropriate to reduce block checks
- fixes#2679
- fixes#1874
(cherry picked from commit 6052fc3128)
* fix: actually apply a filter if applied from a full region chunk section
- cannot remember why I made this change in the first place in #2773 but this fixes edits having "empty middles"
- doesn't seem to have broken anything in testing
* Reduce limit to always atomic
- reset "origin"/relative X/Z when larger than short min/max value so we do not write incorrect positions
- history size can be larger than int max value
- fixes#2583