* Add a feature generator and allow undoing of feature placement [WIP]
Apply changes to Forge as well
Use proper translatable components
* Add a brush version of the feature command
Use Java proxy classes
* Add for Bukkit (only 1.19.3 for now)
Clean up the proxies to use a switch
Checkstyle is grumpy
Add the obfuscated versions
Remove debug text
Fix missed "destroyBlock" deobfuscated proxy function
* checkstyle
* 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