FastAsyncWorldEdit icon

FastAsyncWorldEdit -----

Blazingly fast world manipulation for builders, large networks and developers.




Fixes

- fix: entity fixup in sponge v3 schematics (#3115)
- Make #clipboard in height brush work again (#3098)
- Restore Spigot compatibility @9)
- Fix mutability issue leading to wrong behavior in //ascend and //descend (#3101)
- fix: try removing attachment and fail silently if not attached (#3089)
- Update workflows to use upload-artifact v4 (#3097)
- feat: do not wait for chunk loads when calling (#2912)
- Restore spigot compatibility after #2356 (#3086)
- fix: use a holder to allow "upgrading" LocalBV3Set to a full fat one (#3051)
- fix: fork texture util where required (#3054)
- Make EditSession available via Request again (#3070)
- Fix BatchProcessor ordering in MultiBatchProcessor (#3048)
- fix: add nullable region confirm enum (#3052)
- fix: don't lock for chunk packets/section write on main thread (#3059)

✨ Features

- feat: improve output with better-entity usage (#3114)
- feat: Using Block Registry to Replace Iterating Over the Material Enum (#3057)
- Improve BiomeMask performance (#3082)
- feat: do not wait for chunk loads when calling (#2912)
- Add pale oak tree variants (#3087)
- feat: improved entity operations (#2356)

Changes

- Locality-aware chunk distribution (#3102)

✅ Chore

- Support single y level processing using Vector API (#3103)
- Optimize AngleMask (#3072)
- Avoid ThreadLocal lookup in ParallelQueueExtent (#3096)
- chore: make update-checker more configurable and link other download pages (#3091)
- Remove outdated CraftChunk#getHandle workaround (#3095)
- Only compute solid blocks once (#3068)
- Simplify and deduplicate PaperweightGetBlocks#update logic (#3055)
- Check for last chunk before acquiring lock (#3066)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.13.0
----------, Feb 23, 2025

Fixes

- fix: anglecolor (#3043)
- fix: correctly save block orientations in structure schematics (#3033)
- fix: make RegionMaskingFilter upstream compatible again (#3030)
- fix: spawner type in pattern (#3042)
- feat: implement command to fix block connections (#2746)
- Optimize layer iteration to prevent performance overhead. (#3022)
- Fix //snow (#3019)

✨ Features

- Allow lazy-loading chunk section data when using Vector API (#3035)
- 1.21.4 (#3021)
- feat: implement command to fix block connections (#2746)
- Reduce lock contention caused by regen pattern (#3046)
- Simplify heightmap calculation and avoid loading empty sections (#3045)

✅ Chore

- Simplify NMSAdapter#createPalette methods (#3036)
- Reduce code duplication of PaperweightBlockMaterial (#3041)
----------, Dec 29, 2024

Fixes

- Move some classes to their expected location (#3004)
- Send forget packet to avoid invisible chunk sections (#3005)

✅ Chore

- Synchronize bundled data with WE (#2999)
----------, Nov 24, 2024

Fixes

- fix: correctly check for properties in thaw/snow (#2976)
- Un-break for versions \<1.21.3 (#2988)
- Make property changes more robust (#2962)
- Fix direction changes for //undo (#2972)

✨ Features

- 1.21.3 (#2974)
- feat: alter clipboard thread to move all clipboard loading from main thread (#2867)
- feat: improve error handling for state property operations (#2975)
- Allow stacking by block units with //stack (#1539) (#2973)

✅ Chore

- Deduplicate adapter fields into superclass (#2967)
----------, Nov 19, 2024

Fixes

- Fix vectorized CountFilter (#2943)
- Use default nbt when parsing blocks (#2945)
- Fix ChunkHolder tile set delegation (#2949)
- Use data version provided by MC (#2955)
- fix: don't require WEOrigin / WEOffset in MCEdit schematics (#2936)
- fix: update to changes to spigot chunk future result (#2934)
- Fix NBT stripping and trimming (#2929)
- fix: some improvements to GET chunk writing (#2853)
- fix: apply origin to sponge v3 schematics @#2909)
- fix: adjust linked filter to be left-right and do not link to new forked instances (#2913)
- fix: add timeout to reading history from exchanger (#2920)
- Fix tile copying (#2922)
- feat: improve fawe limits (#2773) (#2858)
- Revert history writing using LinBinaryIO

✨ Features

- Implement vectorization of #existing and inverse masks (#2927)
- feat: improve fawe limits (#2773) (#2858)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.12.0
----------, Oct 25, 2024

Fixes

- fix: compound tags can be nullable when converting state to baseblock (#2914)
- Fix regen on modern versions (#2881)
- fix: account for spigot having private PalettedContainer#get(int) (#2910)
- fix: allow webinterface schematic format to be detected (#2901)
- fix: don't process out of bound section while trimming Y sections (#2902)
- fix(GriefDefender): invalidate mask on claim change (#2903)
- fix: hollow on large areas fails (#2900)
- Fix: Copy-Paste-Brush with falsy mask (#2899)

✨ Features

- Introduce basic support for Vector API (#2890)
- Faster undo operations (#2898)
- Avoid map lookup in `isMovementBlocker` calls (#2906)

✅ Chore

- Avoid deprecated CompoundTag in API (#2883)
- Replace usages and overrides of deprecated getSuggestions method (#2891)
- chore: warn when both history db and delete disk on logout are enabled (#2824)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.11.2
----------, Sep 15, 2024

Major features

- Support 1.21.1 (#2877)
- Support Sponge Schematic v3 (#2776)

Fixes

- fix: do not StackOverflow when getting a section in FULL after awkward trim (#2863)
- fix: correctly resolve file if extension is given (#2857)
- fix: improve FAWE stream history (#2844)
- fix: improve schematic format selection (#2838)
- fix: improve SchemGen, allow null mask (reordered command args) (#2817)
- fix: use new index calculations for BlockVectorSet remove (#2842)
- Fix parseFromInput Method for Masks and Patterns When Called via API (#2839)
- fix: clone polyhedral region last triangle too if present (#2807)
- fix: switch to 3d where 2d biomes still remain in a couple of places (#2816)
- Use isMovementBlocker() instead of isSolid() in heightmap calculation (#2822)
- fix: override min/max pos methods from SimpleClipboard (#2803)

✨ Features

- feat: improve fawe limits @dordsor21 (#2773)
- feat: add litematica error when failing to load schematic (#2850)

Changes

- Add worldedit.tool.none to fawe.permpack.basic (#2827)

✅ Chore

- chore: deprecate FaweApi#load for clipboards as it does not allow closing (#2852)
- Compile with target java 21, remove unsupported MC versions (#2836)
----------, Aug 11, 2024

Major features:

Support for 1.21


Fixes

- fix: only write copied value if non null (#2802)
- fix: extract new config option for deleting disk history on logout )
- fix: correct y index addition in biome history (#2797)
- fix: correctly process chunks when using worldguard region blacklists (#2789)
- fix: create new biome paletted container when writing )
- fix: take confirm-large from default limit for unlimited, add option to override (#2782)
- fix: always init ChunkFilterBlock to the chunk (#2788)
- fix: recover from trimmed chunk (#2771)
- fix: correclty create Minecraft Structure format schematics (#2787)
- fix: improve biome setting to avoid writing directly to chunk (#2757)
- fix: allow use of quotes to allow spaces to be used as "and" (#2786)
- fix: ensure config-legacy.yml is created before accessed (#2752)
- Fix more upstream incompatibilities (#2767)
- fix: normalize layer when setting ordinal to ThreadUnsafeCharBlocks (#2764)
- fix: correctly trim the max chunk section (#2753)
- fix: improve how we determine if using FAWE from jenkins (#2754)
- fix: ClassCastException on spigot (#2751)

✨ Features

- feat: implement 1.21 (#2808)
- feat: add option to prevent parsing legacy blocks to the FaweLimit (#2783)
- feat: implement graceful world bounds check where appropriate (#2804)
- Add a BiomeCategories API (#2338) (#2777)
- ref: switch from adventure NBT to LinBus (#2778)
- feat: add #hotbar mask and pattern (#2769)
- feat: allow NBT on wand items (#2755)
- feat: schematic share system, add missing Clipboard method for api compat (#2745)
- feat: move limits for (brush, superpickaxe and normal) radii to fawe (#2635)

✅ Chore

- ref: switch from adventure NBT to LinBus (#2778)
- chore: address deprecations from new records (#2768)
- Fix more upstream incompatibilities (#2767)
- chore: address deprecations in vector classes (#2750)
- Fix compatibility with WorldGuard (#2743)
----------, Jun 30, 2024

Major features

- Support for 1.20.5/6 (#2721)
- Drop support for 1.18.x
- Move to Java 21

Fixes
- fix: add missing blocktypes and some minor cleanup (#2722)
- Fix error on adapting custom entities / entity types (#2674)
- Fix heightmap brush with imgur images (#2680)

✨ Features
- feat: only unstuck a player if configured to do so (#2723)
- Integrate WE Schematic Share system (#2619)
- feat: introduce migrating config nodes to new locations (#2642)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.10.0
----------, May 19, 2024

Breaking changes

- Drop support for 1.17.1, for older versions, use the "Version History" tab.

Fixes

- fix: introduce approx size to patterns and use in ScatterBrush (#2631)
- Make usage of stateful patterns thread-safe (#2633)
- Use correct find class in ExtentTraverser (#2649)
- Fix Linear pattern index incrementing above array length (#2626)
- Fix queryRel returning data value for block at absolute coordinates
- fix: imgur image resolution, image input stream reading (#2637)
- Update paperweight 1.20.4 - isOpaque does not exist (anymore) (#2629)
- fix: better image reading errors @632)
- fix: do not error when attempting to parse "|" as a pattern (#2625)

✨ Features

- feat: save region selector to session store (#2621)
- Implement linear patterns using RandomPattern + SimpleRandom (#2630)

✅ Chore

- Simplify processor ordering (#2651)
- Reword tree type message (#2628)
- chore: deprecate transform extent for removal (#2623)

Documentation updates

- List FAWE class additions in Javadocs (#2659)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.9.2
----------, Apr 4, 2024

## Fixes

- Make sure to process all chunks in PQE even if PARALLEL\_THREADS = 1 (#2611)
- fix: correctly (de)serialise ItemType (#2620)
- fix: set and clone Expression Environment after Expression cloning (#2617)
- fix: do not forcefully direct to x,y,z methods in AbstractDelegateExtent (#2614)
- Maintain insertion order for RandomPattern sub-patterns (#2603)
- fix rollback database query (#2591)
- Use actual radius for inverse and adjust inside region check (#2582)

## Changes

- Allow factory suggestions to have parser context (#2613)
- Decrease lock contention in SingleThreadQueueExtent (#2594)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.9.1
----------, Mar 15, 2024

Fixes

- fix: correct the delegated methods in AbstractDelegateExtent (#2365)
- fix: add chunk loc to tile entity location when trimming (#2500)

✨ Features

- feat: add switch to allow removal of entities on paste (#2525)
- feat: add config option for if the DOC should lock the file channel (#2526)

✅ Chore

- chore: add a more informative error when parsing block properties (#2524)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.8.4
----------, Dec 22, 2023

Breaking changes

- Drop support for 1.16.5 and 1.17 (#2497)

Major features

- Add support for 1.20.3 and 1.20.4 (#2512)

Major bug fixes

- fix: fixed history rollback (#2367)

# Fixes

- fix: set biome biome on clear (#2510)
- fix: fixed history rollback (#2367)
- Only unlock if previously locked (#2489)

✨ Features

- Use FastSchematicReader by default (#2478)

✅ Chore

- Unify the limit permission (#2420)
- Reuse generateTree code across versions (#2482)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.8.3
----------, Dec 8, 2023

Fixes

- Fix NullPointerException due to nullable source extent in ExtentEntityCopy (#2447)
- fix: add null check for block targetted with inspect brush (#2443)
- Addresses issues related to maven publish scm block (#2435)
- fix: set villager offers temporarily to save NBT without sending event (#2357)


✨ Features

- feat: fake the copied biomes (#2359)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.8.1
----------, Oct 9, 2023

Major features

- Add support for 1.20.2 @NotMyFault (#2431)

✅ Chore

- Avoid Unsafe usage where possible @SirYwell (#2403)
- Clean up some regen code @SirYwell (#2405)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.8.0
----------, Sep 29, 2023

Fixes

- fix: Do not tab complete if command not owned by FAWE @Boothin (#2386)
- fix: disallowed regions can be length 0 @dordsor21 (#2368)
- fix: don't warn on release build @dordsor21 (#2369)

The full changelog is available on GitHub: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.7.1
----------, Aug 26, 2023

Major features

- Update PlotSquared integration to support v7 and drop support for v6.
Make sure to update PlotSquared to v7 too when updating FAWE @NotMyFault (#2075)

Fixes

- fix: do not clash ChunkHolder recycling with processors that extend outside the chunk @dordsor21 (#2353)
- fix: do not retain clipboards that completed exceptionally @dordsor21 (#2358)
- fix: make IdMask thread-safe @dordsor21 (#2361)
- fix: correct NBT for spawners @dordsor21 (#2362)
- fix: regions not trimming Y correctly when restricted @Paul19988 (#2363)
- fix: fix adding/getting masks to/from MaskExtent when it is a processor @dordsor21 (#2351)
- fix: fix command brush @dordsor21 (#2347)
- fix: ensure chunk is loaded when getting entities @dordsor21 (#2323)
- fix: correctly invalidate mask after a plot is merged @dordsor21 (#2333)
- fix: ignore clipboard origin when pasting to match P2 behaviour @dordsor21 (#2336)

✨ Features

- Implement async notify queue that submits to a KeyQueuedExecutorService @dordsor21 (#2334)
- feat: implement a new "type swap" pattern @dordsor21 (#2346)
- feat: re-submit chunk load request after 10s after checking world is loaded @dordsor21 (#2339)
- feat: synchronise disk clipboard loading and deletion to clipboardLock @dordsor21 (#2342)
- feat: provide some information upon OverlappingFileLockException @dordsor21 (#2341)
- feat: allow bracketless '%' pattern definition @dordsor21 (#2322)

✅ Chore

- chore: deprecate some methods that ought to be removed @dordsor21 (#2340)
- refactor: use HttpClient for update check @SirYwell (#2331)
- Deprecate support for 1.16.5 @NotMyFault (#2338)
- refactor: some changes that may help #2289 @dordsor21 (#2307)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.7.0
----------, Jul 22, 2023

## Breaking changes

- Drop support for minor 1.19 versions (1.19, 1.19.1, 1.19.2 and 1.19.3 (#2316)

## Fixes

- fix: ensure mask is initialised upon visiting a point in BreadthFirstSearch (#2314)
- fix: fix regex block masking (#2242)
- fix: uncache the chunk SET at a better time in ChunkHolder to prevent "lost" changes (#2300)
- fix: towny max bounds are exclusive (#2301)
- fix: add missing BlockType constructor (#2306)
- fix: always return the changeset from EditSessionBuilder (#2302)
- fix: use new array when creating palette (#2305)
- fix: don't "double-up" a setblocks if a region is being set (#2299)

## ✨ Features

- feat: improve (region) fawe mask handling (#2312)
- feat: implement removal of entities if they would be in a block after the edit (#2311)
- feat: add new tree types to tree tool and brush (#2286)
- feat: send one of an error message during edits if otherwise squashed by LimitExtent (#2246)

## ✅ Chore

- refactor: efficiency improvements to some editsession methods (#2304)
- chore: Address kotlin String#capitalize() deprecation (#2308)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.6.4
----------, Jun 29, 2023

## Major features

- Update to 1.20 and 1.20.1 @NotMyFault (#2276)

## Fixes

- Update \& Fix TownyFeature support. @LlmDl (#2279)
- Set proper field access and use mappings for entities on spigot @SirYwell (#2282)
- Improve exception handling on adapter loading @SirYwell (#2277)

## ✨ Features

- Update \& Fix TownyFeature support. @LlmDl (#2279)

The full changelog is available on https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.6.3
----------, Jun 12, 2023

FAWE for 1.20 is now available!

Support our work at https://github.com/sponsors/IntellectualSites/
----------, Jun 9, 2023

Fixes

- fix: correctly processSet with blacklist when required (#2270)
- fix: minor changes to fix loading blocks outside stored range in ThreadUnsafeCharBlocks (#2260)
- Fix BlockEntity#remove spigot mapping (#2264)
- Adapt breaking changes in Towny (#2254)
- fix: Improve edit processing (#2247)
- fix: only send invalid region messages with debug true (#2238)
- fix: fix universal disallowed blocks logic in limit and EditSession compilation (#2237)
- fix: create single threaded executor for use with non-concurrent generators (#2236)
- fix: correctly handle creation of extents in EditSessionBuilder (#2232)
- fix: more intuitive limit permissions (#2233)
- fix: correctly in initialise unlimited limit (#2231)
- fix: correct issues with processor scopes (#2230)
- Fix reading of tile entities with "id" instead of "Id" tag (#2211)
- Revert "Actually delegate in AbstractDelegateExtent" (#2229)
- Properly scale the random in SimpleRandomCollection (#2220)
- Fixes command context for bukkit console command sender (#2193)
- Actually delegate in AbstractDelegateExtent (#2196)

## ✨ Features

- feat: implement a player-specific queue for clipboard IO tasks (#2267)
- feat: improve error when loading biomes (#2241)
- feat: configurable image hosts (#2243)
- feat: add -r (random rotate) flag to schem load and clipboard brush (#2244)
- feat: make more commands unqueued (#2235)
- feat: allow captions in SuggestInputParseException (#2239)
- Fix reading of tile entities with "id" instead of "Id" tag (#2211)

## ✅ Chore

- Optimize PR builds (#2273)
- chore: improve queue documentation and submit history to better queue (#2266)
- chore: minor improvements to processing-related code @dordsor21 (#2271)
- Archive PR artifacts (#2269)
- Extract common code when resizing arrays (#2257)
- Avoid many threads blocking on AbstractChangeSet#processSet (#2226)
- refactor: switch to EnumSet for heightmaps to improve performance (#2248)
- chore: remove firework-chunk-loading prevention and default tick limiter to false (#2234)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.6.2
----------, Jun 7, 2023

Fixes

- Ensure regen step not running on the main thread @SirYwell (#2185)
- Address incompatibilities after CraftChunk changes in spigot @SirYwell (#2179)
- Simplify command dispatch to ensure command order @SirYwell (#2131)
- fix: Ensure BaseBlock is not returned when a BlockState is wanted in BlockTransformExtent (#2161 @dordsor21 (#2161)
- fix: invalidate cached FaweMask when a plot is unlinked @dordsor21 (#2157)
- fix: add null-check for brush in traceMask @dordsor21 (#2160)

✨ Features

- chore: add chunk tickets to all chunks accessed @dordsor21 (#2163)
- feat: improvements to clipboard on disk @dordsor21 (#2162)

✅ Chore

- chore: add chunk tickets to all chunks accessed @dordsor21 (#2163)
- Fix Misaligned SVG In IJ project view @TheMeinerLP (#2174)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.6.1
----------, Apr 23, 2023

Major features

- Add support for 1.19.4 (#2154)

Fixes

- fix: clear above and below plot gen heights if build heights are larger (#2153)
- Make custom toArray methods fulfill the method contract (#2089)
- Fix off by one error for negative coordinates when using -r with //deform -red (#2092)
- Fix FAWE using exclusive build height from PlotSquared (#2123)
- Fix reading block states in no redo mode (#2119)

✨ Features

- Add nether tress into floating tree remover (#2146)

Changes

- Use unsynchronized buffered OutputStream for history @SirYwell (#2127)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.6.0
----------, Mar 18, 2023

Fixes

- Linear Patterns require flooring division @SirYwell (#2079)

✅ Chore

- Remove PlayerMoveEvent listener and deprecate MovableTool @SirYwell (#2083)
- Use Pattern Matching for instanceof in PropertyKeySet @SirYwell (#2086)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.5.2
----------, Feb 7, 2023

Fixes

- fix regex and remove forbidden windows characters @Xaver106 (#2012)
- Fix: remove unnecessary bypass permission @TheJonstone (#2060)
- fix: don't quash a cancellation FaweException in LimitExtent @dordsor21 (#2068)

✅ Chore

- Remove usages of JoinedCharSequence @SirYwell (#2062)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.5.1
----------, Jan 23, 2023





Fixes
Fix region restrictions with methods non-overriden (#1948)
----------, Oct 4, 2022

Fixes

- Fix #saturate-Pattern (#1944)

✨ Features

- Retrieve the latest asset release version automatically (#1947)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.6
----------, Sep 21, 2022

Fixes

- fix: use proper level data for regen (#1921)
- fix: avoid recursive LegacyMapper initialization (#1922)

✨ Features

- Support future paper chunk system changes (#1884)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.5
----------, Sep 5, 2022

Fixes

- fix: Lazy fix macro stacktrace (#1911)
- fix: upstream missing `Region#getBoundingBox()` (#1908)

✅ Chore

- chore: Update assets to 1.19.2 (#1900)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.4
----------, Aug 24, 2022

Major features

- Add support for 1.19.2 (#1898)

✅ Chore

- Improve `MainUtil#copyFile` (#1888)
- chore: Use 1.19.1 asset URL (#1889)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.3
----------, Aug 6, 2022

Major features

- feat: Add support for 1.19.1 (#1887)

Fixes

- fix: use servers removeGameEventListener instead of reimpl (#1881)

✅ Chore

- chore: Reword light command messages (#1885)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.2
----------, Jul 28, 2022

Fixes

- Correct return type for CuboidRegion#getFaces() upstream compatibility (#1866)
- Getting correct String from CompoundTag (#1867)

Documentation updates

- docs: Use rootProject.name over project.name for javadocs title (#1859)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.1
----------, Jul 12, 2022

Major features

- Re-implement full Entity support in history, entity removal, entity creation, etc. (#1812)

Fixes

- Fix walls command on 1D/2D selection (#1821)
- Actually implement ChunkHolder/ChunkSet pools (#1840)
- Use Material rather than legacy int/data when specifying block break effect type (#1829)
- Account for use of MutableBlockVector3 in Spline Brush (#1831)
- Set the correct delegate to the ChunkHolder when using get or set in NULL delegate (#1830)
- Bring stack in line with upstream using offset rather than direction (#1822)
- Support using //distr on console properly (#1827)
- Actually apply source mask when using //paste -m \<mask> (#1810)
- Fix #fullcopy -r (#1816)
- Don't limit split size for extra block data (signs, spawner, etc.) (#1818)
- Allow editing solely of tiles/entities/heightmaps (#1817)
- Fix saving entities in DiskOptimizedClipboard when no tiles are present (#1815)
- Don't do the unbelievable bad use of a MutableBlockVector2 in the creation of a set (#1825)
- Properly support extended world heights (y > 255) in tripleBlockCoord (#1805)
- Fixes to BlockMask and "char" masks (#1787)
- The extent minY check in clipboard paste is un-needed as it is handled gracefully by FAWE (#1806)
- Fix PNGWriter exporting blank PNGs (#1807)
- Processor should be added to queue, not extent (#1809)
- Prevent unhinged tree generation by doing a sanity check on the block below/block of the tree placement (#1811)
- Use the correct CuboidRegion constructor to prevent clipboard height being limited when loading schematics (#1798)
- Only create entities during a restore if they are contained by the region and the editsession's mask (#1800)
- fix: Run GriefPrevention region check in sync (#1804)
- fix: Suppress Tuinity light exception on 1.16 (#1801)
- Don't apply offset to SimpleClipboard (#1751)
- Only implement cache to MaskingExtent when off main thread (#1789)
- Command block messages should be sent on the main thread as it causes a block update (#1796)
- Only synchronise tree generation at the very lowest level (#1788)

✨ Features

- Assume a file not being in a subdirectory of root means a symlink is used (#1838)
- Re-implement incremental schematic names in a folder (#1833)
- Implement a "sensitivity" setting, a mask, and an option to only distinguish air vs blocks to blendball (#1832)
- Implement generation of biome decorations to //regen \<biome> and add option for a random seed to be used (#1819)
- Implement limits to image size and load times (#1790)

⚙️ Changes for plugin developers

- fix: Don't export Paster transitively on the core module (#1808)

Documentation updates

- docs: Publish javadocs to GH pages (#1824)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.4.0
----------, Jun 27, 2022

Major features

- feat: Add support for 1.19 (#1783)
If you find anything not working as expected on 1.19, please file an issue on the issue tracker: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/new/choose

Breaking changes

- Support for 1.18 and 1.18.1 has been dropped.

Major bug fixes

- Some fixes and improvements to internal queuing (#1715)

Fixes

- Fix DelegateSemaphore synchronisation issues on Spigot (#1781)
- Fix `//snowsmooth` not working below Y0 (#1769)
- Avoid int overflow when using fillr in negative coords (#1711)
- Some fixes and improvements to internal queuing (#1715)
- Implement biomes to filter blocks and use in Clipboard pasting (#1743)

✨ Features

- Allow NBT stored in DiskOptimizedClipboards to be written to disk as a compressed byte array at the end of the file (#1745)

Changes

- build: Switch to bom (#1778)
- Add block break effect to area pickaxe (#1770)

✅ Chore

- chore: Drop WEManager#cancelEditSafe() logger (#1779)
- Update PaperMC repository URL (#1756)
- Attach assets to GH releases (#1754)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.3.0
----------, Jun 10, 2022

Major bug fixes

- Fix some horrendous code where methods supposed to return a boolean only ever return true (#1718)

Fixes

- Don't error when loading a schematic fails (#1744)
- Respect clipboard settings (disk vs memory) when loading a schematic (#1742)
- Allow use of BlockVectorSet for large //line selections instead of LocalBlockVectorSet (#1713)
- Cherry pick upstream commits to fix SideEffectSet (#1737)
- Check cached bukkit player is the same as the current player online (#1732)
- Don't initialise a DiskOptimisedClipboard before checking for an existing one in the LocalSession when using loadClipboardFromDisk (#1731)
- Implement getNameUnsafe method to allow an unloaded world's name to be accessed (#1712)
- Set empty block count when using fastmode on 1.17 (#1710)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.2.0
----------, May 18, 2022

Fixes

- Fix NSME error on Spigot 1.16.5 when using brushes (#1706)
- Fix Invalid pattern replacement / block category mask (#1694)
- Use correct class to look up lock field in 1.17 (#1697)
- Fix memory leak by Citizen NPCs (#1693)

Features

- Show # of affected blocks in //set command (#1703)

Chore

- Emphasize project icon in idea selection (#1708)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.1.2
----------, Apr 19, 2022

Fixes

- Simplify internal id lookup logic for biomes (#1677)
- //regen creates vanilla decorations without error (#1650)
- Fix tabcomplete for random pattern / multiple pattern (#1675)
- Remove hardcoding of heightmap compressed long size (#1668)
- Don't call `ticking_list` on Spigot (#1655)
- Don't error when adding processors to NullExtent, simply do nothing (#1654)

Chore

- refactor: removed unused variable (#1684)
- Avoid Unsafe on paper (#1678)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.1.1
----------, Apr 4, 2022

Major features and improvements

- Support for 1.18.2 (#1641)

Fixes

- Fix `//regen -b` on 1.18.2 (#1647)
- Fix 1.17 snapshot restoration (#1632)
- Don't allow heightmap-based brushes to edit the entire world "depth" (#1617)
- Fix //snapshot in 1.18 and re-implement biome/entity restoration (#1620)
- Load legacy config file before firing PlatformsRegisteredEvent (#1623)
- Fix clipboards to allow proper heights by allowing extended CuboidRegion heights (#1624)
- Fix angle mask not working below Y 0 (#1618)
- Fix surfacespline not working below Y 0 (#1616)
- Fix: Set size of MappedByteBuffer accordingly if no file system entry is present (#1608)
- Fix: Add coordinates to tile-entity nbt component for undo (#1607)
- Only call `org.bukkit.World` height methods if they're present (1.17+) (#1551)
- fix: `/fawe debugpaste` not working on 1.17 and lower due GSON incompatibility with Paster library (#1583)

Features

- Add fluid ticking and refactor post-processing a bit (#1554)
- Support PlotSquared's expanded world heights (#1581)

Chore

- Replace JB occurrences with JSR 305 (for now) (#1651)

Tests

- Remove stub server test class (#1629)

Click here for the full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.1.0
----------, Mar 10, 2022

Fixes

- Deduplicate error messages (# 1557)
- Fix: GriefDefender integration for GD 2.0 onwards (# 1546)
- fix: Unify superpickaxe behavior with our aliases (# 1553)

Full changelog: https://github.com/IntellectualSites/FastAsyncWorldEdit/releases/tag/2.0.1
----------, Jan 27, 2022

We took the chance and introduced long overdue breaking changes within 2.0.0.

As of 2.0.0, Fawe is no longer available on our maven repository (mvn.intellectualsites.com), it's now published to the central repository. Take a look at the wiki how to update your buildscripts: https://github.com/IntellectualSite...cumentation/wiki/API-Usage#gradle---fawe-core

People using the API may need to update their addons, if they didn't address outstanding deprecations in the past. The `EditSessionBuilder` in the `com.fastasyncworldedit` package has now been removed, we recommend to use the `EditSessionBuilder` provided in the WorldEdit packages.
Static accessors have been deprecated for removal in favor of builders, affected classes are `DBHandler`, `FaweCache`, `Settings` and `TaskManager`. We recommend to use the provided builders, depending on the classes, your IDE recommends to use.
The getter and imp in `Fawe` have been deprecated for removal as well in favor of the instantiators `instance()` and `platform()`, depending on the implementation class you want to use.

If you encounter something not working or working different than it used to be, please raise an issue on our issue tracker: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues
Thanks in advance!

Our maven repository (mvn.intellectualsites.com) is on its sunset and moving away on January the 24th. Make sure to remove it from your build scripts, otherwise you will encounter issues. Checkout the wiki above, if you're unsure how to do that.
On another note, if you have https://ci.athion.net/ in your build scripts, you can remove it as well. Our Jenkins instance does not serve the artifacts you are looking for, this used to cause issues for API users in the past.
If you're looking for snapshots, add S01 Sontaype Snapshots ( https://s01.oss.sonatype.org/content/repositories/snapshots/) to your build script and you can access -SNAPSHOT builds of the FAWE API.

Other changes worth to note :
Major features and improvements


- Update for 1.18(.1) (#1482)

Fixes

- Heightmaps used for brushes etc. should be normalised to zero. (#1522)

Changes

- Add worldedit.schematic.list.other permission and functionality (#1507)

Chore

- Put Fawe version information at debugpaste top (#1533)
----------, Jan 14, 2022

FastAsyncWorldEdit v2.0.0-SNAPSHOT

This version contains preliminary support for 1.18 and 1.18.1. Taking frequent backups is recommended. Read further for the download link. Please report issues to the issue tracker, if you find something not working or working different compared to 1.17: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/new/choose
The build supports all versions the 1.17 build used to support: 1.15.2, 1.16.5 and 1.17.1 but requires Java 17 instead of Java 16.

Known issues: `//regen` is currently not implemented , loading the plugin on 1.18 throws a `NoSuchFieldException` for 1.17 methods that can be ignored for now. That has been resolved, updated FAWE!

If you haven't noticed yet, Fawe uses a different version scheme than in the past. We're now using SemVer like all of our other projects do. Any version you download from Jenkins contains a `-SNAPSHOT` tag which does not reflect whether a build is stable or not, it solely displays that you downloaded a build from Jenkins.

Additionally to note, the `config-legacy` has been renamed to `worldedit-config` for better visibility. New installations will create the new file name by default, upgrades will rename the file during the first startup.

Download: https://ci.athion.net/job/FastAsyncWorldEdit/
----------, Dec 21, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

Fixes
:
- Fix lack of handling of custom world heights in CharFilterBlock
- Fix `-f` flag for falling blocks
- Fixed `//regen` not respecting the state of mob spawners [#1314]
- Fixed ellipsoid selections
- Fixed fuzzy regions
- Register missing commands under our command namespace
- Fixed `//sel list`
- Fix very specific issue where charmasks (< > $ etc.) are used with other masks, but only the charmask is used
- Fixed an issue with `//smooth` [#1143]
- Fixed issues with schematics containing big identifiers (~50k chars) [#1114]
- Fix expression evaluation method used for generatebiome
- Fixed multi server clipboard issues [#1317]
- Fixed clearclipboard not clearing clipboards on disk [#1325]
- Fixed bubble columns not being drained [#1326]
- Fixed `#fullcopy` pattern not working [#1327]
- Don't allow area pickaxe outside max y [#1331]

Changes:
- Correct description of strip nbt
- Uppercase library artifacts (-libs -> -Libs)
- Adjusted a few command errors
- Use a MaskTraverser to set extent where it will be a WorldWrapper otherwise
- Address javadoc violations
- Remove needless EditSession#getWorld for setting blocks/biomes in a couple of cases
- Default to a meaningful preload chunk count
- Big fix to clipboards when relogging/restarting server etc:
- Refactor the way FAWE clipboards work slightly with regards to offsets (FAWE-added) and origin (upstream-present)
- Better error messages when exceptions are thrown attempting to load DOC
- No longer attempt to resolve old clipboard versions. Attempt to give informative error instead
- Don't always delete clipboards held in memory on player logout unless configured to do so
- Go back to fully closing the DOC on logout. We now attempt to lock the file which will hopefully help with debugging shared clipboard folders
- Default per player schematics to false
- Allow console to execute commands now that editsessions etc. accept actors [#724, #1044]
- Better error message for LocalBlockVectorSet
- Don't allow edits on plots when owner is offline and player is only added [#1313, #1307]
- Improved wording of allowed-plugins message [#1341, #1319]

Additions:
- Add switch to schem loadall to replace existing clipboard(s)
- Add configurable disallowed states for limits, global disallowed blocks [#1312, #1047, #171, #162, #39]
- Added update notifications if new builds are available [#1361, #1348]
- Implement `//restore`-ing biomes and entities
- Support for Mojang mapped jars
- Implement region blacklisting: better handling for freebuild worlds with several types of regions [#1318, #683]
----------, Oct 21, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Fixes
:
- Fixed `//fill` not working when x or z coordinate is negative [ #1238]
- Fixed rotated clipboards outside 90 degree angle not working nicely [ #1241]
- Fix nullability issue with SnowHeightMap mask
- Fixed AIOOBE on //undo on large selection when used with custom heights [ #1243]
- Fixed clipboard pattern stating unknown pattern [ #1250]
- Fixed history shenanigans when using Fawe alongside PlotSquared [ #949]
- Fixed history being bound to a `Player` [# 1217]
- Fixed selection when not working if not received thru command [ #826]
- Fixed issues with older history versions [ #1237] [ #1236]
- Fixed certain slab types being treated improperly [ #1265]
- Fixed StackOverflowError on PlayerQuitEvent [ #749]
- Fix exceptions being squashed RegionVisitor preloading
- Fixed rotating around x/z-axis does not work with walls/fences [ #1285]
- Fix raise and lower deform brushes [upstream 1889]
- Fix indexing and custom world heights in HeightmapProcessor
- Use default blockstate internal id for creating blockstates from their serialised form [ #1294]
- Fixed clipboard being null, when saved in central folder [ #1291]
- Fixed mask restrictions not working on specific terrain angles [ #727]
- Fixed pattern `#fullcopy` not working [ #736]
- Fixed `You cannot alter blocks in a PostProcessor` being triggered when the actor is not in a post processor
- Fixed ZSTD JNI bindings on distros shipping dated libzstd versions
- Fixed `//replace` doesn't work anymore using a polygon selection [ #1303]
- Fixed `//schem unload` [ #1049]
- Fixed `//paste -o` [ #990]
- Fixed missing permission message for tile entities [ #1310]
- Fixed flipping/rotating not preserving connected blocks [ #1311]

Changes:
- Removed `-s` of //smooth in favor of `snowsmooth` provided by upstream.
- Improve exceptions; kick more exceptions further up the pipeline to be more likely to be shown to player and allow parsing of FaweExceptions during commands to better give information to players
- Clean up ChunkHolder slightly, only trim chunk get if not already present
- Optimise HeightmapProcessor (around 16x faster)
- Improve notes on getting the stored section range/refactor method name
- Simplify MaskFilter slightly
- Improve thread safety of LocalBlockVectorSet
- Better error in MathMan#tripleSearchCoords for handling of the error in some cases
- Deprecate the SpongeSchematicReader/writer in favor of the FastSchematicReader/writer
- Make blocking executor a fair policy; safer if we're submitting lots of chunks for recursive operations. These chunks should be handled in the order they're submitted so we don't handle a chunk that's been submitted twice (possible) in the wrong order
- Improve CachedMask a bit - no need to unwrap/wrap blockvectors, allow extents to be parsed
- Improve javadocs on BlockArrayClipboard, ensure correct clipboard is used for BlockArrayClipboard's parent clipboard
- Improve Fix needless complication of section position methods in CharBlocks children
- Don't accept values smaller than parallel threads for target size; smaller than parallel threads implies any time any thread tries to do anything, another thread must cancel its work, and the chunk is submitted.
- The artifact ID has been changed to a fully qualified name; check the wiki how you need to update your build scripts if you are working with the API.
- Use an object array for synchronising on internal chunk sections rather than the sections array itself
- Improve regen slightly. Slight speed increase by reducing number of passthrough methods called for biome setting/getting.
- Adjust mask managers; add list of "exclusive" managers to config to aid users in having some sort of prioritisation [ #960]
- Adapt upstreams' EditSessionBuilder [ #922]
- Changed artifact id to `FastAsyncWorldEdit-<module>` instead of `FAWE-<module>`, if you are using the API, you need to adjust your artifact name to the previously named pattern (or check the wiki for copy/paste examples).

Additions:
- Add javadoc linking
- Added `worldedit.error.unknown-direction` translation key
- Support custom world min heights when processing heightmaps
- Go into more detail about tree types not being there because version
- Added an example plugin to the config outlining the format how to add a plugin to the fawe extent
- Allow meta assignments to work with per world permissions [ #1294]
- Allow scatter command brush to use FAWE commands. Best for scatter sphere, etc.
- Add `//blob` command equivalent to `//br rock`
- Added a flag to `//copy` for setting the origin of the Clipboard to the center of the defined region [ #403]
----------, Sep 19, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Major fixes:
  • Custom world heights
  • Preloading re-implemented
  • Rich mask parsing (`//mask >[grass_blocks&%[20]]&stone` etc.) re-implemented
  • Blocks changes to chunks by players shortly before edits occasionally being forgotten
  • If there are more than 256 blocks in a chunk section, the packet will not actually be sent properly
  • Much faster edits where chunks are already loaded by the server

Fixes:
  • Transform functions not working on double slab [#1122]
  • Fixed `//br layer` not working [#1071]
  • Fixed Fawe no longer working with modern Towny [#1201]
  • Fixed scrambled message when using WorldGuard's blacklist [#756]
  • Fixed SurvivalModeExtent on superpickaxe
  • Fixed tree generation outside allowed regions [#1219]
  • Fixed `//removeabove` & `//removebelow` not removing blocks
  • Fixed `//history rollback` [#959]
  • Fixed JUnit tests on 1.17
  • Fixed `//br image` not working [#1008]
  • Fixed using multiple masks within the same command [#509]

Changes:
  • Improve performance of various commands/actions. Added chunk preloading to RegionVisitor if supplied with a suitable Extent [#1073]
  • Brush assignment messages are now translatable
  • Improved chunk rendering issues after operations in chunks with complex block palettes [#1228]

Additions:
  • Ability to flip & rotate levers & buttons vertically
  • Added `//br snow` (Missing upstream addition)
  • Ability to `//undo` tree operations such as `/tool tree` or `//forestgen`
  • Added thickness parameter to `//hcyl` and `//br cylinder -h`
  • Ability to use Fawe with datapacks that expand the world height outside of 0 -> 256 [#1134]
  • Added more preloading to commands that use region selections that don't use a visitor that preloads itself.
  • Reimplemented the following pattern: `#anglecolor`, `#averagecolor`, `$`, `#buffer2d`, `#color`, `#darken`, `#lighten`, `#desaturate`, expression parsing, `#linear`, `#mask`, `#!x`, `#!y`, `#!z`, `#offset`, `#fullcopy`, `#spread (#randomoffset)`, `#relative (#~, #r, #rel)`, `#saturate`, `#solidspread`, `#surfacespread`R
  • Reimplemented the following transforms: `#linear3d`, `#linear`, `#offset`, `#pattern`, `#rotate`, `#scale`, `#spread (#randomoffset)`
----------, Aug 17, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Fixes
:
- Fixed issues with clipboard operations (//flip, //rotate etc.) throwing an AIOOBE if the clipboard contained a door
- Fixed (ingame) documentation of clipboard brush suggesting improper flags (-p instead of -o)

Changes:
- Better exception handling of certain methods.

Note for developers:
- This release addresses some refactoring. Ancient and unfitting package names have been removed in favor of moving classes to proper packages with fitting names.
- If Fawe-specific classes have been added to WorldEdit packages, the change has been noted in a `package-info.java` file in the specific package.
- If Fawe modified WorldEdit methods in WorldEdit packages, appropriate annotations have been added covering the range of the modification.
----------, Jul 23, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.


Fixes:
- Fix legacy schematics imports
- Fix rotation issues where errors were spewed and the paste was cut off
- Fix /history distr
- Fix generation commands setting blocks outside the selection
- Fix //butcher
- Fix occasional NPE when setting blocks due to heightmap errors
- Fix undo for //caves and //brush populate schematic`
- Fix //stack <amount over 1>
- Fix inspection of FAVS edits
- Fix issues with stair rotation
- Fix rotation in x/z axes (//rotate <y> [x] [z])
- Fix issues with undo/redo being able to be used in regions you have left/deleted
- Fix residence plugin checks
----------, Jul 19, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Additions:
- Support for 1.17.1
----------, Jul 9, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Fixes:
- Fixed Fawe not loading on Java versions prior to 16. (Throwing "This FAWE version does not fully support your version of Bukkit."... etc. message.)

Additions:
- Added a config option debug making debug messages toggleable.
----------, Jul 9, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release.

Fixes:
- Fixed issues when loading & pasting schematics
- Fixed exception when building locally
----------, Jul 2, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.17/

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. This is a beta release

Fixes:
- Fixed //wand throwing an error
- Fixed FloatTag not extending NumberTag

Changes:
- Improved conversions between Legacy NBT and Adventure NBT.

Additions:
- Added `fawe.error.schematic.not.found` to translation files
----------, Jul 1, 2021

This is a development build of FastAsyncWorldEdit for 1.17.
Use it with caution on your own peril on a non-production server. Some functionalities are not implemented yet.
Download the "FastAsyncWorldEdit-Bukkit-1.17-#.jar" build from https://ci.athion.net/job/FastAsyncWorldEdit-1.17/ if you want to test it out.
Please report any kind of issues to the issue tracker so they can be addressed: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues

For developers:
Fawe has been repackaged under "com.fastasyncworldedit.<module>". A quick sed replace will get you thru it, classes weren't moved out of their packages.
See https://github.com/IntellectualSites/FastAsyncWorldEdit-Documentation/wiki/API-Usage if you are looking for copy/paste examples for your pom/build scripts.
----------, Jun 23, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- FAWE freezing during various types of edit (usually iterative edits such as fill and fillr) and preventing any further FAWE operations until a server have now been mitigated and should no longer occur.
- FAWE now works on Java 1.16, and it is recommended you update to Java 16 in preparation for Minecraft 1.17's requirement for on it.

Changes:
- Sending before history (makes edits faster and greatly lessens chances of deadlocks) is no longer considered experimental, and is enabled by default, and the configuration option has moved out of the experimental section into the history section.
----------, Jun 8, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

**Fixes**:
- FAWE freezing during various types of edit (usually iterative edits such as fill and fillr) and preventing any further FAWE operations until a server have now been mitigated and should no longer occur.
- FAWE now works on Java 1.16, and it is recommended you update to Java 16 in preparation for Minecraft 1.17's requirement for on it.

**Changes**:
- Sending before history (makes edits faster and greatly lessens chances of deadlocks) is no longer considered experimental, and is enabled by default, and the configuration option has moved out of the experimental section into the history section.
----------, Jun 8, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

A recent snapshot for 1.17, 21w19a, now requires Java 16 or greater. This is great news and opens the door to modern Java, but what does that mean for Fawe?

As announced previously on our discord server or thru Fawe itself at your console, Fawe will now require a minimum Java version of 11 before jumping straight to 16. The later bump will be announced separately.
You can already use Fawe on Java 16, but may experience a few issues until all reflections and deprecations are addressed. This will take some time until 1.17 arrives.
A recent commit removed the nashorn scripting engine in favor of JEP 372, now we are using rhino, like WorldEdit, which works on versions equal or newer than Java 15.
----------, May 14, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- `//listchunks` throwing a component error
- Fixed pasting biomes under Y 0 throwing an AIOOBE
- Certain exceptions are no longer thrown endlessly
- Block properties not being sorted alphabetically in a schematic's palette as used by Minecraft itself
- Fixed JUnit tests

Changes:
- Fawe now uses components to form its messages at spots which didn't do so previously.
- Changed oak stair shape to straight in legacy.json
- `//drawsel` range increased based on the server version; 20w16a, a snapshot for 1.16, allows structure blocks to cover a range of 48x48x48 instead of 32x32x32
- `//toggleplace` now takes an actor over a player
- The external jar classpath, used for rhino or truevfs, now fits the Fawe classpath
- Improved performance when having many history files saved to disk
- Compiling Fawe locally now appends the commit hash checked out rather than using a local cached build number
- Now returning false if `Entity#remove` is unsupported
- `web.shorten-urls` has been removed as it does not work with self hosted schematic interfaces, nor is it safe to use, as per-design. You can safely remove the entry from your config.yml
- zstd is now relocated properly, as intended, under our classpath. This caused issues with other plugins also shading zstd without relocating in the past.

Additions:
- The creation of a Relighter is now abstracted into a RelighterFactory. That allows to create different relighters on different platforms while keeping the code at those places clear. Heightmaps are now send properly too when doing edits. The config option `lighting.do-heightmaps` has been removed, you can safely delete it from your config.yml.
- Every message in `FastAsyncWorldEdit/lang/strings.json` is now colorable using legacy components with ampersands. In the future we might add a future proof system like MiniMessage allowing you to color messages with hex colors in a sane way.
To get the latest version of the file, simply delete the `lang` folder. Fawe will generate a new one for you.
- `Pattern#applyBlock` has been added in favor of the deprecated `Pattern#apply`
- Exceptions and loggers have been enhanced. If something is no longer supported or not supported on your environment, Fawe will now tell you why and what you can do to fix it.
----------, May 13, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- Allow `none` as image in height brush
- A few fixes in regards of ChunkHolder & missing synchronization have been applied.
- Some issues with the long range build tool have been fixed.

Changes:
- A variety of illegal reflective operations have been addressed in favor of Java 17 and higher (but a lot more are still left to do)
- Fawe will now fail gracefully if assets are not available and provide you with instructions how to install those manually.
- In favor of the CLI addition, the Fawe jars now contain their module name in the jar. If you want the plugin, pick `-Bukkit`, if you want the CLI `-CLI` and so on.

Additions:
- The permissions `worldedit.cui` and `worldedit.timezone` have been added for the associated commands.
- Added note about (invalid) schematics being loaded and how to do it properly.
- Fawe-CLI has been added in favor of a command line tool to perform operations. You can read more about the CLI here: https://madelinemiller.dev/blog/introducing-worldeditcli/
- The permission for `//sel` has been added to the `fawe.permpack.basic` permission pack
- A missing translation for improper material has been added
----------, Apr 4, 2021

This update is to both LEGACY (1.8.8-1.12.2) and latest (1.15.2-1.16.5) FAWE. We recommend updating to these versions immediately

Download the latest 1.8.8-1.12.2 version here: https://ci.athion.net/job/FastAsyncWorldEdit/

Legacy:
- Add a stop-execute timer by default on tab completions
- Add configuration options for tab-complete execution-time and enabled-status

Download the latest 1.15.2-1.16.5 version here:
https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Latest:
- Update to 1.16.5 (due to internal changes to spigot without a version change and the obvious issues that causes, 1.16.4 is no longer supported)
- Fix NPEs when attempting to relight
- Fix errors that halt relight progress and cause issues with chunk sending
- Fix a NPE issue when using the API to make custom masks
- Fix some issues with using WNA asynchronously, or using the "slow" mode of FAWE
----------, Mar 7, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- Fixed various deadlocks
- Fixed NBT in memory and CPU optimized clipboards
- Fixed mask air not working well on empty chunk
- Fixed a variety of (im)mutability issues
- Fixed a few WNA issues on non Paper-based servers
- Fixed NPE with null source mask on move
- Fix for OPs when "not being in a region"
- Fixed //rotate not properly working for angles <90
- Fixed rotate/flip applying in the wrong order
- Don't //confirm everything twice
- Fixed //snow creating layers where it should not to

Changes:
- Skip reading WorldEdit schematics for bad entities
- Don't ParallelQueueExtent if the editsession is created on the main thread.
- disableQueue stops buffering, switch to enableQueue to buffer when "//move"ing
- Set source masks that include the editsession's allowed regions to ForwardExtentCopies
- Slight changes to WNA caching
- Put MCEdit before sponge and query by file extension (Massively reduces loading time a few addon plugins that are literally only trying to get the format of a schematic)

Additions:
- 1.16.5 support
- Add missing y variable to generate biome
- Added 3D biomes to clipboards properly
- Added an API method to get the path to the schematics folder (`WorldEdit#getSchematicsFolderPath()`)
- [BETA] Automatic relighting
----------, Jan 16, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Update notes, please read the following carefully:
The latest build has fixed considerable issues when using "send-before-history: true" (i.e. between 2 and 8 times speed increase in visible world-editing).
Before this build, tile entities may have been removed when executing history commands and blocks that were placed between edits/using history commands may not have remained/been removed properly (including other edits).
This configuration option will remain under experimental for the foreseeable future until enough brave editors have tried it with success. We recommend using this option if and only if you have frequent (hourly) backups for the time being, however, from our (slightly limited) testing, the aforementioned issues have not yet occurred (can't prove a negative, so that doesn't mean they don't still exist! If you discover one, please raise an issue on our issue tracker) and so we are happier to advise people that this option is "not quite so experimental".

If you have "send-before-history: true" and run a //set on pre-loaded chunks you might find upwards of 50mil blocks/sec being set (if you ignore the number it tells you cos that's wrong at the moment).
This improvement also has the added bonus of not having other people editing affect the speed of your edit nearly as much if at all (for those that want to know, there was some very needless synchronisation between edits which has now been rectified).

Fixes:

- Fixed writing invalid tile entities to schematics
- Fixed odd biome placement of //replace $savanna $jungle_hills (example)
- Fixed chests and other containers being empty after undo/redo
- Fixed "-f" flag for //ceil and //up
- Fixed AIOOBE when using fixlighting on a big selection
- Fixed //snow and //thaw not updating grass blocks properly
- Fixed //undo not working for //line
- Fixed brush size 0/1
- Fixed //image and image brush
- Fixed //distr and //count not counting all air blocks and natural warped roots
- Fixed //hsphere only creating a few blocks
- Fixed loading of invalid schematics (Formerly known as "This schematic version is currently not supported)
- Fixed origin point not being read and used when loading and pasting schematics.


Changes:

- The clipboard (//copy) is no longer limited to max. 2147483647 blocks.
- Correctly "offset" entities in the schematic, and add a legacy mode for loading old FAWE schematics with entities required.
- Add an FAWEVersion to the metadata of schematics created, allowing us to use the FastSchematicReader over sponge to load, read, and write schematics way waster.
----------, Jan 1, 2021

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- Regeneration command not being registered
- Fix `//chunk` text and clarify the y-index in the help text.
- Fixed undo/redo not working from console/commandblock
- Fix variable argument functions in expressions
- Deprecate the non-Pattern methods in EditSession and fix a recursion loop
- Fix missing stacker tool message
- Correct typo from max world height of 265 to 256
- Fixed issues with `//set #copy`
- Fixed issues with biome replacements (`//setbiome savanna` -> `//replace $savanna $jungle_hills`)
- Fixed an issue with chunks not being send properly if paper's no-tick-view-distance is in use
- Fixed `//distr` not always counting all air blocks
- Fixed brushes not being able to unbind if bound to blocks
- Fixed an NPE within `//schematic list`

Changes:
- Identify as FAWE when yelling at the user if they run an unsupported environment
- Improved invalid schematic message if the schematic misses a key

Additions:
- Added permissions `worldedit.toggleplace`, `worldedit.analysis.sel` and `worldedit.tool.none` for the associated commands.
- Added translation for `/toggleeditwand`
- Added `-w` flag to butcher for water mobs
- Make block positions copy on click for `//size`
- Removed Y limits if a region has no world
- Added crimson and warped fungus tree types to the tree generator
- `//setbiome` now acts 3D as well
- Added a note if the server runs an outdated Java version
- Added the config options per-player-file-size-limite and per-player-file-num-limit allowing to limit the amount or file size of schematics a player can create
----------, Dec 13, 2020

Download: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/

Fixes:
- Fixed tab completion for biomes and tree types
- Fixed tab completion for brushes and many other commands
- Fixed copying of complex entity parts (e.g. players, since you can't copy them)
- Fixed a few minors with missing translations keys
- Fixed deadlock with `//confirm` and permission/limits

Changes:
- Optimized biome retrieval during `//regen`

Additions:
- Added 1.16.4 support
- Reimplemented `#offset` mask
- Implemented biome-specific `//regen`
- Full support for 3D biomes
----------, Nov 3, 2020

Fixes:
- Fixed entities not being rotated when using //rotate
- Fixed toggle commands (e.g //wea, //tips, etc)
- Fixed unsafe memory access using cross server clipboards
- Fixed issues with the clipboard not being flushed on logout
- Fixed `/brush copypasta`
- Fixed issues regarding various deadlocks performed by various actions
- Fixed sponge schems not loading when created in 1.13.2
- Fixed `//jumpto [world,x,y,z]`
- Several fixes to actual, probable and possible synchronicity issues

Changes:
- Reformat `/fawe debugpaste` showing more helpful information
- Major Javadoc and formatting fixes
- Improved queue edits (Synchronising on the LocalSession ends up being dangerous as it's a craftbukkit thread, leading to blocking issues if something goes wrong in an edit, made worse by the fact craftbukkit threads like to interfere with each other sometimes, and also cause OOMs and hanging when there are too many of them.)
- Rename FAWE Threads to be more identifiable.

Additions:
- Allow parallelization of masks (Increasing performance improvement with increased masking complexity and edit size.)
- Make various operations relying on a single SingleThreadQueueExtent instance (mainly brushes) thread safe
- Added `//regen` back
- Reimplemented biome pattern (`$<biome>` and `#biome[<biome>]` can be used again like a regular pattern (and therefore in combination with noise patterns like `#simplex`, or even better, `#voronoi`)
- Reimplemented `#linear2d[<pattern>]`, `#linear3d[<pattern>]`, `#buffer[<pattern>]` and `#existing` pattern.
As an addition, linear2d and linear3d can now be scaled, making them even more powerful. Their aliases are implemented pretty lazy right now, as we're just registering the parser twice with different prefixes.
The `#existing` pattern is covered by the mask of the same name in most cases but can be useful in combination with noise patterns like `#simplex`.
----------, Oct 10, 2020

Fixes:
- Fixed pull and erosion brushes
- Fixed fixlightning now also calculates heightmaps
- Fixed opacity on materials
- Fixed vault integration, which makes integration such as with WorldGuard functional again
- Fixed toggle commands like //tips or //wea
- Fixed limits

Changes:
- Improved lightning engine
- Improved skylight handling
- Replaced DummyFawe with `provides` scope

Additions:
- Add a `#air` mask, the opposite of `#existing`
- More support for 3d biomes
----------, Sep 16, 2020

Hello people,

Fawe now supports 1.16.3 as well.

That's it, no big changelog today.
----------, Sep 11, 2020

Hello people,

special update for you builders out there who depended on some of FAWE's masks in the past! Many of the old masks which were never reimplemented have recently been brought back. The full list of reimplemented masks, as well as descriptions, usage examples, and other details can be found in the PR's description here https://github.com/IntellectualSites/FastAsyncWorldEdit/pull/600 .
Light-oriented masks and the radius mask have not been reimplemented for various reasons, but are not totally off the table. Feel free to report issues with mask behavior or create a feature request on our issue tracker ( https://github.com/IntellectualSites/FastAsyncWorldEdit/issues). Have fun!
----------, Sep 8, 2020

Translations are returning!

Currently the option to set translations in the config.yml does nothing, throws a stacktrace because there are no other translations but English yet or possibly doesn't even exist, if you didn't update from past builds.

In the past we used GitHub to manage translations via pull requests but we switched to Crowdin Enterprise a few months ago, since it is easier to use for people who are not versed with git applications but want to help us translating FAWE into their language.

The following link leads to our Crowdin page: https://intellectualsites.crowdin.com/fastasyncworldedit
I've added a few languages as default. If a language is missing you would like to translate FAWE to, let us know in #off-topic and I will add it.

Please note: Numbers inside curly braces ( {0}, {1}, etc.) are replaced with variables when used ingame. E.g. {0} blocks affected will change to 50 blocks affected when using Fawe. So make sure to put them on a spot matching your translation language.

We are now available on Patreon as well: https://www.patreon.com/IntellectualSites
----------, Aug 26, 2020

Hello people,

it has been a long time since the last update, but that doesn't mean we didn't do anything ;)
We stopped pushing builds to spigot with the jump to 1.13, but continued the development pushing builds to our Jenkins (CI).
This build is an early alpha build of FAWE, which supports 1.14 to 1.16.1.
We are aware that a lot of features are still missing or not properly implemented, but the latest builds are fairly stable and contain a lot of fixes.
If you find something not working, please check the issue tracker and either comment on an existing issue or open a new one: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues
In case you just want to support our development or just want to sponsor us a little coffee, you can do that here: https://www.paypal.me/AlexanderBrandes/

Thanks for all the support the past time,

Cheers

If you are looking for builds for past versions, please head to https://intellectualsites.github.io/download/
----------, Aug 21, 2020

[​IMG]
This is just a summary of features added.
The full changelog of 87 commits can be found here.

  • Schematic visualization using //schematic show <directory>
    • View and pick multiple schematics
    • video:
    • Note: Currently only for 1.12
  • Added `//schematic delete *` to delete your currently loaded schematics
  • Added `//schematic move <directory>` to move your currently loaded schematics
  • Added support for downloading multiple files at once using `//download`
  • Use SSL for updating/web integration
  • Add URL optional URL shortener for download
  • Added falling sphere brush `//brush sphere <pattern> -f`
  • Added `//anvil set <pattern>`
  • Added confirmation for large `//undo` iterations
  • Added support for non cuboid region restrictions
  • Added `false` and `true` masks
  • Added #liquid mask
  • Full 3D support for masking with biomes
  • Improved sweep brush leveling
----------, Apr 13, 2018

[​IMG]
This is just a summary of features added.
The full changelog of 131 commits can be found here.
Add sweep brush ( pic1, pic2)
Add slot pattern to use an item in your inventory: //set slot5
Add diagonal stacking: //stack 5 ne
Add vanilla CUI using structure blocks (for showing your selection)
Start work on command GUI for Nukkit
Add better multi-clipboard support for `//schematic`
Optimized VoxelSniper undoing
Optimized Schematic saving

CFI improvements
The biggest changes I made were to CFI, which is a building mode for creating worlds. Let me know what you think and any suggestions you have.

Worlds can be visualized and edited using a map.
- Example of viewing a 3K x 3K world on a 7x7 map.
- Example of a 500 radius biome brush on a 1K x 1K world.
Changes made to the world can be rendered almost instantly.
- Rendering a 3K x 3K world while making changes

WorldEdit tools and commands can be used in a rendered world:
- Using a 1000 radius height brush, and //undo in a CFI world

New commands for manipulating the world:
- //cfi worldthickness
- //cfi floorthickness
- `//cfi color` with masking support
- Commands are interactive
----------, Jan 21, 2018

[​IMG]
This is just a summary of features added.
The full changelog can be found here.
Features:
  • Adds catenary brush
  • Add blob brush
    - simplex distorted sphere with frequency and amplitude parameters
  • Added brush target offsetting //br targetOffset
  • Added pattern #l2d[pattern list] (linear 2d, the chosen pattern depends on the x,z coordinate)
  • Added thickness parameter to: //hcyl
  • Support for off axis rotation: //rotate <any angle you want!>
  • Adds `/br copy -a`
    - off axis rotation based on view
  • Adds experimental option: Persistent brushes
    - Brushes are bound to the item instead of the player's session
    - Brushes can be shared by dropping the item
  • Anvil commands can now be undone
  • All region based Anvil commands are now region restricted
  • Better biome mixing with CFI
  • Add command trimAllAir
  • Add command deleteUnclaimed (supports P2, WG & GP regions)
Future proofing
  • Newer versions of minecraft shouldn't break Entity and Block NBT and require FAWE or WorldEdit to update.
Optimizations
  • Optimized async -> sync task execution
Contributors:
The following people have contributed code during this period:
@Empire92 (me)
@mikeprimm
@dordsor21
----------, Sep 1, 2017

[​IMG]
This is just a summary of features added.

The full changelog can be found here.

FAVS

  • Support for //gmask
  • Support for //gsmask
  • Support for //gtransform
  • Suport for /v <pattern>
FAWE
  • Help and commands are now interactive
  • Added dynamic chunk rendering (experimental section of config)
  • Added biome copying `//copy -b` `//move -b` `//stack -b`
  • Added command confirmation (for large edits)
  • Added global brush saving, loading and listing
  • `//wand` now spawns the item in your hand
  • Main command aliases are now configurable
  • Updated forge, sponge and nukkit versions to support 1.12.X
  • Updated spigot version to support 1.12.1
ANVIL
I know most people won't need to use these commands but some may find it useful being aware of the new capabilities.
  • Anvil commands can now run async on all supported spigot versions
  • Added command `//anvil trimallplots` to efficiently trim plot worlds.
  • Added world converter PC -> MCPE (`/anvil2leveldb` on nukkit) or this gui
  • Added PC <-> MCPE schematic remapping with `//schematic remap`
  • Added PC <-> MCPE block remapping with `//anvil remap`
  • Added command `//anvil unset` which will remove all the chunks in your selection
  • Use local files for CFI heightmaps: `file://<file path>` the root is `plugins/FastAsyncWorldEdit/heightmap`
Contributors
The following people have contributed code during this period:
@mikeprimm
@BrainStone
@Goodstuff4UonYT
@Aikar
@xnrand
@Postremos
@Empire92 (me)

Have any questions? Join the Discord channel!
----------, Aug 10, 2017

Older versions of FAWE will be slower on 1.12, and lack support for modifying NBT (tiles and entities).

You can ignore the following message during startup, as FAWE includes the updated adapter. I would still recommend updating WorldEdit whenever it officially updates for 1.12
upload_2017-5-15_21-45-9.png

This version introduces new ways to color the world:
- Anvil CFI coloring ( blocks, biomes and glass, heightmap by: @Aerios)
- `/br layer <color>`
- Color patterns (#color, #anglecolor, #saturate, #desaturate, #lighten, #darken, #simplex)
- Import images with `/image`

Other stuff:
- Brush saving and loading (//savebrush, //loadbrush, //listbrush)
- Ingame mask, pattern and transform help (//masks, //patterns, //transforms)
- New mask, pattern and transform syntax (better nesting, grouping etc)
- New patterns (#angledata, #buffer, #buffer2d + the ones above)
- New masks (#simplex)
- New transforms (#linear, #l3d, #spread)
- Improved Anvil CFI (palettes, schematic population, smoothing)
- Various fixes (see GitHub issue tracker )

For developers
- Easily register custom masks, transforms, patterns and brushes (see wiki)

Links:
----------, May 15, 2017

Features:
- Add permpack: fawe.permpack.basic
- Add Anvil replace
- Add anvil copy and paste
- Add Anvil removelayer debug cmd
- Add Anvil deleteallold to trim uninhabited chunks
- Add mask flag to stack - alternate to //gsmask
- Add schematic loadall (multi-clipboard)
- Color brush invert (use negative yscale)
- Add #iddatamask pattern e.g. #iddatamask:7:slab
- Angle mask overlay option (end with o)

Optimizations
- Optimize schem paste
- Optimize block sending for spigot 1.9, 1.10, 1.11
- Optimize auto-updater

Tweaks:
- Simplify config comments, messages
- Russian localization commands.yml and message.yml @Bogdan2402
- Improved worldedit help
- Styling and documentation improvements

Fixes
- Fix masking biomes
- Fix #surfacespread pattern
- Fix brush reset
- Fix 1.7 get id
- Fix /fawe version showing 2016 @Maxetto
- Fixes VS wrapping top/bottom parts of the world
- Fixes tile entity undo
- Fix paste -a
- 3rd party command registration fixes
- Fix brush scroll size with -1 brush radius
- Fix hay rotation
- Fix error when trying to visualize outside view distance
----------, Apr 18, 2017

Non Anvil improvements:
- Added command `/caves` - generates caves
- Added command `/ores` and `/ore` - generates ores
- Added brush `/br layer` for placing multiple layers on a surface
- Added brush `/br popschem` for placing schematics on a surface`
- Added hollow polyhedral region select `//sel polyhedral`
- Added smoothing of snow layers `//smooth -s`
- Added heightmap of snow layers `//br height -l`
- Added surface spline brush `/br sspline`
- Added multi-clipboard pattern #fullcopy[:file|folder|url[:rotate=false]]

FAWE ANVIL:
This update drastically improves the performance of the Anvil API, fixes outstanding issues, and adds a lot more capabilities (from a developers standpoint).

Performance wise, ANVIL can now push out somewhere around 500,000,000 blocks per second. This is evident when using the new MCA generator, probably less with the MCAFilter if doing anything complex, and significantly less whenever you are doing sequential single block changes.

If you aren't a programmer, you can use some aspects of the generator with PlotSquared installed. Early demo:
(I've since added caves/ores/schem population)

I've also added the `/2 replaceall` command, which is applicable if you are using PlotSquared's `enabled-components.worlds`. (needs the latest P2)

For more info on Anvil, see here:
----------, Mar 26, 2017

A lot of the changes have been focused on improving brushes.

Most notably there are a lot of new brushes
- Scatter
- Splater
- Scatter Command
- Shatter
- Color HeightMap
- Cliff HeightMap
- Various improvements to existing brushes
New brush features
- Brush visualizing
- Brush targeting modes
- Brush scroll actions (clipboard, mask, pattern, range, size, target)
- Bind tools to any item id or data
- Bind two brushes two a single item (left/right click)
- Use a biome in any brush with the `#biome:<biome>` pattern.
- More info: https://github.com/boy0001/FastAsyncWorldedit/wiki/Brushes
Schematic changes
- Asset interface to save/load assets: http://empcraft.com/assetpack/
= (Save with `//asset [category]`)
= (Select the assets you want, click download to generate a link)
= (Will upload source soon)
- Schematics are now per user (disable in config.yml, or use ../)

Various other features, optimizations, and fixes.
Raw changelog:
Only update if using java 8
Fix some chunk loading issues
Affected 1.8/1.7
Also improves performance for various operations
Fix bad cast
Flat brush shapes
Possibly fixes #422
Fix heightmap scaling
Forgot to flush undo/redo
Fix the flatmap scaling issues
Timed expression evaluation
Probably fixes #423
Optimize BFS and ellipsoid iteration
Fixes #421
use different method for history flushing/close
Fix cuboid iteration
Fix center + tweak updater
Include Javassist (bytecode manipulation)
Will be used to optimize the server jar
Debug no adapter
Fix remove message
Fixes #427 Fixes #426
Fixes #427
Update default WorldEdit jar
Fixes #430
Fixes #431
Some fixes to the erode brush
Fix stack outside region
Chat progress tracker
Async flush AsyncWorld
Fix compile
Fixes #442
Various (unfinished)
Fixes #439
Update to Java 8
Adds scrollable brushes to the API (action on brush scroll)
- Clipboard
- Mask
- Pattern
- Range
- Size
Adds movable brushes to the API (action on brush move)
Adds different targeting modes for brushes (see enum TargetMode)
Adds VisualBrush to API (sends client block changes instead of changing
the world)
Updater now checks every 30m for updates
Adds in game updater changelog (/fawe changelog)
Adds language option to config
Adds german translations
Adds CircleBrush (WIP)
Simplify DoubleActionBrush and DoubleActionBrushTool to extend
Brush/BrushTool
Use ImmutableBlock instead of anonymous BaseBlock for cache
Fixes CuboidRegion iteration (affected some commands)
Fixes WorldCopyClipboard schematic saving
Optimize FawePlayer -&gt; Player by caching value
Simplified pattern and mask API by extending legacy versions
Optimize sphere, cylinder and deform
Added brush cancellation by SHIFT + LEFT CLICK
Probably some other stuff
Various
Improved web integrated clipboard
Fully fledged brush visualization (modes 0-2): //br vis
Brush targeting modes (0-3): //br target
Brush scroll actions: //br scroll
- change clipboard from directory or web
- change mask
- change pattern
- change range
- change size
- change target mode
Build multi-brushes (choose the brush for left click and right click
individually)
- //br primary
- //br secondary
- Changing the pattern/mask will affect the currently selected brush,
not both
Changes to brush behavior
- spline connects by clicking the same spot twice
- line/copy brush tweaks
Schematics now default per user
- To save/load globally use "../" before the filename
Easily save a schematic to a directory
- `//schem save folder/` will choose save a the next lowest free number
Improved block parsing
Add resettable brushes
- e.g. line brush resets points by shift + left click
Fix forge build
*Rename command
Move class
Possibly fixes #438
Assets
Add flag for copy brush random rotate
Fix for 1.10
*Wrong url
Various
Fix brush scroll
Fix spline reset
Allow setting offhand brush settings (use -h flag)
Add async relighting option
Fix clipboard scroll with 1 entry
Fix index bounds error
Clear visualizer on item change
Allow binding by data
Clean up brushes
Remove clipboard load message
Use player session to allow undo.
Fixes #446
Add option to limit //calc max execute time
This fixes players abusing //calc by spamming it, causing more
calculation threads be created than destroyed.
Merge pull request #453 from OneShotMC/master
Add option to limit //calc max execute time
Slight changes
Fixes #452
Fixes #451
Fixes #450
Fixes #455
Fixes #395
Allow third party command registration
Various
Fixes #456
Delay command registration
WIP shatter/stencil brush
Minor FaweQueue optimization
Stencil brush + HeightMap optimizations
Fixes #438
Fix for @UUID00
Fixes #459
Fix hand/pos1 not respecting blacklist
Add extra brush actions to nukkit
Fix gen cmd not parsing expressions, + other fixes
Fix console EditSession using wrong fastmode setting
Fix minor lighting error
Fix gravity brush
Angle mask by angle
Stencil brush depth
Better angle mask + some command tweaks
Various minor
Stencil/Color brush can now be used on any surface, not just the top
Optimize adjacency and radius mask
Add `fawe.worldguard.member`
Optimize cuboid region contains
Heightmap rotation
Some new brushes
Scatter - Set a pattern at random points on a surface
ScatterCommand - Runs a command at random points on a surface
Splatter - Recursively set blocks at random points on a surface
Fix brush pattern reset + add offset transform
Add scatter overlay
Add mask/command registration to FaweAPI
endSet for manual queue flushing
Tiny fix
Biome pattern! `#biome:&lt;biome&gt;` (possibly buggy)
Some pattern fixes
Fix biome patter apply
Fix some pattern stuff
----------, Mar 11, 2017

Features
  • Add flatten brush
  • Allow loading heightmap from imgur
  • Allow specifying a block's NBT in block pattern
  • Add an option to also send changes to players before relight
  • More lenient block parsing for commands
  • You can now Undo/redo biome changes
Optimizations
  • Better chunk caching improves some operations in unloaded areas
  • Some optimizations to region iteration (less checks, use int instead of double)
Fixes
  • Fix restrictions to region copy/cut to prevent abuse
  • Update block height to 256 for MCPE (nukkit)
  • Fixes stack reporting incorrect number of changes
  • Fix minor error in nukkit when a banned player tries to join
  • Fix some entity iteration/removal
  • Fixes chest/portal patterns being invisible from no NBT
  • Fix compile issue with BlockWorldVector
  • Check if web url is configured before attempting download
  • Fix some undo issues
  • Fix distr region bypass
  • Fix entity remove issues
  • Fix an issue with move
For developers
  • Allow per queue settings: queue.setSettings(...)
  • Add optimized BlockVectorSet/LocalBlockVectorSet (Uses 800x less memory and faster than a HashSet<BlockVector>)
  • The new RegionVisitor constructor which has faster iteration by preloading chunks
----------, Feb 8, 2017

Features
  • Add WorldEdit tips with toggle: /tips
  • Add rollback for specific edits: /frb #<id>
  • Tick limiter interval is now configurable
  • Added fuzzy region select `/sel fuzzy` or `/sel fuzzy=<mask>`
  • Add source masks: `/gsmask` and `/smask` (applies to source e.g. //paste)
  • Add mask tab completion
  • Add light related masks (#opacity, #brightness, #blocklight, #skylight, #light, #nolight, #haslight)
  • Improved mask parsing
  • Selection commands are now translatable
  • Add specifying biome/seed for regen `//regen [biome] [seed]`
  • Print lacking permissions on command failure
  • Added lazycut
  • Add direction for logs + stuff
  • Added client installer (open the fawe-forge jar)
  • FAWE now downloads WorldEdit if you forget
Optimizations
  • Optimized changing sections to air
  • Optimized combine stages for bukkit 1.11
  • Optimized `/set` when not region restricted
  • Optimized clipboard on disk
  • Use zstd instead of PIGZ for faster/higher compression
  • Encode change position relative to previous for better compression
  • Optimize mask union/intersect
  • Optimize `/distr`
Fixes
  • Fixed no free spot sending double message
  • Fixes VoxelSniper error when getting block outside the world (not sure what the intended behavior is)
  • Fixes compass passthrough
  • Fixes commands.yml being empty
  • Fixed queue progress notifications
  • Fixed console iter world teleport
  • Fixed /fawe debugpaste
  • Fix air count calculation error
  • Fixed some lighting issues
  • Fixed ChangeSet NPE
  • Fixed packet sending for null chunk sections
  • Fixed ChunkListener default settings being too low
  • Fixed version command output
  • Fixed reusing existing disk clipboard creating random blocks
  • Fixed Editsession limit not always being reset
  • Use unmasked player location for scripting
  • EditSession should always flush
  • Fixed fastmode set
  • Send client version packet (protocol hack fix)
  • Fixed WorldEdit schematic list error
  • Fixed WorldEdit unnecessarily checking every class perm on command
  • Fixed WorldEdit Vector2D/BlockVector2D being incompatible
  • Fixed WorldEdit creating unused EditSessions for lots of commands
Misc
  • Changed vault message (it's now pink!)
  • Cancel clears the queued actions
  • Add message prefix to more commands
  • Update sponge FAWE
----------, Jan 2, 2017

Added command tab completion for patterns
Tick limiter changes
- Ignores redstone physics
- Per chunk limiting (rather than global)
- Notifies console of any limiting
Changes default settings for low memory usage rather than speed:
- Doesn't effect any existing configs, just new installs
- Uses disk and database for undo/redo/clipboard
- Uses compression level 8 instead of 1
Fixes 1.8 queue failing on no isDirty field
Fixes rare chunk skipping
Fixes queue staging issue
Tweak undo/redo failure messages to provide more info
Added sand/gravel sphere message so that people don't ask me "why it no work!?"
----------, Dec 8, 2016

Features:
Add #clipboard transform
Add #fullcopy pattern
- similar to transform, it pastes the full clipboard at any changed block
- e.g. //replace <marker> #fullcopy
Add id/data pattern (e.g. set id without changing data)
Adds support for forge inventory
Update to forge 1.11
Adds auto updater (configurable)
Can recover incomplete or corrupt schematic files
Add fall command
Add getlight debug command
Add TaskBuilder API
Location snapshot is now stored for brush actions

Optimizations
Async block get optimizations for bukkit by running tasks multiple times during a single tick
Clipboards can now be streamed to a schematic file without significant memory overhead
- This means you can now load/paste/copy/save arbitrarily large sizes with fixed memory usage (if you enable disk)
Optimizations to the various clipboard implementations
Add optimized extent block translation (no additional object creation
for set block)
Optimized forward extent block copy
- use optimized extent transform/translate
- pre calculate required functions/extents outside of iterations
- short circuit certain functions depending on input parameters

Misc
Tweak the OOM message to be more informative
Tweak the max memory config comment to be more informative
Restructured transforms to use resettable extent + reduce code duplication
Use edit session for patterns rather than world (safer)
More info in blocks.json
Now uses a single jar for all bukkit/spigot versions
Tweak some messages
Can now load without throwing errors without WorldEdit
Change axis order for transform rotate
Allow queue to use cached block value

Fixes
Fixes block ids over 1024
Fix sendBlocks + lever rotation
Tile entity fixes + send block update
Fixes solid block count for 1.7.10
Fix some undo/redo tile entity issues
Fix forge 1.7.10 data
Fix forge regen
Fixes incorrect chunk topology data
Force FAWE adapter as WE for 1.11 broke entities
Fixes deadlock from flushing on main thread (API)
Fix nukkit parallel set
Various lighting fixes
Fix setlight and setskylight commands
Fix removal of light sources
Fix up command
Fix TE crash
Fix p2 hook error
Fix execution error with java 7
Fix p2 editable area
Fix random 1000ms brush delay
Fix brush perform location not using snapshot location
Fix relight NPE
Fix debugpaste
Fix issue with editing on main thread
FIx error from misusing AsyncBlock
Fix cast exception with forge
Fix rotation
fixes rotation for signs, banners and nbt data
Fixes schematic rotation
Fixes compatibility with java 7
Flush EditSession on CuboidClipboard paste
Fixes forest error
----------, Dec 6, 2016

Updated to 1.11

WorldEdit may print the following message during startup:
[​IMG]
You can ignore this since FAWE has the updated adapter, though I recommend you also update WorldEdit when an official update is made available.
----------, Nov 17, 2016

Changed memory history to be kept after user logout.
- It will be kept while the server has enough free memory
- Use disk instead if you want it kept indefinitely

PlotSquared hook: Added command /plot trimchunks <world> <trim-unowned>
- It will output a duplicate world with all the trimmed chunks removed
- Usage example: /plot trimchunks plotworld true
- You need spare disk space to use this

Only owners of a region can rollback:
- i.e. It's safe to give normal players access to the rollback command (tested with PlotSquared)

prevent-crashes is now disabled by default
- Since it discards parts of an edit when low on memory
- And this behavior is slower or could confuse people

Proper support for WorldEdit inventory
- Per player inventory mode (0, 1, 2)
- Use mode 2 for survival (setting air doesn't give you the blocks)
- Fixes several duplications glitches
- Adds speed and placement type option per player
- See config for more info

Faster compression
- Uses optimized PIGZ algorithm instead of GZIP (like 10x faster)
- Affects schematics, history on disk (level 9), and upload/download

Fixes:
- Fix identical states being recorded as a change
- Fix concurrent entity creation
- Fix clipboard paste error
- Fixes chunk sending when block placement is really slow
- Fixes for Anvil
----------, Oct 20, 2016

Added transforms:
- `//gtransform` and `//transform`
- Example: http://i.imgur.com/m8xemGn.png
- https://github.com/boy0001/FastAsyncWorldedit/wiki/Transforms

Added some new patterns:
- #solidspread, #surfacespread, `=<expression>`

Added some masks
- #wall, #surface

Optimizations:
- Optimize AffineTransform class
- Optimized BlockTransformExtent
----------, Sep 29, 2016

I don't know how many of you actually use any of the added features for building, but a lot of cool stuff has been added. Just thought I'd let you know.

For instance, the spline brush is neat (though not entirely finished)
Pic1: http://i.imgur.com/CeRYAoV.jpg -> http://i.imgur.com/jtM0jA4.png
Pic2: http://i.imgur.com/bUeyc72.png -> http://i.imgur.com/tg6MkcF.png
1: Right click some points
2: Left click to create spline
- Link to brush documentation.

You can now do a lot of cool things with patterns, such as make your own gradient brush:
Pic: http://i.imgur.com/GccRx70.jpg (not mine as I can't build, just something you can do with gradient brushes)
1: Place some blocks in a line to make a gradient
2: //copy
3: //br sphere #relative:#clipboard 5
4. //mask %20 !air
(or use the id of whatever surface you are painting instead of !air)
- Link to pattern documentation
- Link to mask documentation

Other notable changes:
- Significant performance improvements when `combine-stages` is enabled
- Some fixes (see GitHub)
----------, Sep 28, 2016

Notable additions:
- Added a lot more masks.
- Added configurable action limit and command queueing (see config.yml)
- Added recursive brush (see commands page)

All changes:
Add radius mask
Add adjacent mask
Fix superpickaxe error
Allow third parties to register custom masks
Possible fix for invisible blocks
Fix stack being slow
Add getClipboard() method to Schematic class
Fix flushing on main thread
Fixes #309
Remove some debug messages
Fix region caching
Fix error from flushing on different thread
Cache nmsWorld during queue initialization
Fix lastMask meta (typo)
Fix progress tracking
Fixes //sel extend bug
Add option `store-redo: true`, disabling will result in smaller history but cannot use redo
Add option `small-edits: false` will reduce history by assuming edits < 4096x256x4096
Change FaweStreamChangeSet to use new settings, but be backwards compatible (uses mode byte)
Add auto generated semantic version (may not be accurate)
Add recursive brush
Optimize undo/redo using mutable change objects
Tweak several classes to implement HasFaweQueue
Fix wrong cancel message for entity/biome changes
Optimized offset mask
Added interface ResettableMask used to reset masks after being used for an EditSession
Added MaskTraverser for traversing and resetting inherited masks after use
Added angle mask \#,#
Added id,data,combined mask #id #data #iddata (Must match starting block id/data)
Added x,y,z axis mask #xaxis #yaxis #zaxis
Add mode 4 FAWE format (short location prefix + no combined from bytes)
Fix `/frb` command not respecting regions
Tweak permission for `/frb` -> worldedit.history.rollback
Translated ToolUtil commands and a few other messages
Fixes pos1/2 sometimes being off
Fix for forge
Fix region contains
Queue commands if over limit (default = 1)
Fix caclulating history size (in memory)
Fix relighting in parallel
Allow multiple actions at a time
Reduce max memory allocation size for history
- Uses multiple byte arrays instead of one large one for streams
- Faster read/write as less dependent on arraycopy
Remove world compression (it was buggy / there was no interest)
EditSession can now be used as a world
Fix pos1/pos2 being allowed outside the world
Fixed liquid mask not being thread safe
Fixed plot upload
Reduce packet sending
- Increase delay to being able to see blocks, but more efficient
Fix downloaded schems + mcedit
Fix for forge tile entities
Fix jumpto
This is probably the issue
Accidentally broke forge
Nukkit fixes
add new brushes
some other minor stuff
Fix lrbuild
Fix for out of bounds
+ More
----------, Sep 24, 2016

Ported WorldEdit/FAWE to Nukkit/MCPE
Various fixes and misc changes:
https://github.com/boy0001/FastAsyncWorldedit/pulse/monthly
----------, Sep 5, 2016

Added Anvil API and commands for manipulating entire worlds. (Note: There is no undo, so backup your world beforehand, also these commands are designed to work on unloaded worlds)

//countall <world> <blocks>

Perm: worldedit.anvil.countall
Desc: Count all the blocks in a world


//replaceAll <world> [from-blocks] <to-blocks>

Perm: worldedit.anvil.replaceall
Desc: Replace all blocks in a world


//replaceAllPattern <world> [from-blocks] <to-pattern>

Perm: worldedit.anvil.replaceall
Desc: Replace All blocks in a world that match [from] with a specified pattern

Full changelog:
- Add ReplaceAllPattern anvil command
- Add replaceall command
- /replaceall <world> [from] <to>
- Added first anvil command (countall)
- Added parallelized filter for MCAQueue
- Optimizations for block queuing (reduce object creation + casting)
- Fix shortcut for set and fastmode
- Reduce object creation (vector) on each block change
- Fix getBlock in non allowed region
- Fix command block nbt
- Use ForkJoinPool instead of new threads
- Fix shortcut for set and fastmode
- Fix relight and semi-transparent blocks
- Add thread list command/debugpaste to `/fawe` command syntax
- Lighting / MCA changes / Queue
- Optimize queue dispatch parallelization
- Fix lighting issues
- Add MCAFile/Chunk listing to API
- Fixes https://github.com/boy0001/FastAsyncWorldedit/issues/251
- Use FaweException for handled exception as it's faster not to calculate the stacktrace
- Allow EditSession construction with no allowed regions
- Fixes https://github.com/boy0001/FastAsyncWorldedit/issues/253
- Fixes clipboard on disk
- Fixed hybrid MCAQueue hybrid get (tile/block/refresh)
- Fixed no NMS queue messages
- Added Issue template
- Optimize disk IO
- Add `/fawe debugpaste`
- Fix some lighting issues
- Fix database insertion
- Fix some rollback issues
- Add database import /frb #import 0 0
- Fix some typos
- Add experimental world compression option
- Fix FAVS relighting
- Fixes https://github.com/boy0001/FastAsyncWorldedit/issues/243
- Fixes https://github.com/boy0001/FastAsyncWorldedit/issues/250
- Allow for plugins/mods to register a clipboard format
- Fixes for anvil queue
- Add experimental anvil queue option
- Fix IO exception with history on disk
- Optimize chunk index caching
- Fix biome masking
- Add optimized MCA reader
- Fix for 1.7.10 gson import error
- Remove Favs startup message
- Fix strange schem load issue
- Fix 1.8 tile sending
- Fix FAVS command registration
- Fix writing tiles to schematics
- Fixes https://github.com/boy0001/FastAsyncWorldedit/issues/236
- Fix vault repos
- Fix tiles for BukkitQueue_All
----------, Aug 25, 2016

Optimizations:
- The fallback Bukkit API queue is now significantly faster
- Optimizations for 1.10
- Compression buffering optimizations
- Operations keep chunks loaded for 10s to reduce disk usage
- Optimized chunk packet sending
- Optimized caching history from disk (instant now)
- Optimized rollback lookups using sqlite database
- Added fast random access clipboard compression (configurable)
- Full support for streaming NBT (reduces memory usage when reading NBT such as schematics)
- Relighting now occurs entirely async and is significantly faster, especially for large areas
- Faster session serialization (more specifically, having to serialize the sessions less often)

Other changes
- All commands/aliases/help should now be translatable (let me know if I missed something important)
- Removed numeric versioning in favor of date + git commit hash
- Configurable history/clipboard location
- Added per player size limit to history on disk
- Added per world history index when using disk
- Rollback information is now stored in a database for faster access
- Added inspect brush (//brush inspect)
- Added CPUOptimizedClipboard/MemoryOptimizedClipboard
- FaweClipboard classes are now resizable (data loss if volume changes)
- Removed stream in favor of clipboard on disk due to limitations with the schematic format being slower than just using disk

Fixes
- Fixed queue flushing when combine stages is disabled
- Fixed queue relight concurrency
- Fixed fixlighting async error
- Fixes for 1.7.10 and thermos
- Fixed non disk schematic loading sometimes not working
- Fixed console message formatting
- Fixed tile entity fetching/placement for the Bukkit API queue
- Fixed schematic list behavior
- Fixed command alias translations
- Fixed compatibility with forge essentials
- Fixed compatibility with NCP
- Fixed separation of FAVS and FAWE
- Fixed compatibility for craftbukkit 1.10 (you should be using spigot by now)
- Fixed cast for 1.8
- Fixed clipboard entities
- Fixed packet sending delay
- Fixed null player wrapping during pre-initialization
- Fixed entity mask and per player limit
- Fixed fixliquid
- Minor fix for PS hook
- Fixed undo error on fastmode
- Fixed forge multiworld
- Fix cmd block data

New bugs:
- Sessions are now removed on disconnect to reduce memory/cpu usage. Use history on disk instead.
----------, Aug 14, 2016

Ported the NMS classes to the following platform/versions
- Forge 1.9.4, 1.10
- Bukkit 1.7.10
Added option to configure the default relight mode
- 6 modes, see config for documentation
Added some extra translations
Added worldedit from console (e.g. /jumpto world,0,0,0)
Added BlocksHub logging for VoxelSniper
Added proper NBT streaming
- significantly reduces memory consumption when using clipboard on disk
Fixed setting water with a data value (height)
Fixed undo limit
Fixed blockshub hook
Fixed async world loading for paperspigot
Fixed preciousstones hook
Some minor optimizations
Various API improvements
----------, Jul 15, 2016

Fixed an error with tile entity removal (mostly seen when removing hoppers)
Fixed chunk unloading during async relighting
Fixed some ids not pasting with the correct data
Fixed pasting above the world height removing incorrect blocks on undo
Fixed item spawn limiter also cancelling physics
Fixes some issues with the API

Some compression improvements (level 9)
Added command brush //brush cmd <cmd1;...>
Added image export format (low quality isometric render)
- //schematic save image <file>
- //download image
Added per player history limit (defaults to 20MB per player)
- Instead of a hardcoded number, player history can be limited by the amount of memory it uses
----------, Jun 28, 2016

About: This plugin is still in development, there is no "stable" release, just development builds.

Important changes:
This version is not compatible with previous history or clipboard on disk files since I changed the file format (primarily the header and compression).

All changes:
Updated hook for PlotSquared 3.4.1 (yes, that's a development build of PlotSquared)
  • Added various optimizations for PlotSquared (plot clear, copy, move, swap, download, load etc)
  • Added full support for tile/entity nbt etc in plot schematics.
New compression options and improvements (allowed: 0-9)
API:
  • Add EditSession builder
  • Added compression option to FaweChangeSet constructor
  • Added FAWE format (used for history / clipboard on disk)
Future updates will mostly contain bug fixes.
----------, Jun 16, 2016

Added support for the Structure Block format:
- http://minecraft.gamepedia.com/Structure_block_file_format
- //schematic load [<format>] <filename>
- //schematic save [<format>] <filename>

Added web interface hook for clipboard upload/download:
- http://empcraft.com/fawe/ ( plotupload)
- //download
- //schematic paste url:<key>
----------, Jun 10, 2016

Updated to 1.10

WorldEdit may print the following message during startup:
[​IMG]
You can ignore this since FAWE has the updated adapter, though I recommend you also update WorldEdit when an official update is made available.
----------, Jun 9, 2016

Added hook for VoxelSniper:
- http://dev.bukkit.org/bukkit-plugins/voxelsniper/
- Supports region restrictions / history on disk / rollback etc.

Various API improvements (will be documented soon)
- New methods in the FaweAPI class
- new AsyncWorld class which implements Bukkit's World
----------, May 22, 2016

Fixes tile entity and entity pasting as well as with redo/undo
Fixes chunk packet sending for 1.8 and 1.9 skipping some chunks or entites
Fixed move setting non-modified locations to air (also optimized move)
Added option `delete-on-logout`
Added configurable block registry
Centralized error handling
----------, May 20, 2016

Fixed the fixlighting command
Fixed 1.8 packet sending
Fixed regen
Fixed redstone/block update issue (by changing the config value)
Fixed fallback bukkit queue (non NMS placers)
Added smoothing to heightmap brush
Added check for trusted players in GriefPrevention ( @RoboMWM)
Updated to 1.9.4
  • Ignore the "This WorldEdit version does not fully support your version of Bukkit" since FAWE has an updated adapter.
Added optional progress notifications (enable in config.yml)

All WorldEdit stages can now be combined into a single stage (faster):
  • Enable "combine-stages" in the config
  • Hasn't been tested extensively
  • Significantly faster where chunk loading is the bottleneck (large edits)
  • Note: Some commands exempt / Compression (if enabled) may be the bottleneck
Added CPUOptimizedHistory (if combine-stages=true / disk=false / compression=false)
  • Much faster undo/redo but more memory usage
Various other optimizations.

Note: Using parallel threads (ideal value is the number of cores) is now considered stable.
----------, May 13, 2016

The majority of WorldEdit messages are now translatable through FAWE
Added heightmap brush (supports using png as heightmap)
Removed some startup messages
Fixed gravity brush
Fixed NPE for entity spawns with lazycopy / other copy issues
Fixed chest/furnace/redstone/banner torch orientation
Fixed navigation async issue
Added more info on injection failure
Fixed fixliquid
Fixed some packet sending issues
Various optimizations
----------, May 1, 2016

Fixed issue with queue sometimes skipping blocks on first initialization.
Fixed thru error
Fixed double log for certain ids
Fixed worldedit bypass eventually running into the limit (max integer)
Optimizations to changeset (using a linked byte array rather than arraycopy)
Optimizations to clipboard on disk (added a local cache for index which saves on computations)
Optimizations to paste (shortcut if no transform)
Added optional parallel queue execution
- Generally the bottleneck is the disk (loading chunks) / pre-processing (enqueuing) / compression (history) so there may not be much improvement.
- The number of parallel threads can be set in the config
----------, Apr 28, 2016

Fixed torch paste rotation
Fixed sign text clearing on `//move`
Fixed MemoryOptimizedClipboard not allowing existing values being changed to air
Fixed smooth brush iteration limit
Fixed invalid sign check for pasting (workaround for WorldEdit bug)
Added optional clipboard on disk
- Anything in the clipboard will not use any memory
- Clipboard can be loaded after a restart or crash
Added lazy copying (doesn't copy until the blocks are needed)
Optimized `/set` for cuboid region with fast mode enabled
----------, Apr 26, 2016

Ported the plugin to forge 1.7.10 and 1.8.9
https://github.com/boy0001/FastAsyncWorldedit/releases
Brushes are now processed asynchronously
Disk Storage History is now indexed asynchronously on world entry
Added command: `//cancel`
A few minor bug fixes
----------, Apr 24, 2016

Fixed `//forest` in unloaded chunks.
Minor x86 fix for LZ4 bindings
Rollback optimizations and usability improvements
Rollbacks are now recursive
Fixed PlayerChunkMap error for default block placer
API improvements
----------, Apr 22, 2016

Added support for FactionsOne
Added default block placer which only uses the Bukkit API
  • FAWE should now work on any version of bukkit (contact me if it doesn't)
  • Uses parallel execution to improve speed. With my quad core CPU I managed to get 715,000 bps using just the Bukkit API and optimal placing conditions. (Still a lot slower than the NMS placers).
----------, Apr 21, 2016

  • Various queue optimizations
  • Support for WorldGuard __global__ region
  • Added workaround for CoreProtect logging
  • Added rollback command for undoing specific edits: /frb info r:<radius> u:<user> t:<time>
  • e.g. /frb i r:10 u:Empire92 t:3d4h19s
[​IMG]
----------, Apr 21, 2016

Fixed fawe limit not loading from config
Fixed method signiture for CuboidClipboard setBlock not matching
Fixed CuboidClipboard rotation
Added option history.delete-after-days (which applies to history stored on disk)
Added LZ4 bindings for some other archetectures (win32/x86, s390x, ppc64le)
Added proper operation cancellation
Added cancellation messages
Added debug message on chunk-wait failure
Delete session on logout
Load session from disk on world change
Set default chunk wait to 100
Fallback sync relighting if async fails
----------, Apr 20, 2016

Various optimizations for Spigot 1.9
Added (optional) async lighting
FawePlayer uses the last mask if the current location is not within a region.
Fix for PreciousStones
----------, Apr 19, 2016

Invisible block fix for 1.8
Fix SetQueue NPE
Schematic optimizations
Various minor optimizations

@F64_Rx
@gepardo43
----------, Apr 18, 2016

Fixed deform + added some optimizations for it
Added a workaround for WorldEdit's sign bug
----------, Apr 16, 2016

  • Fixes regen in unloaded areas not fetching the previous blocks
  • Fixes superpickaxe
  • Fixed an NPE from history enabled edits in unloaded chunks.
  • The CuboidRegion class will now queue blocks in layers for a chunk before moving onto the next chunk. This results in higher cache hits for history enabled queues. It also allows the block placer to start earlier during preprocessing with edits affecting > 64 (configurable) chunks.
Note: with fastmode or history on disk enabled, near unlimited sized
edits (for certain commands) might now be feasible.
----------, Apr 14, 2016

  • Fixes tree generation
  • Fixes regen
  • Fixes up and ceil
  • Added option queue.extra-time-ms which allows you to allocate additional (or less) time for the queue. (0 = balance of speed / stability)
  • Added option region-restrictions which enables/disables the region restriction component of the plugin
  • Several queue optimizations
  • Memory improvements (byproduct of streamlining the queue and removing overhead)
----------, Apr 14, 2016

FAWE [3.3.8]
  1. Fixed a few async issues (block fetching, nbt, p2 hook)
  2. Fixed //move setting the selection to 0 (i.e. small distances don't move properly)
  3. Added some debug options to be configurable (chunk wait, buffer size)
  4. Fixed undo for negative coord blocks (relative to origin) only undoing the positive quadrant (sphere/cyl etc.) Caused by me messing up the compression on negative coords.
  5. Added region restriction option (default=true)
----------, Apr 6, 2016

With history.use-disk enabled, history is now persistent through restarts or intentional server crashes.

Added a one command limit to all players. You must now wait for your current action to finish (which for edits of only a couple million blocks is about a second)

Added configurable block limits for players. Copy the "default" section in the config.yml. Players with the permission "fawe.limit.<limit>" will get that limit. (higher numbers take priority)

Fixed an issue with `//cut` trying to get blocks in unloaded chunks (if the chunk happens to be unloaded that is).

Optimized replace/count/copy/cut.

Added a few new translations.
----------, Apr 5, 2016

FAWE [3.3.6]
Fixed some minor issues with copying/undoing edits with nbt data
Fixed minor issue with perm checks.

Recoded the clipboard class to encode the BaseBlock as a short array with an accompanying map for nbt
  • about 10x smaller memory usage
Compression improvements
  • Using java's inbuilt compression was too slow for me (gzip or deflator)
  • Now using the LZ4 compression algorithm which is super fast (fast enough that there's now 1 pass of history compression by default)
  • Enabling further compression will do another pass with the LZ4 high compressor.
Streamlined the queue system so it doesn't need to be fetched on each block place.
  • Not a whole lot faster, but it probably makes more sense code wise.
Removed block reordering from the editsession.
  • It alone took about 0.5s/mil blocks
Replaced block fetching from history extent with custom optimized algorithm
  • Using primitives to represent the block where possible is a lot faster than instantiating a new BaseBlock object and populating it with the id/data/nbt
tldr;
compression=super fast,history=super fast
^ also really good ratio for uniform changes
----------, Apr 4, 2016

Added some default compression to undo/redo history. It's fairly cheap and reduces the size in memory by a fair bit. Further compression can still be enabled.

Also should fix the problem @kh498 is having. (Chunk packet wasn't sending)

Oh, and ported the plugin to Sponge/Forge:
https://forums.spongepowered.org/t/12126

Enjoy! :)
----------, Apr 2, 2016

A bunch of optimizations, features, code cleanup etc.

Some code was streamlined/optimized. Large edits should be noticeably less intense on the server.

So there's a new section for optimizing undo/redo history in the config.yml.

History compression:
- Enabling history compression will slow down edits a bit but will drastically reduce memory usage.
- It's your choice if you want to sacrifice speed for decreased memory usage.

History save to disk:
- Enabling this will have all history stored to disk rather than in memory.
- This will also uncap the history, allowing for an unlimited number of undos.
- Obviously will be slower than doing everything in ram, but having all the history on disk will free up a lot of memory.

Remember, if you need to do a really large edit, you can always bypass the history by using `//fast`.
----------, Apr 1, 2016

TileEntity data is now set correctly (chests, signs etc)
----------, Apr 1, 2016

Fixed bad import
----------, Mar 31, 2016

Update to latest development versions of WorldEdit/WorldGuard)
- Those still running older versions of WorldEdit/WorldGuard will need to update ( http://builds.enginehub.org/ )

Fixed an issue with chunks sometimes being skipped if editing in unloaded areas.

Some other changes:
- Updates are sent to the client quicker
- Fixed some errors with tile entities
----------, Mar 31, 2016

Fixes support for 1.8
Fixes server crash from modifying tile entity: daylight sensor
Fixes redstone wire data
----------, Mar 26, 2016

Resource Information
Author:
----------
Total Downloads: 1,241,814
First Release: Oct 29, 2015
Last Update: Feb 23, 2025
Category: ---------------
All-Time Rating:
594 ratings
Find more info at discord.gg...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings