* 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
- remove ChunkHolder locking concept as this is no longer needed
- previously we obtained the copy from chunk GET on finalize, meaning the copy could be replaced by a "newer" one (bad)
- work around this issue by introducing concept of "unique" keys to map chunk GET copies to
- correctly handle resetting of various chunk-related classes to actually allow pooling to work
- remove chunks as they are submitted when flushing a SingleThreadQueueExtenting
* feat: improve fawe mask handling
- Actually cache masks, even if the player has left the region
- Fix P2 isValid test for single plots
- Fixes#1946
* Fix incorrect delegated method
- It's very resource-intensive and probably doesn't work anyway
- Tick limiter should not be enabled by default, it confuses a lot of people with the console logs
- This isn't necessarily targeting any fix, but I think we should be ensuring a ticket is being added to chunks "access asynchronously", as done by the getChunkAtAsync method
* fix: invalidate cached FaweMask when a plot is unlinked
- FixesIntellectualSites/PlotSquared#3998
* Use a weakly-referenced copy of the copnncted plots set
* Add paper adapter for 1.19.4
* Add paper module for 1.19.4
* Port 1.19.3 to 1.19.4
* Switch to Paperweight release
* Update worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_19_R3/PaperweightAdapter.java
Co-authored-by: Antti Koponen <koponen942@outlook.com>
* Update worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_19_R3/regen/PaperweightRegen.java
Co-authored-by: Antti Koponen <koponen942@outlook.com>
* Add 1.19.4 to release template
* Update refractions for regen support
* Bump paperweight
---------
Co-authored-by: TheMeinerLP <p.glanz@madfix.me>
Co-authored-by: Antti Koponen <koponen942@outlook.com>
* 1.19.3
* More fixes
* fix: compile time issues for 1.19.3
* fix: new mappings and GeneratorStructureState
* Add 1.19.3 to release and issue template
* Update dependencies for 1.19.3
* Update worldedit-bukkit/adapters/adapter-1_19_3/build.gradle.kts
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
* avoid usage of ticking chunk future on paper
* fix entity handling
* fix entity handling but on spigot
* seems like no one uses spigot
Co-authored-by: Alexander Brandes <mc.cache@web.de>
* Don't do the unbelievable bad use of a MutableBlockVector2 in the creation of a set
- FixesIntellectualSites/PlotSquared#3683
* Clean up remnants of the use of MutableBlockVector2
* Only synchronise tree generation at the very lowest level
- Fixes#1681
* Perform the generate inside try-finally and actually use the resultant copied map to place blocks to the editsession
* Check result of generateTree and return null if failed
* feat: Add support for 1.19
* build: Update paperweight version
* fix: obfuscated names, invalid method signatures
* avoid NPE on config access
* build: Update paperweight
* implement no-op light engine to avoid stalled tasks that never complete
* Apply DelegateSemaphore fixes to 1.19 (#1782)
* Apply DelegateSemaphore fixes to 1.19
* Fixes
* Avoid using PalettedContainerRO#recreate as much as possible. Show an error or warning when we're forced to use it to help fix (#1784)
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
Co-authored-by: SirYwell <hannesgreule@outlook.de>
Co-authored-by: Jordan <dordsor21@gmail.com>
* Fix DelegateSemaphore synchronisation issues on Spigot
- Also effectively nullify it on paper - the synchronisation on the object is enough
* Remove unneeded imports
* the set array given in NMSAdapter should have get data written to it
- Fixes#1664
- May fix#1700
* Having target size >= 2* parallel threads allows for adjacent chunks to be loaded with issues
* "empty" chunk section doesn't need to be localised to the chunk and may be static
* Switch to slightly more performant stream method for testing for non-empty sections
* Implement lock into ChunkHolder preventing any modification to occur whilst the edit is being applied to the world
(when ChunkHolder is called)
* Add config note about target-size
* set ordinal equal to air if both set and get are `__reserved__`
* Add note to checkAndWaitOnCalledLock method of its use
* Don't print exception and throw
* Switch to a wrapped StampedLock allowing reentrant behaviour
- StampedLock is not reentrent
- Allow unlock from a different thread only if it provides the correct stamp
- This stamp can only be retrieved by the thread owning the lock
* Avoid some "doubling-up" of using checkAndWaitOnCalledLock
* Unbloat `checkAndWaitOnCalledLock`
* Add since tags
* Check cached bukkit player is the same as the current player online
- If plugins do silly things like teleport, deop (anything that requires a perm-recheck) (anything that ultimately requires a BukkitPlayer at some point) then the retention of metadata by the server (as it's stored based on a string value indescriminate of player a player relogging) means that a BukkitPlayer caching an old player object will be kept, cached and retrieved by FAWE. Adding a simple memory-based equality check when the player rejoins, and then "invaliding" (redoing) the cache if the players are not equal, fixes this.
- Fixes#1730
* Address comments
* Add comment explaining reference equality check to code
* Implement getNameUnsafe method to allow an unloaded world's name to be accessed
- Fixes#1671 and #504
* Add javadoc since tag
Co-authored-by: Alexander Brandes <mc.cache@web.de>
Co-authored-by: Alexander Brandes <mc.cache@web.de>
* fix: ignore uuid v2 for BukkitPermissionAttachmentManager
Fixes a memory leak that attaches and caches PermissionAttachments to NPCs. Citiziens uses version 2 UUIDs, which are not used for regular player uuids. Those v2 uuids are now excluded.
* fix: create Permission when required
* fix: use citizens documented way to check for NPCs
* Make postProcessSet a default method and change to void
* Throwable#getMessage is nullable
* Move (re-)ticking to a post-processor per "platform"
- Add fluid ticking
* chore: Ignore (for us) irrelevant rules
* chore: Fix correct toml syntax?
* Re-add removed method for API-compliance and refactor it to have a use
* Switch to javax annotations
* Switch to recalcBlockCounts for ticking blocks.
* No need to set air count anymore either
* We can still "not tick" in fast mode in 1.17.2
* update adapters
* Let paper create the chunk section if biomes are null
* Adjust notes to settings
* 1.17.2 didn't exist
* Add 1.18.2
* Don't attempt to cache plains biome ID
* Use correct annotation
Co-authored-by: NotMyFault <mc.cache@web.de>
* Re-add "//snap" and "//snapshot"
* Place code in correct method
* Use CompoundBinaryTags in AnvilChunk18 and implement biome/entity restoration
* Address comments
* Fix biome reading
* Fix retrieval of entities from zipped snapshot world
Co-authored-by: Alex <mc.cache@web.de>