Datei suchen
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
.github Update Wiki link 2021-06-06 21:17:24 +02:00
buildSrc Update to Gradle 7 (#1078) 2021-05-14 23:42:37 +02:00
config/checkstyle Show a message with install instructions when running the jar file 2021-02-25 22:58:17 +01:00
contrib/craftscripts Switch to vanity url 2021-02-16 23:49:04 +01:00
gradle/wrapper Update to Gradle 7 (#1078) 2021-05-14 23:42:37 +02:00
worldedit-bukkit Char block null check (#1030) 2021-06-08 14:28:16 +00:00
worldedit-cli Update Upstream 2021-06-05 10:27:38 +02:00
worldedit-core Char block null check (#1030) 2021-06-08 14:28:16 +00:00
worldedit-fabric Update Upstream 2021-06-05 11:27:27 +02:00
worldedit-forge Update Upstream 2021-06-05 11:27:27 +02:00
worldedit-libs Relocate zstd 2021-05-12 18:04:21 +02:00
worldedit-mod Update so many dependencies, merge Forge/Fabric for final jar (#1651) 2021-02-04 17:45:49 -05:00
worldedit-sponge Update Upstream 2021-06-05 11:27:27 +02:00
.git-blame-ignore-revs Ensure CRLF stays out of the repo 2020-08-24 12:41:26 -04:00
.gitattributes Fix gitattributes 2021-02-22 11:08:45 +01:00
.gitconfig java based merging? 2019-11-19 15:10:36 +00:00
.gitignore Update .gitignore 2021-05-11 19:20:41 -04:00
build.gradle.kts Fix unit tests + Version Determination (#1055) 2021-05-07 23:47:35 +02:00
COMPILING.md Update GitHub actions matching latest Java requirements 2021-05-14 23:46:49 +02:00
CONTRIBUTING.md Update GitHub actions matching latest Java requirements 2021-05-14 23:46:49 +02:00
crowdin.yml Update Crowdin configuration file 2020-01-20 11:30:00 +01:00
fawe-logo.png Update logo 2020-10-11 13:37:11 +02:00
gradle.properties Don't use local offset when compiling locally 2021-04-18 20:23:32 +02:00
gradlew Updated Gradle 2020-09-08 15:34:53 -04:00
gradlew.bat Updated Gradle 2020-09-08 15:34:53 -04:00
HEADER.txt Officially propagate GPL downwards to all files 2020-09-01 16:30:43 -04:00
LICENSE.txt Officially propagate GPL downwards to all files 2020-09-01 16:30:43 -04:00
NOTICE.txt Update build files and NOTICE.txt 2020-08-14 15:29:15 -04:00
README.md Update Wiki link 2021-06-06 21:17:24 +02:00
renovate.json Minor upstream merge 2021-02-03 23:08:39 +01:00
settings.gradle.kts Update Upstream 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