* 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
* Update to Sponge Schematic 3
Includes a major refactoring of how schematics are read.
(cherry picked from commit bd475b1d4acbcf2a95e5a8f3aee50d2fb2100ae8)
* Licenses lol
(cherry picked from commit a5ce8a47657aa987da8ca625cd658856d2eb3477)
* Fix imports
(cherry picked from commit e1892b7bd4ff0ca4592f8cb4e1b2d9363c4cd6ff)
* Update for final changes
(cherry picked from commit 2f6b50a4276b33b615d9dbc52e73e958308735f9)
* chore: ensure flushed clipboard in spongev2 writer
* feat: initial work on FastSchematicWriterV2
* fix: only write into palette once, write into data as varint
* chore: more work on FastSchematicWriterV3
* fix: make FastSchematicWriterV3 work
* fix/chore: write pos as doubles
* chore: start on reader (class exists at least)
* chore: replace while loop with simple if as char can be max 2 bytes
* chore/feat: more work on the fast v3 reader
* fix: offset must be inverted for origin
* chore: use the actual FileChannel for mark / reset (if present)
* chore: add null check again
* chore: buffer streams in isFormat check
* chore/feat: read schematic fully
* chore: don't hold a lazyreference (seems harder to gc with already computed value?)
* chore: remove debugs
* chore: optimize FastSchematicReaderV3
* chore: remove logger warn for now
* chore: constant not required anymore
* chore/feat: support non-file based inputstreams (using in memory LZ4 cache)
* chore: don't wrap streams unnecessary
* chore: cleanup
* chore: since comment for reader + writer
* chore: FAST_V3 not for testing anymore
* chore: update schematic and clipboard logic for linbus changes
* chore: undo format check on load
* fix: remove usages of old nbt types
* fix: use LinBus in FaweDelegateSchematicHandler
* fix: use ReaderUtil again
* chore: update supported schematic types for Arkitektonika
* chore: check for magic bytes in schematic (not tested yet)
* revert: magic bytes check
* fix: fix paletteAlreadyInitialized + biome placement on linear clipboards
* Update worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicWriterV3.java
---------
Co-authored-by: Octavia Togami <octavia.togami@gmail.com>
Co-authored-by: Hannes Greule <SirYwell@users.noreply.github.com>
Add missing permission node in fawe.permpack.basic in bukkit
If node "fawe.permpack.basic" exist in other platform than bukkit,this minor bug would exist here too,but i lack the knowledge of finding it out.
* 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>
* 1.20.6
Signed-off-by: Alexander Brandes <mc.cache@web.de>
* work
Signed-off-by: Alexander Brandes <mc.cache@web.de>
* More work
Signed-off-by: Alexander Brandes <mc.cache@web.de>
* chore: address more removed fields and methods, make it run
* chore: don't allocate unnecessary arrays (by maps)
* chore: the comment might still be noteworthy
* chore: no need to synchronize twice
* fix obfuscation changes
* remove unneeded deprecation
* make regen work without throwing exceptions - but slow
* fix: error when adapting BaseItemStacks without nbt
* fix annoying paper api breakage
---------
Signed-off-by: Alexander Brandes <mc.cache@web.de>
Co-authored-by: Alexander Brandes <mc.cache@web.de>
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>