* 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
* feat: implement 1.21
* fix: adjust mojang mapped field name in ChunkMap
* Fix property cache
---------
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
* Add a BiomeCategories API (#2338)
* Add a BiomeCategories API
* licenses
* Use a supplier to retain the lazy-load & dynamicness of the existing system, but still retaining the inversion of control that this PR was intended to provide
* Minor fawe adapter cleanup
* Actually add the new files?
* Fixes
---------
Co-authored-by: Maddy Miller <mnmiller1@me.com>
* fix: improve biome setting to avoid writing directly to chunk
- Removes possibility of writing to the LevelChunkSection biomes PalettedContainer whilst it is being read for sending packets
- I believe this occured mostly on clipboard operations where blocks are written before biomes, so chunks are being sent whilst writing biomes
- This would explain why the error reported in the below issue (and others) is/was so rare
- Of course I could be completely wrong about all of this, but given the line in LevelChunkSection#write that the error seems to consistently occur on is when writing biomes to the packet, and that the only place I can find in FAWE where we write to a "live" PalettedContainer is for biomes, I am reasonably confident that this is the cause
- Should address #2729
* Remove self-refraction-check
* Make the Vector classes into Records (#2477)
* Make the Vector classes into Records
* Drop custom equals and hashCode methods in Vector/BlockVector classes
(cherry picked from commit 0df2b6af4c1ce18b77eedd5c62eeb45011512103)
Signed-off-by: Pierre Maurice Schwang <mail@pschwang.eu>
* chore: cleanup cherry-pick issues, migrate to new methods
* chore: add since attributes to deprecated tags, use MathMan instead of Math std lib for rounding ints
* chore: mark custom hashCode + equals implementations diffing from upstream
---------
Co-authored-by: Maddy Miller <mnmiller1@me.com>