dordsor21 f6af9925e8
Char block null check (#1030)
**Add a null-check to CharBlocks FULL section layer-retrieval.**
 - It is possible to trim CharBlocks whilst it is attempting to read data due to the batching of chunks to help reduce memory
 - This is done when the number of chunks sitting loaded in memory with having been "submitted" to the queue for writing to disk becomes high
 - Seconday operations such as heightmap processing and lighting will quickly load chunks, meaning many chunks are submitted early
 - This leads to much higher chances of the chunk being submitted and subsequently trimmed given heightmap and light processing is done layer-by-layer over many chunks, rather than chunk-by-chunk - thus leading to NPEs.
 - By adding synchronisation to and around only the specific sections when loading/updating, and not blocking the whole chunk, many access can still be thread-safe without causing deadlocks
 - This allows removal of lots of the needless and very-slowing synchronisation on get**Block** methods

**Remove much of the synchronisation from ChunkHolder**
 - We shouldn't be synchronising with call() and safety should be added elsewhere. (plus it's making edits very very slow when queue target size is hit)
 - Also remove much of synchronisation because we've added the null-check and section-specific synchronisation to CharBlocks
 
**Some QOL/thread-safe data access changes**
- Replaces the Array#clone seen in the get blocks classes with System#arraycopy as deep cloning is not required, and is also slower than arraycopy
- Add System#arraycopy when accessing chunk section data via history to ensure it is not altered whilst being written
- Renaming EMPTY to empty means it is not implied to be a static variable

Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1028
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1025
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1089
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1091
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1097
2021-06-08 14:28:16 +00:00
2021-06-06 21:17:24 +02:00
2021-05-14 23:42:37 +02:00
2021-02-16 23:49:04 +01:00
2021-05-14 23:42:37 +02:00
2021-06-05 10:27:38 +02:00
2021-06-05 11:27:27 +02:00
2021-06-05 11:27:27 +02:00
2021-05-12 18:04:21 +02:00
2021-06-05 11:27:27 +02:00
2021-02-22 11:08:45 +01:00
2019-11-19 15:10:36 +00:00
2021-05-11 19:20:41 -04:00
2020-01-20 11:30:00 +01:00
2020-10-11 13:37:11 +02:00
2020-09-08 15:34:53 -04:00
2020-09-08 15:34:53 -04:00
2020-08-14 15:29:15 -04:00
2021-06-06 21:17:24 +02:00
2021-02-03 23:08:39 +01:00
2021-03-29 15:29:16 +02:00


FastAsyncWorldEdit is a fork of WorldEdit that has huge speed and memory improvements and considerably more features

A Minecraft Map Editor... that runs in-game!

  • With selections, schematics, copy and paste, brushes, and scripting!
  • Use it in creative, survival in single player or on your server.
  • Use it on your Minecraft server to fix grieving and mistakes.

Java Edition required. FastAsyncWorldEdit is compatible with Bukkit, Spigot, Paper, and Tuinity.

Download FastAsyncWorldEdit

Edit The Code

Want to add new features to FastAsyncWorldEdit or fix bugs yourself? You can get the game running, with FastAsyncWorldEdit, from the code here:

For additional information about compiling FastAsyncWorldEdit, see COMPILING.md.

Submitting Your Changes

FastAsyncWorldEdit is open source (specifically licensed under GPL v3), so note that your contributions will also be open source. The best way to submit a change is to create a fork on GitHub, put your changes there, and then create a "pull request" on our FastAsyncWorldEdit repository.

Please read CONTRIBUTING.md for important guidelines to follow.

YourKit


Thank you to YourKit for supporting our product by providing us with their innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor
Beschreibung
No description provided
Readme 60 MiB
Languages
Java 99.2%
Kotlin 0.4%
JavaScript 0.3%