Minecraft has a lot of different methods between private and public to determine if structures can be placed. We cannot possibly cover all of them whilst also ensuring issues do not arise with generic "true"s
* 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
* 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