Since there's no new NMS revision (we're still on R3...?!) but there were changes, it would be more difficult to maintain both 1.16.4 and 1.16.5. Therefore, let's just stop supporting 1.16.4 as 1.16.5 is a minor update regardless.
Fixes#859
- Add a "loadPrivately" method to be used when GetChunks are called to avoid synchronocity issues with super classes being used on different threads
- Synchronise the call method so we're not attempting to call whilst also loading/updating
- We don't want to flush if we're setting from the main thread, as that's going to be another plugin doing it
- It's better to have a concurrent error thrown than use a concurrent set, so concurrency issues can actually be fixed rather than handled unsafely
- Only send chunk packets up to once a tick (it really doesn't use any memory to cache IntPairs).
* Get rid of FastSchematicReader/Writer and document changed JNBT classes
This commit includes changes from upstream to the schematic classes
(`com.sk89q.worldedit.extent.clipboard.io`). It also documents the JNBT
classes, specifying what has been changed in FAWE. This was done in preparation
for the upcoming move to adventure-nbt.
The PlotSquared schematic handler classes will now use SpongeSchematicReader/Writer rather than FastSchematicReader/Writer.
This is yet untested and the entire branch is a W.I.P.
* Fix JNBT mutability misuse in FAWE
FAWE previously had mutable compound and list tags. The previous commit changed that, and this commit will fix misuse of the tag API.
I've tried to identify the places where mutability was assumed, but I might have missed something. This needs quite extensive testing.
This is yet another change which increases upstream compatibility in FAWE.
* Fix FAWE_Spigot_<..>#getEntity
* Fix JNBT usage in the AsyncBlockState code
* Readd FastSchematicReader/Writer and add a new schematic format (`FAST`)
* Update dead repository
* Implement missing AsyncChunk#getTileEntities
* handle entities properly and add "brokenentity" format
* Fix fast schematic reader
lazily reading means it's read in order of appearance in the inputstream so we need to read schematic version first (skip past everything) and then reset the stream
* Fix p2 FAWE
* Go back to fast schematics in P2/CompressedSchematicTag (#819)
* Fix compile
Co-authored-by: N0tMyFaultOG <mc.cache@web.de>
Co-authored-by: Alexander Söderberg <Sauilitired@users.noreply.github.com>
Co-authored-by: dordsor21 <dordsor21@gmail.com>
Co-authored-by: Aurora <aurora@relanet.eu>
* Full support for 3D biomes
Since we're only supporting 1.15+ there's no need to try anything other than compatibility
* this is not part of the PR
* Clipboards should still always be y 0 for biomes
(this "bug" has existed for ages)
* Several fixes to actual, probable and possible synchronocity issues
- Ensure that all edits are queued onto the same AsyncNotifyQueue by actually delegating to the parent player in PlayerProxy
- Ensure that the order editsessions are being remembered on the LocalSession is being respected by using a fair ReentrentLock
- Ensure a chunk cannot be called when an update is being called
* Don't add locks to GetBlocks
Javadoc and Formatting fixes.
Also, extremely minor code changes which have been tested.
This commit is only part one of two commits that aim to fix problems with formatting in our project. In part two I will modify the Google Java Style Guide (since it closely matches our code style) for our project so there is guidance on how to format and document.
* Updated PlotSquared URL
* Removed plugin acronyms
* Fixed a typo
* Fixed grammar
* Use modern block id's
* Update YouTube video URL
* begin allowing "post processing" of chunks
- restores legacy capability to continue saving edits in the background after sending the chunks
- speeds up the edit clientside
- nail in the coffin of the terrible and staticly coded coreedit
- We should totally make IronGolem work so Core* is no longer used by anyone
* begin allowing background history saving
* Handle post processors in queues properly
* Use futures for postprocessing so we're not waiting for them needlessly
* better use of closed boolean
* Reword
* Replace BlockStates reading with new 1.16 logic
* Account for running on older platforms
Splits out the new reading to AnvilChunk16, uses data version to detect
the appropriate version.
* Move data versions to Constants
Also fixes some logic hiccups that become obvious with the new names.
* Fix LegacyMapper DFU handling
* Fix factor indexing
(cherry picked from commit 8c171f0929e8530aab1731d122649adc58c5161f)