From e9db749e2f0da176d3a4e44742d3e29bacd248fb Mon Sep 17 00:00:00 2001 From: Jordan Date: Thu, 10 Mar 2022 14:27:25 +0000 Subject: [PATCH] Add fluid ticking and refactor post-processing a bit (#1554) * Make postProcessSet a default method and change to void * Throwable#getMessage is nullable * Move (re-)ticking to a post-processor per "platform" - Add fluid ticking * chore: Ignore (for us) irrelevant rules * chore: Fix correct toml syntax? * Re-add removed method for API-compliance and refactor it to have a use * Switch to javax annotations * Switch to recalcBlockCounts for ticking blocks. * No need to set air count anymore either * We can still "not tick" in fast mode in 1.17.2 * update adapters * Let paper create the chunk section if biomes are null * Adjust notes to settings * 1.17.2 didn't exist * Add 1.18.2 * Don't attempt to cache plains biome ID * Use correct annotation Co-authored-by: NotMyFault --- .lift.toml | 4 + .../v1_17_R1_2/PaperweightFaweAdapter.java | 6 + .../fawe/v1_17_R1_2/PaperweightGetBlocks.java | 14 +- .../v1_17_R1_2/PaperweightGetBlocks_Copy.java | 13 +- .../PaperweightPlatformAdapter.java | 52 +++--- .../v1_17_R1_2/PaperweightPostProcessor.java | 175 ++++++++++++++++++ .../fawe/v1_18_R1/PaperweightFaweAdapter.java | 6 + .../fawe/v1_18_R1/PaperweightGetBlocks.java | 19 +- .../v1_18_R1/PaperweightGetBlocks_Copy.java | 13 +- .../v1_18_R1/PaperweightPlatformAdapter.java | 90 ++++----- .../v1_18_R1/PaperweightPostProcessor.java | 175 ++++++++++++++++++ .../fawe/v1_18_R2/PaperweightFaweAdapter.java | 6 + .../fawe/v1_18_R2/PaperweightGetBlocks.java | 27 ++- .../v1_18_R2/PaperweightGetBlocks_Copy.java | 13 +- .../v1_18_R2/PaperweightPlatformAdapter.java | 107 ++++------- .../v1_18_R2/PaperweightPostProcessor.java | 175 ++++++++++++++++++ .../src/main/resources/worldedit-adapters.jar | Bin 621808 -> 630309 bytes .../bukkit/adapter/NMSAdapter.java | 122 ++---------- .../bukkit/BukkitServerInterface.java | 14 ++ .../bukkit/adapter/BukkitImplAdapter.java | 11 ++ .../fastasyncworldedit/core/FaweCache.java | 2 +- .../core/configuration/Settings.java | 16 +- .../core/extent/DisallowedBlocksExtent.java | 5 - .../core/extent/HeightBoundExtent.java | 5 - .../core/extent/MultiRegionExtent.java | 7 +- .../core/extent/NullExtent.java | 7 +- .../core/extent/SingleRegionExtent.java | 9 +- .../core/extent/StripNBTExtent.java | 5 - .../processor/BatchProcessorHolder.java | 7 +- .../extent/processor/EmptyBatchProcessor.java | 7 - .../processor/IBatchProcessorHolder.java | 7 +- .../extent/processor/MultiBatchProcessor.java | 75 +++++--- .../core/extent/processor/NullProcessor.java | 5 - .../heightmap/HeightmapProcessor.java | 5 - .../processor/lighting/RelightProcessor.java | 5 - .../history/changeset/AbstractChangeSet.java | 9 +- .../core/queue/IBatchProcessor.java | 25 ++- .../implementation/ParallelQueueExtent.java | 2 +- .../SingleThreadQueueExtent.java | 4 +- .../implementation/chunk/ChunkHolder.java | 2 +- .../core/util/MultiFuture.java | 55 ++++++ .../sk89q/worldedit/EditSessionBuilder.java | 19 +- .../extension/platform/Platform.java | 20 ++ .../sk89q/worldedit/extent/MaskingExtent.java | 6 - .../com/sk89q/worldedit/regions/Region.java | 6 - .../worldedit/regions/RegionIntersection.java | 11 ++ .../world/block/BlockTypesCache.java | 6 +- 47 files changed, 975 insertions(+), 399 deletions(-) create mode 100644 .lift.toml create mode 100644 worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPostProcessor.java create mode 100644 worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPostProcessor.java create mode 100644 worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPostProcessor.java create mode 100644 worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MultiFuture.java diff --git a/.lift.toml b/.lift.toml new file mode 100644 index 000000000..ce8dc2d05 --- /dev/null +++ b/.lift.toml @@ -0,0 +1,4 @@ +jdkVersion = "17" +build = "gradle clean build -x test" +tools = ["findsecbugs", "ErrorProne", "Semgrep", "Detekt", "ESLint", "Infer"] +ignoreRules = ["CatchAndPrintStackTrace", "ReferenceEquality", "FallThrough", "FutureReturnValueIgnored"] diff --git a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightFaweAdapter.java b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightFaweAdapter.java index b69272704..0bfdfd0b9 100644 --- a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightFaweAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightFaweAdapter.java @@ -6,6 +6,7 @@ import com.fastasyncworldedit.bukkit.adapter.NMSRelighterFactory; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.entity.LazyBaseEntity; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; import com.fastasyncworldedit.core.util.NbtUtils; @@ -694,4 +695,9 @@ public final class PaperweightFaweAdapter extends CachedBukkitAdapter implements } } + @Override + public IBatchProcessor getTickingPostProcessor() { + return new PaperweightPostProcessor(); + } + } diff --git a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks.java b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks.java index 75675d008..9aca32b59 100644 --- a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks.java +++ b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks.java @@ -410,7 +410,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc @SuppressWarnings("rawtypes") public synchronized > T call(IChunkSet set, Runnable finalizer) { forceLoadSections = false; - copy = createCopy ? new PaperweightGetBlocks_Copy(serverLevel) : null; + copy = createCopy ? new PaperweightGetBlocks_Copy(levelChunk) : null; try { ServerLevel nmsWorld = serverLevel; LevelChunk nmsChunk = ensureLoaded(nmsWorld, chunkX, chunkZ); @@ -461,6 +461,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc bitMask |= 1 << layer; + // Changes may still be written to chunk SET char[] tmp = set.load(layerNo); char[] setArr = new char[4096]; System.arraycopy(tmp, 0, setArr, 0, 4096); @@ -477,6 +478,12 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc LevelChunkSection newSection; LevelChunkSection existingSection = levelChunkSections[layer]; + // Don't attempt to tick section whilst we're editing + if (existingSection != null) { + PaperweightPlatformAdapter.clearCounts(existingSection); + existingSection.tickingList.clear(); + } + if (existingSection == null) { newSection = PaperweightPlatformAdapter.newChunkSection(layerNo, setArr, fastmode, adapter); if (PaperweightPlatformAdapter.setSectionAtomic(levelChunkSections, null, newSection, layer)) { @@ -492,10 +499,11 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc } } } - PaperweightPlatformAdapter.fieldTickingBlockCount.set(existingSection, (short) 0); - //ensure that the server doesn't try to tick the chunksection while we're editing it. + //ensure that the server doesn't try to tick the chunksection while we're editing it (again). DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); + PaperweightPlatformAdapter.clearCounts(existingSection); + existingSection.tickingList.clear(); synchronized (lock) { // lock.acquire(); diff --git a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks_Copy.java b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks_Copy.java index 68d284305..5d9c56092 100644 --- a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks_Copy.java +++ b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightGetBlocks_Copy.java @@ -19,6 +19,7 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.chunk.ChunkBiomeContainer; +import net.minecraft.world.level.chunk.LevelChunk; import javax.annotation.Nullable; import java.util.HashMap; @@ -35,13 +36,15 @@ public class PaperweightGetBlocks_Copy implements IChunkGet { private final char[][] blocks; private final int minHeight; private final int maxHeight; - private final ServerLevel serverLevel; + final ServerLevel serverLevel; + final LevelChunk levelChunk; private ChunkBiomeContainer chunkBiomeContainer; - protected PaperweightGetBlocks_Copy(ServerLevel world) { - this.serverLevel = world; - this.minHeight = world.getMinBuildHeight(); - this.maxHeight = world.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. + protected PaperweightGetBlocks_Copy(LevelChunk levelChunk) { + this.levelChunk = levelChunk; + this.serverLevel = levelChunk.level; + this.minHeight = serverLevel.getMinBuildHeight(); + this.maxHeight = serverLevel.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. this.blocks = new char[getSectionCount()][]; } diff --git a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPlatformAdapter.java b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPlatformAdapter.java index 12392d931..b9d2ce9a0 100644 --- a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPlatformAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPlatformAdapter.java @@ -12,7 +12,6 @@ import com.fastasyncworldedit.core.util.ReflectionUtils; import com.fastasyncworldedit.core.util.TaskManager; import com.mojang.datafixers.util.Either; import com.sk89q.worldedit.bukkit.adapter.Refraction; -import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.block.BlockState; @@ -54,9 +53,7 @@ import java.lang.invoke.MethodHandles; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Arrays; -import java.util.HashMap; import java.util.Locale; -import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Semaphore; @@ -71,9 +68,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { public static final Field fieldBitsPerEntry; - public static final Field fieldTickingFluidContent; - public static final Field fieldTickingBlockCount; - public static final Field fieldNonEmptyBlockCount; + private static final Field fieldTickingFluidContent; + private static final Field fieldTickingBlockCount; + private static final Field fieldNonEmptyBlockCount; private static final Field fieldBiomes; @@ -271,15 +268,20 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { NMS conversion */ public static LevelChunkSection newChunkSection( - final int layer, final char[] blocks, boolean fastmode, + final int layer, + final char[] blocks, + boolean fastMode, CachedBukkitAdapter adapter ) { - return newChunkSection(layer, null, blocks, fastmode, adapter); + return newChunkSection(layer, null, blocks, fastMode, adapter); } public static LevelChunkSection newChunkSection( - final int layer, final Function get, char[] set, - boolean fastmode, CachedBukkitAdapter adapter + final int layer, + final Function get, + char[] set, + boolean fastMode, + CachedBukkitAdapter adapter ) { if (set == null) { return newChunkSection(layer); @@ -289,19 +291,13 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { final long[] blockStates = FaweCache.INSTANCE.BLOCK_STATES.get(); final int[] blocksCopy = FaweCache.INSTANCE.SECTION_BLOCKS.get(); try { - int[] num_palette_buffer = new int[1]; - Map ticking_blocks = new HashMap<>(); - int air; + int num_palette; if (get == null) { - air = createPalette(blockToPalette, paletteToBlock, blocksCopy, num_palette_buffer, - set, ticking_blocks, fastmode, adapter + num_palette = createPalette(blockToPalette, paletteToBlock, blocksCopy, set, adapter ); } else { - air = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, - num_palette_buffer, get, set, ticking_blocks, fastmode, adapter - ); + num_palette = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, get, set, adapter); } - int num_palette = num_palette_buffer[0]; // BlockStates int bitsPerEntry = MathMan.log2nlz(num_palette - 1); if (Settings.settings().PROTOCOL_SUPPORT_FIX || num_palette != 1) { @@ -364,17 +360,13 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { fieldStorage.set(dataPaletteBlocks, nmsBits); fieldPalette.set(dataPaletteBlocks, blockStatePalettedContainer); fieldBits.set(dataPaletteBlocks, bitsPerEntry); - setCount(ticking_blocks.size(), 4096 - air, levelChunkSection); - if (!fastmode) { - ticking_blocks.forEach((pos, ordinal) -> levelChunkSection - .setBlockState(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ(), - Block.stateById(ordinal) - )); - } } catch (final IllegalAccessException e) { throw new RuntimeException(e); } + if (!fastMode) { + levelChunkSection.recalcBlockCounts(); + } return levelChunkSection; } catch (final Throwable e) { Arrays.fill(blockToPalette, Integer.MAX_VALUE); @@ -386,11 +378,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { return new LevelChunkSection(layer); } - public static void setCount(final int tickingBlockCount, final int nonEmptyBlockCount, final LevelChunkSection section) throws - IllegalAccessException { - fieldTickingFluidContent.setShort(section, (short) 0); // TODO FIXME - fieldTickingBlockCount.setShort(section, (short) tickingBlockCount); - fieldNonEmptyBlockCount.setShort(section, (short) nonEmptyBlockCount); + public static void clearCounts(final LevelChunkSection section) throws IllegalAccessException { + fieldTickingFluidContent.setShort(section, (short) 0); + fieldTickingBlockCount.setShort(section, (short) 0); } public static Biome[] getBiomeArray(ChunkBiomeContainer chunkBiomeContainer) { diff --git a/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPostProcessor.java b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPostProcessor.java new file mode 100644 index 000000000..0833c6ecb --- /dev/null +++ b/worldedit-bukkit/adapters/adapter-1_17_1/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_17_R1_2/PaperweightPostProcessor.java @@ -0,0 +1,175 @@ +package com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_17_R1_2; + +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.queue.IBatchProcessor; +import com.fastasyncworldedit.core.queue.IChunk; +import com.fastasyncworldedit.core.queue.IChunkGet; +import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.block.BlockState; +import com.sk89q.worldedit.world.block.BlockTypes; +import com.sk89q.worldedit.world.block.BlockTypesCache; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.Fluids; + +import javax.annotation.Nullable; + +public class PaperweightPostProcessor implements IBatchProcessor { + + @Override + public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + return set; + } + + @SuppressWarnings("deprecation") + @Override + public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) { + boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS; + // The PostProcessor shouldn't be added, but just in case + if (!tickFluid) { + return; + } + PaperweightGetBlocks_Copy getBlocks = (PaperweightGetBlocks_Copy) iChunkGet; + layer: + for (int layer = iChunkSet.getMinSectionPosition(); layer <= iChunkSet.getMaxSectionPosition(); layer++) { + char[] set = iChunkSet.loadIfPresent(layer); + if (set == null) { + // No edit means no need to process + continue; + } + char[] get = null; + for (int i = 0; i < 4096; i++) { + char ordinal = set[i]; + char replacedOrdinal = BlockTypesCache.ReservedIDs.__RESERVED__; + boolean fromGet = false; // Used for liquids + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + if (get == null) { + get = getBlocks.load(layer); + } + // If this is null, then it's because we're loading a layer in the range of 0->15, but blocks aren't + // actually being set + if (get == null) { + continue layer; + } + fromGet = true; + ordinal = replacedOrdinal = get[i]; + } + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + continue; + } else if (!fromGet) { // if fromGet, don't do the same again + if (get == null) { + get = getBlocks.load(layer); + } + replacedOrdinal = get[i]; + } + boolean ticking = BlockTypesCache.ticking[ordinal]; + boolean replacedWasTicking = BlockTypesCache.ticking[replacedOrdinal]; + boolean replacedWasLiquid = false; + BlockState replacedState = null; + if (!ticking) { + // If the block being replaced was not ticking, it cannot be a liquid + if (!replacedWasTicking) { + continue; + } + // If the block being replaced is not fluid, we do not need to worry + if (!(replacedWasLiquid = + (replacedState = BlockState.getFromOrdinal(replacedOrdinal)).getMaterial().isLiquid())) { + continue; + } + } + BlockState state = BlockState.getFromOrdinal(ordinal); + boolean liquid = state.getMaterial().isLiquid(); + int x = i & 15; + int y = (i >> 8) & 15; + int z = (i >> 4) & 15; + BlockPos position = new BlockPos((chunk.getX() << 4) + x, (layer << 4) + y, (chunk.getZ() << 4) + z); + if (liquid || replacedWasLiquid) { + if (liquid) { + addFluid(getBlocks.serverLevel, state, position); + continue; + } + // If the replaced fluid (is?) adjacent to water. Do not bother to check adjacent chunks(sections) as this + // may be time consuming. Chances are any fluid blocks in adjacent chunks are being replaced or will end up + // being ticked anyway. We only need it to be "hit" once. + if (!wasAdjacentToWater(get, set, i, x, y, z)) { + continue; + } + addFluid(getBlocks.serverLevel, replacedState, position); + } + } + } + } + + @Nullable + @Override + public Extent construct(final Extent child) { + throw new UnsupportedOperationException("Processing only"); + } + + @Override + public ProcessorScope getScope() { + return ProcessorScope.READING_SET_BLOCKS; + } + + private boolean wasAdjacentToWater(char[] get, char[] set, int i, int x, int y, int z) { + if (set == null || get == null) { + return false; + } + char ordinal; + char reserved = BlockTypesCache.ReservedIDs.__RESERVED__; + if (x > 0 && set[i - 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 1])] && isFluid(ordinal)) { + return true; + } + } + if (x < 15 && set[i + 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 1])] && isFluid(ordinal)) { + return true; + } + } + if (z > 0 && set[i - 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 16])] && isFluid(ordinal)) { + return true; + } + } + if (z < 15 && set[i + 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 16])] && isFluid(ordinal)) { + return true; + } + } + if (y > 0 && set[i - 256] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 256])] && isFluid(ordinal)) { + return true; + } + } + if (y < 15 && set[i + 256] != reserved) { + return BlockTypesCache.ticking[(ordinal = get[i + 256])] && isFluid(ordinal); + } + return false; + } + + @SuppressWarnings("deprecation") + private boolean isFluid(char ordinal) { + return BlockState.getFromOrdinal(ordinal).getMaterial().isLiquid(); + } + + @SuppressWarnings("deprecation") + private void addFluid(final ServerLevel serverLevel, final BlockState replacedState, final BlockPos position) { + Fluid type; + if (replacedState.getBlockType() == BlockTypes.LAVA) { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.LAVA : Fluids.FLOWING_LAVA; + } else { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.WATER : Fluids.FLOWING_WATER; + } + serverLevel.getLiquidTicks().scheduleTick( + position, + type, + type.getTickDelay(serverLevel) + ); + } + +} diff --git a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightFaweAdapter.java b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightFaweAdapter.java index b41718636..f31a81c61 100644 --- a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightFaweAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightFaweAdapter.java @@ -6,6 +6,7 @@ import com.fastasyncworldedit.bukkit.adapter.NMSRelighterFactory; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.entity.LazyBaseEntity; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; import com.fastasyncworldedit.core.util.NbtUtils; @@ -686,4 +687,9 @@ public final class PaperweightFaweAdapter extends CachedBukkitAdapter implements } } + @Override + public IBatchProcessor getTickingPostProcessor() { + return new PaperweightPostProcessor(); + } + } diff --git a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks.java b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks.java index 7a3f217a6..9a2d50fb2 100644 --- a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks.java +++ b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks.java @@ -398,11 +398,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc @SuppressWarnings("rawtypes") public synchronized > T call(IChunkSet set, Runnable finalizer) { forceLoadSections = false; - copy = createCopy ? new PaperweightGetBlocks_Copy(serverLevel) : null; + copy = createCopy ? new PaperweightGetBlocks_Copy(levelChunk) : null; try { ServerLevel nmsWorld = serverLevel; LevelChunk nmsChunk = ensureLoaded(nmsWorld, chunkX, chunkZ); - boolean fastmode = set.isFastMode() && Settings.settings().QUEUE.NO_TICK_FASTMODE; // Remove existing tiles. Create a copy so that we can remove blocks Map chunkTiles = new HashMap<>(nmsChunk.getBlockEntities()); @@ -470,7 +469,6 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc LevelChunkSection newSection = PaperweightPlatformAdapter.newChunkSection( layerNo, new char[4096], - fastmode, adapter, biomeRegistry, biomeData @@ -498,6 +496,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc bitMask |= 1 << getSectionIndex; + // Changes may still be written to chunk SET char[] tmp = set.load(layerNo); char[] setArr = new char[4096]; System.arraycopy(tmp, 0, setArr, 0, 4096); @@ -508,6 +507,11 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc LevelChunkSection newSection; LevelChunkSection existingSection = levelChunkSections[getSectionIndex]; + // Don't attempt to tick section whilst we're editing + if (existingSection != null) { + PaperweightPlatformAdapter.clearCounts(existingSection); + existingSection.tickingList.clear(); + } if (createCopy) { char[] tmpLoad = loadPrivately(layerNo); @@ -529,7 +533,6 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc newSection = PaperweightPlatformAdapter.newChunkSection( layerNo, setArr, - fastmode, adapter, biomeRegistry, biomeData @@ -547,9 +550,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc } } } - PaperweightPlatformAdapter.fieldTickingBlockCount.set(existingSection, (short) 0); - //ensure that the server doesn't try to tick the chunksection while we're editing it. + //ensure that the server doesn't try to tick the chunksection while we're editing it. (Again) + PaperweightPlatformAdapter.clearCounts(existingSection); + existingSection.tickingList.clear(); DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); synchronized (lock) { @@ -583,7 +587,6 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc layerNo, this::loadPrivately, setArr, - fastmode, adapter, biomeRegistry, biomeData @@ -1052,7 +1055,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc x, y, z, - biomeRegistry.get(ResourceLocation.tryParse(biomeType.getId())) + biomeRegistry.getOptional(ResourceLocation.tryParse(biomeType.getId())).orElseThrow() ); } } diff --git a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks_Copy.java b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks_Copy.java index 8c28e701f..56b9d2410 100644 --- a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks_Copy.java +++ b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightGetBlocks_Copy.java @@ -18,6 +18,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.PalettedContainer; import javax.annotation.Nullable; @@ -35,13 +36,15 @@ public class PaperweightGetBlocks_Copy implements IChunkGet { private final char[][] blocks; private final int minHeight; private final int maxHeight; - private final ServerLevel serverLevel; + final ServerLevel serverLevel; + final LevelChunk levelChunk; private PalettedContainer[] biomes = null; - protected PaperweightGetBlocks_Copy(ServerLevel world) { - this.serverLevel = world; - this.minHeight = world.getMinBuildHeight(); - this.maxHeight = world.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. + protected PaperweightGetBlocks_Copy(LevelChunk levelChunk) { + this.levelChunk = levelChunk; + this.serverLevel = levelChunk.level; + this.minHeight = serverLevel.getMinBuildHeight(); + this.maxHeight = serverLevel.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. this.blocks = new char[getSectionCount()][]; } diff --git a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPlatformAdapter.java b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPlatformAdapter.java index 2e44f4caa..15aea4cfa 100644 --- a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPlatformAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPlatformAdapter.java @@ -11,7 +11,6 @@ import com.fastasyncworldedit.core.util.ReflectionUtils; import com.fastasyncworldedit.core.util.TaskManager; import com.mojang.datafixers.util.Either; import com.sk89q.worldedit.bukkit.adapter.Refraction; -import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.block.BlockState; @@ -85,9 +84,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { public static final Field fieldPalette; - public static final Field fieldTickingFluidCount; - public static final Field fieldTickingBlockCount; - public static final Field fieldNonEmptyBlockCount; + private static final Field fieldTickingFluidCount; + private static final Field fieldTickingBlockCount; + private static final Field fieldNonEmptyBlockCount; private static final MethodHandle methodGetVisibleChunk; @@ -301,16 +300,21 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { NMS conversion */ public static LevelChunkSection newChunkSection( - final int layer, final char[] blocks, boolean fastmode, - CachedBukkitAdapter adapter, Registry biomeRegistry, + final int layer, + final char[] blocks, + CachedBukkitAdapter adapter, + Registry biomeRegistry, @Nullable PalettedContainer biomes ) { - return newChunkSection(layer, null, blocks, fastmode, adapter, biomeRegistry, biomes); + return newChunkSection(layer, null, blocks, adapter, biomeRegistry, biomes); } public static LevelChunkSection newChunkSection( - final int layer, final Function get, char[] set, - boolean fastmode, CachedBukkitAdapter adapter, Registry biomeRegistry, + final int layer, + final Function get, + char[] set, + CachedBukkitAdapter adapter, + Registry biomeRegistry, @Nullable PalettedContainer biomes ) { if (set == null) { @@ -321,24 +325,14 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { final long[] blockStates = FaweCache.INSTANCE.BLOCK_STATES.get(); final int[] blocksCopy = FaweCache.INSTANCE.SECTION_BLOCKS.get(); try { - int[] num_palette_buffer = new int[1]; - Map ticking_blocks = new HashMap<>(); - int air; + int num_palette; if (get == null) { - air = createPalette(blockToPalette, paletteToBlock, blocksCopy, num_palette_buffer, - set, ticking_blocks, fastmode, adapter - ); + num_palette = createPalette(blockToPalette, paletteToBlock, blocksCopy, set, adapter); } else { - air = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, - num_palette_buffer, get, set, ticking_blocks, fastmode, adapter - ); + num_palette = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, get, set, adapter); } - int num_palette = num_palette_buffer[0]; - // BlockStates int bitsPerEntry = MathMan.log2nlz(num_palette - 1); - Object configuration = - PalettedContainer.Strategy.SECTION_STATES.getConfiguration(new FakeIdMapBlock(num_palette), bitsPerEntry); if (bitsPerEntry > 0 && bitsPerEntry < 5) { bitsPerEntry = 4; } else if (bitsPerEntry > 8) { @@ -365,7 +359,6 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { } else { nmsBits = new SimpleBitStorage(bitsPerEntry, 4096, bits); } - final Palette blockStatePalette; List palette; if (bitsPerEntry < 9) { palette = new ArrayList<>(); @@ -390,30 +383,15 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { palette ); LevelChunkSection levelChunkSection; - try { - //fieldStorage.set(dataPaletteBlocks, nmsBits); - //fieldPalette.set(dataPaletteBlocks, blockStatePalettedContainer); - if (biomes == null) { - biomes = new PalettedContainer<>( - biomeRegistry, - biomeRegistry.getOrThrow(Biomes.PLAINS), - PalettedContainer.Strategy.SECTION_BIOMES, - null - ); - } - levelChunkSection = new LevelChunkSection(layer, blockStatePalettedContainer, biomes); - setCount(ticking_blocks.size(), 4096 - air, levelChunkSection); - if (!fastmode) { - ticking_blocks.forEach((pos, ordinal) -> levelChunkSection.setBlockState( - pos.getBlockX(), - pos.getBlockY(), - pos.getBlockZ(), - Block.stateById(ordinal) - )); - } - } catch (final IllegalAccessException e) { - throw new RuntimeException(e); + if (biomes == null) { + biomes = new PalettedContainer<>( + biomeRegistry, + biomeRegistry.getOrThrow(Biomes.PLAINS), + PalettedContainer.Strategy.SECTION_BIOMES, + null + ); } + levelChunkSection = new LevelChunkSection(layer, blockStatePalettedContainer, biomes); return levelChunkSection; } catch (final Throwable e) { @@ -422,23 +400,21 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { } } + @SuppressWarnings("deprecation") // Only deprecated in paper private static LevelChunkSection newChunkSection( int layer, Registry biomeRegistry, @Nullable PalettedContainer biomes ) { + if (biomes == null) { + return new LevelChunkSection(layer, biomeRegistry); + } PalettedContainer dataPaletteBlocks = new PalettedContainer<>( Block.BLOCK_STATE_REGISTRY, Blocks.AIR.defaultBlockState(), PalettedContainer.Strategy.SECTION_STATES, null ); - PalettedContainer biomesPalette = biomes != null ? biomes : new PalettedContainer<>( - biomeRegistry, - biomeRegistry.getOrThrow(Biomes.PLAINS), - PalettedContainer.Strategy.SECTION_BIOMES, - null - ); - return new LevelChunkSection(layer, dataPaletteBlocks, biomesPalette); + return new LevelChunkSection(layer, dataPaletteBlocks, biomes); } /** @@ -541,11 +517,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { return biomePalettedContainer; } - public static void setCount(final int tickingBlockCount, final int nonEmptyBlockCount, final LevelChunkSection section) throws - IllegalAccessException { - fieldTickingFluidCount.setShort(section, (short) 0); // TODO FIXME - fieldTickingBlockCount.setShort(section, (short) tickingBlockCount); - fieldNonEmptyBlockCount.setShort(section, (short) nonEmptyBlockCount); + public static void clearCounts(final LevelChunkSection section) throws IllegalAccessException { + fieldTickingFluidCount.setShort(section, (short) 0); + fieldTickingBlockCount.setShort(section, (short) 0); } public static BiomeType adapt(Biome biome, LevelAccessor levelAccessor) { diff --git a/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPostProcessor.java b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPostProcessor.java new file mode 100644 index 000000000..6354d349f --- /dev/null +++ b/worldedit-bukkit/adapters/adapter-1_18/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R1/PaperweightPostProcessor.java @@ -0,0 +1,175 @@ +package com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_18_R1; + +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.queue.IBatchProcessor; +import com.fastasyncworldedit.core.queue.IChunk; +import com.fastasyncworldedit.core.queue.IChunkGet; +import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.block.BlockState; +import com.sk89q.worldedit.world.block.BlockTypes; +import com.sk89q.worldedit.world.block.BlockTypesCache; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.Fluids; + +import javax.annotation.Nullable; + +public class PaperweightPostProcessor implements IBatchProcessor { + + @Override + public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + return set; + } + + @SuppressWarnings("deprecation") + @Override + public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) { + boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS; + // The PostProcessor shouldn't be added, but just in case + if (!tickFluid) { + return; + } + PaperweightGetBlocks_Copy getBlocks = (PaperweightGetBlocks_Copy) iChunkGet; + layer: + for (int layer = iChunkSet.getMinSectionPosition(); layer <= iChunkSet.getMaxSectionPosition(); layer++) { + char[] set = iChunkSet.loadIfPresent(layer); + if (set == null) { + // No edit means no need to process + continue; + } + char[] get = null; + for (int i = 0; i < 4096; i++) { + char ordinal = set[i]; + char replacedOrdinal = BlockTypesCache.ReservedIDs.__RESERVED__; + boolean fromGet = false; // Used for liquids + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + if (get == null) { + get = getBlocks.load(layer); + } + // If this is null, then it's because we're loading a layer in the range of 0->15, but blocks aren't + // actually being set + if (get == null) { + continue layer; + } + fromGet = true; + ordinal = replacedOrdinal = get[i]; + } + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + continue; + } else if (!fromGet) { // if fromGet, don't do the same again + if (get == null) { + get = getBlocks.load(layer); + } + replacedOrdinal = get[i]; + } + boolean ticking = BlockTypesCache.ticking[ordinal]; + boolean replacedWasTicking = BlockTypesCache.ticking[replacedOrdinal]; + boolean replacedWasLiquid = false; + BlockState replacedState = null; + if (!ticking) { + // If the block being replaced was not ticking, it cannot be a liquid + if (!replacedWasTicking) { + continue; + } + // If the block being replaced is not fluid, we do not need to worry + if (!(replacedWasLiquid = + (replacedState = BlockState.getFromOrdinal(replacedOrdinal)).getMaterial().isLiquid())) { + continue; + } + } + BlockState state = BlockState.getFromOrdinal(ordinal); + boolean liquid = state.getMaterial().isLiquid(); + int x = i & 15; + int y = (i >> 8) & 15; + int z = (i >> 4) & 15; + BlockPos position = new BlockPos((chunk.getX() << 4) + x, (layer << 4) + y, (chunk.getZ() << 4) + z); + if (liquid || replacedWasLiquid) { + if (liquid) { + addFluid(getBlocks.serverLevel, state, position); + continue; + } + // If the replaced fluid (is?) adjacent to water. Do not bother to check adjacent chunks(sections) as this + // may be time consuming. Chances are any fluid blocks in adjacent chunks are being replaced or will end up + // being ticked anyway. We only need it to be "hit" once. + if (!wasAdjacentToWater(get, set, i, x, y, z)) { + continue; + } + addFluid(getBlocks.serverLevel, replacedState, position); + } + } + } + } + + @Nullable + @Override + public Extent construct(final Extent child) { + throw new UnsupportedOperationException("Processing only"); + } + + @Override + public ProcessorScope getScope() { + return ProcessorScope.READING_SET_BLOCKS; + } + + private boolean wasAdjacentToWater(char[] get, char[] set, int i, int x, int y, int z) { + if (set == null || get == null) { + return false; + } + char ordinal; + char reserved = BlockTypesCache.ReservedIDs.__RESERVED__; + if (x > 0 && set[i - 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 1])] && isFluid(ordinal)) { + return true; + } + } + if (x < 15 && set[i + 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 1])] && isFluid(ordinal)) { + return true; + } + } + if (z > 0 && set[i - 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 16])] && isFluid(ordinal)) { + return true; + } + } + if (z < 15 && set[i + 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 16])] && isFluid(ordinal)) { + return true; + } + } + if (y > 0 && set[i - 256] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 256])] && isFluid(ordinal)) { + return true; + } + } + if (y < 15 && set[i + 256] != reserved) { + return BlockTypesCache.ticking[(ordinal = get[i + 256])] && isFluid(ordinal); + } + return false; + } + + @SuppressWarnings("deprecation") + private boolean isFluid(char ordinal) { + return BlockState.getFromOrdinal(ordinal).getMaterial().isLiquid(); + } + + @SuppressWarnings("deprecation") + private void addFluid(final ServerLevel serverLevel, final BlockState replacedState, final BlockPos position) { + Fluid type; + if (replacedState.getBlockType() == BlockTypes.LAVA) { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.LAVA : Fluids.FLOWING_LAVA; + } else { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.WATER : Fluids.FLOWING_WATER; + } + serverLevel.scheduleTick( + position, + type, + type.getTickDelay(serverLevel) + ); + } + +} diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightFaweAdapter.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightFaweAdapter.java index e2b926f17..22b5fd3c0 100644 --- a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightFaweAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightFaweAdapter.java @@ -6,6 +6,7 @@ import com.fastasyncworldedit.bukkit.adapter.NMSRelighterFactory; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.entity.LazyBaseEntity; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; import com.fastasyncworldedit.core.util.NbtUtils; @@ -690,4 +691,9 @@ public final class PaperweightFaweAdapter extends CachedBukkitAdapter implements } } + @Override + public IBatchProcessor getTickingPostProcessor() { + return new PaperweightPostProcessor(); + } + } diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks.java index 6eff4675c..0d0676576 100644 --- a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks.java +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks.java @@ -99,7 +99,8 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc private final int maxHeight; private final int minSectionPosition; private final int maxSectionPosition; - private final IdMap> biomeRegistry; + private final Registry biomeRegistry; + private final IdMap> biomeHolderIdMap; private LevelChunkSection[] sections; private LevelChunk levelChunk; private DataLayer[] blockLight; @@ -124,7 +125,8 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc this.maxSectionPosition = maxHeight >> 4; this.skyLight = new DataLayer[getSectionCount()]; this.blockLight = new DataLayer[getSectionCount()]; - this.biomeRegistry = serverLevel.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY).asHolderIdMap(); + this.biomeRegistry = serverLevel.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + this.biomeHolderIdMap = biomeRegistry.asHolderIdMap(); } public int getChunkX() { @@ -399,11 +401,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc @SuppressWarnings("rawtypes") public synchronized > T call(IChunkSet set, Runnable finalizer) { forceLoadSections = false; - copy = createCopy ? new PaperweightGetBlocks_Copy(serverLevel) : null; + copy = createCopy ? new PaperweightGetBlocks_Copy(levelChunk) : null; try { ServerLevel nmsWorld = serverLevel; LevelChunk nmsChunk = ensureLoaded(nmsWorld, chunkX, chunkZ); - boolean fastmode = set.isFastMode() && Settings.settings().QUEUE.NO_TICK_FASTMODE; // Remove existing tiles. Create a copy so that we can remove blocks Map chunkTiles = new HashMap<>(nmsChunk.getBlockEntities()); @@ -466,12 +467,11 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc if (existingSection == null) { PalettedContainer> biomeData = PaperweightPlatformAdapter.getBiomePalettedContainer( biomes[setSectionIndex], - biomeRegistry + biomeHolderIdMap ); LevelChunkSection newSection = PaperweightPlatformAdapter.newChunkSection( layerNo, new char[4096], - fastmode, adapter, biomeRegistry, biomeData @@ -527,19 +527,18 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc if (existingSection == null) { PalettedContainer> biomeData = biomes == null ? new PalettedContainer<>( - biomeRegistry, - biomeRegistry.byIdOrThrow(WorldEditPlugin + biomeHolderIdMap, + biomeHolderIdMap.byIdOrThrow(WorldEditPlugin .getInstance() .getBukkitImplAdapter() .getInternalBiomeId( BiomeTypes.PLAINS)), PalettedContainer.Strategy.SECTION_BIOMES, null - ) : PaperweightPlatformAdapter.getBiomePalettedContainer(biomes[setSectionIndex], biomeRegistry); + ) : PaperweightPlatformAdapter.getBiomePalettedContainer(biomes[setSectionIndex], biomeHolderIdMap); newSection = PaperweightPlatformAdapter.newChunkSection( layerNo, setArr, - fastmode, adapter, biomeRegistry, biomeData @@ -562,9 +561,10 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc } } } - PaperweightPlatformAdapter.fieldTickingBlockCount.set(existingSection, (short) 0); - //ensure that the server doesn't try to tick the chunksection while we're editing it. + //ensure that the server doesn't try to tick the chunksection while we're editing it. (Again) + PaperweightPlatformAdapter.clearCounts(existingSection); + existingSection.tickingList.clear(); DelegateSemaphore lock = PaperweightPlatformAdapter.applyLock(existingSection); synchronized (lock) { @@ -601,7 +601,6 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc layerNo, this::loadPrivately, setArr, - fastmode, adapter, biomeRegistry, biomeData @@ -1070,7 +1069,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc x, y, z, - biomeRegistry.byIdOrThrow(WorldEditPlugin + biomeHolderIdMap.byIdOrThrow(WorldEditPlugin .getInstance() .getBukkitImplAdapter() .getInternalBiomeId(biomeType)) diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks_Copy.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks_Copy.java index d9168b13f..1404fd1c7 100644 --- a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks_Copy.java +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightGetBlocks_Copy.java @@ -20,6 +20,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.PalettedContainer; import javax.annotation.Nullable; @@ -37,13 +38,15 @@ public class PaperweightGetBlocks_Copy implements IChunkGet { private final char[][] blocks; private final int minHeight; private final int maxHeight; - private final ServerLevel serverLevel; + final ServerLevel serverLevel; + final LevelChunk levelChunk; private PalettedContainer>[] biomes = null; - protected PaperweightGetBlocks_Copy(ServerLevel world) { - this.serverLevel = world; - this.minHeight = world.getMinBuildHeight(); - this.maxHeight = world.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. + protected PaperweightGetBlocks_Copy(LevelChunk levelChunk) { + this.levelChunk = levelChunk; + this.serverLevel = levelChunk.level; + this.minHeight = serverLevel.getMinBuildHeight(); + this.maxHeight = serverLevel.getMaxBuildHeight() - 1; // Minecraft max limit is exclusive. this.blocks = new char[getSectionCount()][]; } diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java index 209e867f7..151289d89 100644 --- a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java @@ -13,7 +13,6 @@ import com.mojang.datafixers.util.Either; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; import com.sk89q.worldedit.bukkit.adapter.Refraction; -import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.block.BlockState; @@ -84,10 +83,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { public static final Field fieldStorage; public static final Field fieldPalette; - - public static final Field fieldTickingFluidCount; - public static final Field fieldTickingBlockCount; - public static final Field fieldNonEmptyBlockCount; + private static final Field fieldTickingFluidCount; + private static final Field fieldTickingBlockCount; + private static final Field fieldNonEmptyBlockCount; private static final MethodHandle methodGetVisibleChunk; @@ -303,16 +301,21 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { NMS conversion */ public static LevelChunkSection newChunkSection( - final int layer, final char[] blocks, boolean fastmode, - CachedBukkitAdapter adapter, IdMap> biomeRegistry, + final int layer, + final char[] blocks, + CachedBukkitAdapter adapter, + Registry biomeRegistry, @Nullable PalettedContainer> biomes ) { - return newChunkSection(layer, null, blocks, fastmode, adapter, biomeRegistry, biomes); + return newChunkSection(layer, null, blocks, adapter, biomeRegistry, biomes); } public static LevelChunkSection newChunkSection( - final int layer, final Function get, char[] set, - boolean fastmode, CachedBukkitAdapter adapter, IdMap> biomeRegistry, + final int layer, + final Function get, + char[] set, + CachedBukkitAdapter adapter, + Registry biomeRegistry, @Nullable PalettedContainer> biomes ) { if (set == null) { @@ -323,24 +326,14 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { final long[] blockStates = FaweCache.INSTANCE.BLOCK_STATES.get(); final int[] blocksCopy = FaweCache.INSTANCE.SECTION_BLOCKS.get(); try { - int[] num_palette_buffer = new int[1]; - Map ticking_blocks = new HashMap<>(); - int air; + int num_palette; if (get == null) { - air = createPalette(blockToPalette, paletteToBlock, blocksCopy, num_palette_buffer, - set, ticking_blocks, fastmode, adapter - ); + num_palette = createPalette(blockToPalette, paletteToBlock, blocksCopy, set, adapter); } else { - air = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, - num_palette_buffer, get, set, ticking_blocks, fastmode, adapter - ); + num_palette = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, get, set, adapter); } - int num_palette = num_palette_buffer[0]; - // BlockStates int bitsPerEntry = MathMan.log2nlz(num_palette - 1); - Object configuration = - PalettedContainer.Strategy.SECTION_STATES.getConfiguration(new FakeIdMapBlock(num_palette), bitsPerEntry); if (bitsPerEntry > 0 && bitsPerEntry < 5) { bitsPerEntry = 4; } else if (bitsPerEntry > 8) { @@ -367,7 +360,6 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { } else { nmsBits = new SimpleBitStorage(bitsPerEntry, 4096, bits); } - final Palette blockStatePalette; List palette; if (bitsPerEntry < 9) { palette = new ArrayList<>(); @@ -391,62 +383,43 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { nmsBits, palette ); - LevelChunkSection levelChunkSection; - try { - //fieldStorage.set(dataPaletteBlocks, nmsBits); - //fieldPalette.set(dataPaletteBlocks, blockStatePalettedContainer); - if (biomes == null) { - biomes = new PalettedContainer<>( - biomeRegistry, - biomeRegistry.byIdOrThrow(WorldEditPlugin - .getInstance() - .getBukkitImplAdapter() - .getInternalBiomeId(BiomeTypes.PLAINS)), - PalettedContainer.Strategy.SECTION_BIOMES, - null - ); - } - levelChunkSection = new LevelChunkSection(layer, blockStatePalettedContainer, biomes); - setCount(ticking_blocks.size(), 4096 - air, levelChunkSection); - if (!fastmode) { - ticking_blocks.forEach((pos, ordinal) -> levelChunkSection.setBlockState( - pos.getBlockX(), - pos.getBlockY(), - pos.getBlockZ(), - Block.stateById(ordinal) - )); - } - } catch (final IllegalAccessException e) { - throw new RuntimeException(e); + if (biomes == null) { + IdMap> biomeHolderIdMap = biomeRegistry.asHolderIdMap(); + biomes = new PalettedContainer<>( + biomeHolderIdMap, + biomeHolderIdMap.byIdOrThrow(WorldEditPlugin + .getInstance() + .getBukkitImplAdapter() + .getInternalBiomeId( + BiomeTypes.PLAINS)), + PalettedContainer.Strategy.SECTION_BIOMES, + null + ); } - return levelChunkSection; + return new LevelChunkSection(layer, blockStatePalettedContainer, biomes); } catch (final Throwable e) { Arrays.fill(blockToPalette, Integer.MAX_VALUE); throw e; } } + @SuppressWarnings("deprecation") // Only deprecated in paper private static LevelChunkSection newChunkSection( - int layer, IdMap> biomeRegistry, + int layer, + Registry biomeRegistry, @Nullable PalettedContainer> biomes ) { + if (biomes == null) { + return new LevelChunkSection(layer, biomeRegistry); + } PalettedContainer dataPaletteBlocks = new PalettedContainer<>( Block.BLOCK_STATE_REGISTRY, Blocks.AIR.defaultBlockState(), PalettedContainer.Strategy.SECTION_STATES, null ); - PalettedContainer> biomesPalette = biomes != null ? biomes : new PalettedContainer<>( - biomeRegistry, - biomeRegistry.byIdOrThrow(WorldEditPlugin - .getInstance() - .getBukkitImplAdapter() - .getInternalBiomeId(BiomeTypes.PLAINS)), - PalettedContainer.Strategy.SECTION_BIOMES, - null - ); - return new LevelChunkSection(layer, dataPaletteBlocks, biomesPalette); + return new LevelChunkSection(layer, dataPaletteBlocks, biomes); } /** @@ -556,11 +529,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { return biomePalettedContainer; } - public static void setCount(final int tickingBlockCount, final int nonEmptyBlockCount, final LevelChunkSection section) throws - IllegalAccessException { - fieldTickingFluidCount.setShort(section, (short) 0); // TODO FIXME - fieldTickingBlockCount.setShort(section, (short) tickingBlockCount); - fieldNonEmptyBlockCount.setShort(section, (short) nonEmptyBlockCount); + public static void clearCounts(final LevelChunkSection section) throws IllegalAccessException { + fieldTickingFluidCount.setShort(section, (short) 0); + fieldTickingBlockCount.setShort(section, (short) 0); } public static BiomeType adapt(Holder biome, LevelAccessor levelAccessor) { diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPostProcessor.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPostProcessor.java new file mode 100644 index 000000000..abc8d6150 --- /dev/null +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPostProcessor.java @@ -0,0 +1,175 @@ +package com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_18_R2; + +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.queue.IBatchProcessor; +import com.fastasyncworldedit.core.queue.IChunk; +import com.fastasyncworldedit.core.queue.IChunkGet; +import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.world.block.BlockState; +import com.sk89q.worldedit.world.block.BlockTypes; +import com.sk89q.worldedit.world.block.BlockTypesCache; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.Fluids; + +import javax.annotation.Nullable; + +public class PaperweightPostProcessor implements IBatchProcessor { + + @Override + public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + return set; + } + + @SuppressWarnings("deprecation") + @Override + public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) { + boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS; + // The PostProcessor shouldn't be added, but just in case + if (!tickFluid) { + return; + } + PaperweightGetBlocks_Copy getBlocks = (PaperweightGetBlocks_Copy) iChunkGet; + layer: + for (int layer = iChunkSet.getMinSectionPosition(); layer <= iChunkSet.getMaxSectionPosition(); layer++) { + char[] set = iChunkSet.loadIfPresent(layer); + if (set == null) { + // No edit means no need to process + continue; + } + char[] get = null; + for (int i = 0; i < 4096; i++) { + char ordinal = set[i]; + char replacedOrdinal = BlockTypesCache.ReservedIDs.__RESERVED__; + boolean fromGet = false; // Used for liquids + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + if (get == null) { + get = getBlocks.load(layer); + } + // If this is null, then it's because we're loading a layer in the range of 0->15, but blocks aren't + // actually being set + if (get == null) { + continue layer; + } + fromGet = true; + ordinal = replacedOrdinal = get[i]; + } + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + continue; + } else if (!fromGet) { // if fromGet, don't do the same again + if (get == null) { + get = getBlocks.load(layer); + } + replacedOrdinal = get[i]; + } + boolean ticking = BlockTypesCache.ticking[ordinal]; + boolean replacedWasTicking = BlockTypesCache.ticking[replacedOrdinal]; + boolean replacedWasLiquid = false; + BlockState replacedState = null; + if (!ticking) { + // If the block being replaced was not ticking, it cannot be a liquid + if (!replacedWasTicking) { + continue; + } + // If the block being replaced is not fluid, we do not need to worry + if (!(replacedWasLiquid = + (replacedState = BlockState.getFromOrdinal(replacedOrdinal)).getMaterial().isLiquid())) { + continue; + } + } + BlockState state = BlockState.getFromOrdinal(ordinal); + boolean liquid = state.getMaterial().isLiquid(); + int x = i & 15; + int y = (i >> 8) & 15; + int z = (i >> 4) & 15; + BlockPos position = new BlockPos((chunk.getX() << 4) + x, (layer << 4) + y, (chunk.getZ() << 4) + z); + if (liquid || replacedWasLiquid) { + if (liquid) { + addFluid(getBlocks.serverLevel, state, position); + continue; + } + // If the replaced fluid (is?) adjacent to water. Do not bother to check adjacent chunks(sections) as this + // may be time consuming. Chances are any fluid blocks in adjacent chunks are being replaced or will end up + // being ticked anyway. We only need it to be "hit" once. + if (!wasAdjacentToWater(get, set, i, x, y, z)) { + continue; + } + addFluid(getBlocks.serverLevel, replacedState, position); + } + } + } + } + + @Nullable + @Override + public Extent construct(final Extent child) { + throw new UnsupportedOperationException("Processing only"); + } + + @Override + public ProcessorScope getScope() { + return ProcessorScope.READING_SET_BLOCKS; + } + + private boolean wasAdjacentToWater(char[] get, char[] set, int i, int x, int y, int z) { + if (set == null || get == null) { + return false; + } + char ordinal; + char reserved = BlockTypesCache.ReservedIDs.__RESERVED__; + if (x > 0 && set[i - 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 1])] && isFluid(ordinal)) { + return true; + } + } + if (x < 15 && set[i + 1] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 1])] && isFluid(ordinal)) { + return true; + } + } + if (z > 0 && set[i - 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 16])] && isFluid(ordinal)) { + return true; + } + } + if (z < 15 && set[i + 16] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i + 16])] && isFluid(ordinal)) { + return true; + } + } + if (y > 0 && set[i - 256] != reserved) { + if (BlockTypesCache.ticking[(ordinal = get[i - 256])] && isFluid(ordinal)) { + return true; + } + } + if (y < 15 && set[i + 256] != reserved) { + return BlockTypesCache.ticking[(ordinal = get[i + 256])] && isFluid(ordinal); + } + return false; + } + + @SuppressWarnings("deprecation") + private boolean isFluid(char ordinal) { + return BlockState.getFromOrdinal(ordinal).getMaterial().isLiquid(); + } + + @SuppressWarnings("deprecation") + private void addFluid(final ServerLevel serverLevel, final BlockState replacedState, final BlockPos position) { + Fluid type; + if (replacedState.getBlockType() == BlockTypes.LAVA) { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.LAVA : Fluids.FLOWING_LAVA; + } else { + type = (int) replacedState.getState(PropertyKey.LEVEL) == 0 ? Fluids.WATER : Fluids.FLOWING_WATER; + } + serverLevel.scheduleTick( + position, + type, + type.getTickDelay(serverLevel) + ); + } + +} diff --git a/worldedit-bukkit/adapters/adapter-legacy/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/adapters/adapter-legacy/src/main/resources/worldedit-adapters.jar index 6ed8e0e9797fd0b25ca313365028ffb16653b2a5..ab4f54decf9c5e1a3181422baea9a5d9d7d4de27 100644 GIT binary patch delta 148134 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 delta 139839 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≪^BQ&yUt<>^Jz=|zHr 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 VRC`}Lm5It^&pJu+eTLCV{{sxWvCIGf diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java index bb86a8bc4..9726f7089 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java @@ -1,25 +1,21 @@ package com.fastasyncworldedit.bukkit.adapter; import com.fastasyncworldedit.core.FAWEPlatformAdapterImpl; -import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.util.MathMan; -import com.sk89q.worldedit.bukkit.WorldEditPlugin; -import com.sk89q.worldedit.math.BlockVector3; -import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockTypesCache; -import java.util.Map; import java.util.function.Function; public class NMSAdapter implements FAWEPlatformAdapterImpl { public static int createPalette( - int[] blockToPalette, int[] paletteToBlock, int[] blocksCopy, - int[] num_palette_buffer, char[] set, Map ticking_blocks, boolean fastmode, + int[] blockToPalette, + int[] paletteToBlock, + int[] blocksCopy, + char[] set, CachedBukkitAdapter adapter ) { - int air = 0; int num_palette = 0; for (int i = 0; i < 4096; i++) { char ordinal = set[i]; @@ -42,52 +38,26 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { } System.arraycopy(adapter.getOrdinalToIbdID(), 0, blockToPalette, 0, adapter.getOrdinalToIbdID().length); } - char lastOrdinal = 0; - boolean lastticking = false; - boolean tick_placed = Settings.settings().EXPERIMENTAL.ALLOW_TICK_PLACED; for (int i = 0; i < 4096; i++) { char ordinal = set[i]; - switch (ordinal) { - case BlockTypesCache.ReservedIDs.__RESERVED__: - ordinal = BlockTypesCache.ReservedIDs.AIR; - case BlockTypesCache.ReservedIDs.AIR, BlockTypesCache.ReservedIDs.CAVE_AIR, BlockTypesCache.ReservedIDs.VOID_AIR: - air++; - break; - default: - if (!fastmode && !tick_placed) { - boolean ticking; - if (ordinal != lastOrdinal) { - ticking = BlockTypesCache.ticking[ordinal]; - lastOrdinal = ordinal; - lastticking = ticking; - } else { - ticking = lastticking; - } - if (ticking) { - BlockState state = BlockState.getFromOrdinal(ordinal); - ticking_blocks - .put( - BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin.getInstance().getBukkitImplAdapter() - .getInternalBlockStateId(state).orElse(0) - ); - } - } + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + ordinal = BlockTypesCache.ReservedIDs.AIR; } int palette = blockToPalette[ordinal]; blocksCopy[i] = palette; } - num_palette_buffer[0] = num_palette; - return air; + return num_palette; } public static int createPalette( - int layer, int[] blockToPalette, int[] paletteToBlock, - int[] blocksCopy, int[] num_palette_buffer, Function get, char[] set, - Map ticking_blocks, boolean fastmode, + int layer, + int[] blockToPalette, + int[] paletteToBlock, + int[] blocksCopy, + Function get, + char[] set, CachedBukkitAdapter adapter ) { - int air = 0; int num_palette = 0; char[] getArr = null; for (int i = 0; i < 4096; i++) { @@ -117,73 +87,21 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { } System.arraycopy(adapter.getOrdinalToIbdID(), 0, blockToPalette, 0, adapter.getOrdinalToIbdID().length); } - char lastOrdinal = BlockTypesCache.ReservedIDs.__RESERVED__; - boolean lastticking = false; - boolean tick_placed = Settings.settings().EXPERIMENTAL.ALLOW_TICK_PLACED; - boolean tick_existing = Settings.settings().EXPERIMENTAL.ALLOW_TICK_EXISTING; for (int i = 0; i < 4096; i++) { - char ordinal = set[i]; - switch (ordinal) { - case BlockTypesCache.ReservedIDs.__RESERVED__ -> { - if (getArr == null) { - getArr = get.apply(layer); - } - set[i] = switch (ordinal = getArr[i]) { - case BlockTypesCache.ReservedIDs.__RESERVED__: - ordinal = BlockTypesCache.ReservedIDs.AIR; - case BlockTypesCache.ReservedIDs.AIR, BlockTypesCache.ReservedIDs.CAVE_AIR, BlockTypesCache.ReservedIDs.VOID_AIR: - air++; - yield ordinal; - default: - if (!fastmode && !tick_placed && tick_existing) { - boolean ticking; - if (ordinal != lastOrdinal) { - ticking = BlockTypesCache.ticking[ordinal]; - lastOrdinal = ordinal; - lastticking = ticking; - } else { - ticking = lastticking; - } - if (ticking) { - BlockState state = BlockState.getFromOrdinal(ordinal); - ticking_blocks.put(BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin - .getInstance() - .getBukkitImplAdapter() - .getInternalBlockStateId(state) - .orElse(0) - ); - } - } - yield ordinal; - }; + char ordinal= set[i]; + if (ordinal == BlockTypesCache.ReservedIDs.__RESERVED__) { + if (getArr == null) { + getArr = get.apply(layer); } - case BlockTypesCache.ReservedIDs.AIR, BlockTypesCache.ReservedIDs.CAVE_AIR, BlockTypesCache.ReservedIDs.VOID_AIR -> air++; - } - if (!fastmode && tick_placed) { - boolean ticking; - if (ordinal != lastOrdinal) { - ticking = BlockTypesCache.ticking[ordinal]; - lastOrdinal = ordinal; - lastticking = ticking; - } else { - ticking = lastticking; - } - if (ticking) { - BlockState state = BlockState.getFromOrdinal(ordinal); - ticking_blocks.put( - BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin.getInstance().getBukkitImplAdapter() - .getInternalBlockStateId(state).orElse(0) - ); + if ((ordinal = getArr[i]) == BlockTypesCache.ReservedIDs.__RESERVED__) { + ordinal = BlockTypesCache.ReservedIDs.AIR; } } int palette = blockToPalette[ordinal]; blocksCopy[i] = palette; } - num_palette_buffer[0] = num_palette; - return air; + return num_palette; } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 89bbaa0cf..8278142b6 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -20,7 +20,9 @@ package com.sk89q.worldedit.bukkit; import com.fastasyncworldedit.bukkit.util.MinecraftVersion; +import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.google.common.collect.Sets; import com.sk89q.bukkit.util.CommandInfo; import com.sk89q.bukkit.util.CommandRegistration; @@ -289,5 +291,17 @@ public class BukkitServerInterface extends AbstractPlatform implements MultiUser public int versionMaxY() { return MinecraftVersion.getCurrent().isEqualOrHigherThan(MinecraftVersion.CAVES_18) ? 319 : 255; } + + @Override + public IBatchProcessor getPlatformPostProcessor(boolean fastMode) { + boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS; + if (!tickFluid) { + return null; + } + if (Settings.settings().QUEUE.NO_TICK_FASTMODE && fastMode) { + return null; + } + return this.plugin.getBukkitImplAdapter().getTickingPostProcessor(); + } //FAWE end } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java index 38fdbff91..028cc1d1f 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java @@ -24,6 +24,7 @@ import com.fastasyncworldedit.bukkit.adapter.IBukkitAdapter; import com.fastasyncworldedit.bukkit.adapter.NMSRelighterFactory; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; import com.sk89q.jnbt.AdventureNBTConverter; @@ -350,5 +351,15 @@ public interface BukkitImplAdapter extends IBukkitAdapter { default Map>> getAllProperties() { return Collections.emptyMap(); } + + /** + * Returns an {@link IBatchProcessor} instance for post-processing of chunks to sort ticking of placed/existing blocks and + * fluids if the plugin is configured to do so + * + * @since TODO + */ + default IBatchProcessor getTickingPostProcessor() { + return null; + } //FAWE end } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java index bb3d0d04f..c87344f7d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java @@ -604,7 +604,7 @@ public enum FaweCache implements Trimable { } else if (throwable.getCause() instanceof FaweException) { handleFaweException((FaweException) throwable.getCause()); } else { - int hash = throwable.getMessage().hashCode(); + int hash = throwable.getMessage() != null ? throwable.getMessage().hashCode() : 0; if (hash != lastException) { lastException = hash; LOGGER.catching(throwable); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java index 2824c55ca..32a566935 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java @@ -567,7 +567,8 @@ public class Settings extends Config { public int DISCARD_AFTER_MS = 60000; @Comment({ - "When using fastmode also do not bother to fix existing ticking blocks" + "When using fastmode do not bother to tick existing/placed blocks/fluids", + "Only works in versions up to 1.17.1" }) public boolean NO_TICK_FASTMODE = true; @@ -625,16 +626,11 @@ public class Settings extends Config { public boolean OTHER = false; @Comment({ - "Allow blocks placed by WorldEdit to tick. This could cause the big lags.", - "This has no effect on existing blocks one way or the other." + "Allow fluids placed by FAWE to tick (flow). This could cause the big lags.", + "This has no effect on existing blocks one way or the other.", + "Changes due to fluid flow will not be tracked by history, thus may have unintended consequences" }) - public boolean ALLOW_TICK_PLACED = false; - - @Comment({ - "Force re-ticking of existing blocks not edited by FAWE.", - "This will increase time taken slightly." - }) - public boolean ALLOW_TICK_EXISTING = true; + public boolean ALLOW_TICK_FLUIDS = false; @Comment({ "Sets a maximum limit (in kb) for the size of a player's schematics directory (per-player mode only)", diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/DisallowedBlocksExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/DisallowedBlocksExtent.java index 3443c3e33..8f2612b76 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/DisallowedBlocksExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/DisallowedBlocksExtent.java @@ -167,11 +167,6 @@ public class DisallowedBlocksExtent extends AbstractDelegateExtent implements IB return set; } - @Override - public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { - return CompletableFuture.completedFuture(set); - } - @Nullable @Override public Extent construct(final Extent child) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java index 5e60af81b..ff57e00da 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java @@ -56,9 +56,4 @@ public class HeightBoundExtent extends FaweRegionExtent { return null; } - @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - return CompletableFuture.completedFuture(set); - } - } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java index f55581f8a..e7f88c7c5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java @@ -178,8 +178,13 @@ public class MultiRegionExtent extends FaweRegionExtent { } @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { return intersection.postProcessSet(chunk, get, set); } + @Override + public void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + intersection.postProcess(chunk, get, set); + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java index 7420886a2..92c81394a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java @@ -342,7 +342,12 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { } @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + throw reason; + } + + @Override + public void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { throw reason; } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java index 4249faee7..1caea9dbc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java @@ -46,10 +46,17 @@ public class SingleRegionExtent extends FaweRegionExtent { } @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + // Most likely will do nothing, but perhaps people will find some fun way of using this via API (though doubtful) return region.postProcessSet(chunk, get, set); } + @Override + public void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + // Most likely will do nothing, but perhaps people will find some fun way of using this via API (though doubtful) + region.postProcess(chunk, get, set); + } + @Override public boolean processGet(int chunkX, int chunkZ) { return region.containsChunk(chunkX, chunkZ); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java index b6cb3ef96..ea35cb424 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java @@ -143,11 +143,6 @@ public class StripNBTExtent extends AbstractDelegateExtent implements IBatchProc return set; } - @Override - public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { - return CompletableFuture.completedFuture(set); - } - @Nullable @Override public Extent construct(final Extent child) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java index aec836426..540e933b0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java @@ -28,10 +28,15 @@ public class BatchProcessorHolder implements IBatchProcessorHolder { } @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { return getPostProcessor().postProcessSet(chunk, get, set); } + @Override + public void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + getPostProcessor().postProcess(chunk, get, set); + } + @Override public void flush() { getProcessor().flush(); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java index cd04ca615..9f2cb6641 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java @@ -29,13 +29,6 @@ public final class EmptyBatchProcessor implements IBatchProcessor { return set; } - @Override - @Nonnull - public Future postProcessSet(@Nullable IChunk chunk, @Nullable IChunkGet get, @Nullable IChunkSet set) { - // Doesn't need to do anything - return CompletableFuture.completedFuture(set); - } - @Nonnull public IBatchProcessor join(@Nullable IBatchProcessor other) { return other; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java index a192e9748..2f558dc2a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java @@ -31,10 +31,15 @@ public interface IBatchProcessorHolder extends IBatchProcessor { } @Override - default Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + default Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { return getPostProcessor().postProcessSet(chunk, get, set); } + @Override + default void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + getPostProcessor().postProcess(chunk, get, set); + } + @Override default boolean processGet(int chunkX, int chunkZ) { return getProcessor().processGet(chunkX, chunkZ); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java index f40047e60..85fe20986 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java @@ -9,6 +9,7 @@ import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.util.MultiFuture; import com.fastasyncworldedit.core.util.StringMan; import com.google.common.cache.LoadingCache; import com.sk89q.worldedit.extent.Extent; @@ -24,7 +25,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; import java.util.function.Supplier; @@ -129,37 +129,64 @@ public class MultiBatchProcessor implements IBatchProcessor { } @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - try { - for (IBatchProcessor processor : processors) { + public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + List> futures = new ArrayList<>(); + for (IBatchProcessor processor : processors) { + try { // We do NOT want to edit blocks in post processing if (processor.getScope() != ProcessorScope.READING_SET_BLOCKS) { continue; } - set = processor.postProcessSet(chunk, get, set).get(); - if (set == null) { - return null; + futures.add(processor.postProcessSet(chunk, get, set)); + } catch (Throwable e) { + if (e instanceof FaweException) { + Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e, LOGGER); + } else if (e.getCause() instanceof FaweException) { + Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e.getCause(), LOGGER); + } else { + String message = e.getMessage(); + int hash = message != null ? message.hashCode() : 0; + if (lastException != hash) { + lastException = hash; + exceptionCount = 0; + LOGGER.catching(e); + } else if (exceptionCount < Settings.settings().QUEUE.PARALLEL_THREADS) { + exceptionCount++; + LOGGER.warn(message); + } } } - return CompletableFuture.completedFuture(set); - } catch (Throwable e) { - if (e instanceof FaweException) { - Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e, LOGGER); - } else if (e.getCause() instanceof FaweException) { - Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e.getCause(), LOGGER); - } else { - String message = e.getMessage(); - int hash = message.hashCode(); - if (lastException != hash) { - lastException = hash; - exceptionCount = 0; - LOGGER.catching(e); - } else if (exceptionCount < Settings.settings().QUEUE.PARALLEL_THREADS) { - exceptionCount++; - LOGGER.warn(message); + } + return new MultiFuture(futures); + } + + @Override + public void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + for (IBatchProcessor processor : processors) { + try { + // We do NOT want to edit blocks in post processing + if (processor.getScope() != ProcessorScope.READING_SET_BLOCKS) { + continue; + } + processor.postProcess(chunk, get, set); + } catch (Throwable e) { + if (e instanceof FaweException) { + Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e, LOGGER); + } else if (e.getCause() instanceof FaweException) { + Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e.getCause(), LOGGER); + } else { + String message = e.getMessage(); + int hash = message != null ? message.hashCode() : 0; + if (lastException != hash) { + lastException = hash; + exceptionCount = 0; + LOGGER.catching(e); + } else if (exceptionCount < Settings.settings().QUEUE.PARALLEL_THREADS) { + exceptionCount++; + LOGGER.warn(message); + } } } - return null; } } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java index d741ce93a..571426023 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java @@ -24,11 +24,6 @@ public final class NullProcessor implements IBatchProcessor { return null; } - @Nullable - public Future postProcessSet(@Nonnull IChunk chunk, @Nonnull IChunkGet get, @Nonnull IChunkSet set) { - return null; - } - @Nonnull public Extent construct(@Nonnull Extent child) { return new NullExtent(); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightmapProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightmapProcessor.java index efdf79846..efa2447f7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightmapProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightmapProcessor.java @@ -136,11 +136,6 @@ public class HeightmapProcessor implements IBatchProcessor { return set; } - @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - return CompletableFuture.completedFuture(set); - } - @Override @Nullable public Extent construct(Extent child) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java index 8ac56c0f1..6a9f16dee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java @@ -46,11 +46,6 @@ public class RelightProcessor implements IBatchProcessor { return set; } - @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - return CompletableFuture.completedFuture(set); - } - @Override public @Nullable Extent construct(Extent child) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java index 70c3b76ae..5c5e1f682 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java @@ -228,8 +228,13 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor { } @Override - public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { - return (Future) addWriteTask(() -> processSet(chunk, get, set)); + public void postProcess(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + addWriteTask(() -> processSet(chunk, get, set)); + } + + @Override + public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + return addWriteTask(() -> processSet(chunk, get, set)); } @Override diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java index 1e9adf713..87012c96e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java @@ -6,13 +6,12 @@ import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extent.Extent; -import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; -import org.apache.logging.log4j.Logger; import javax.annotation.Nullable; import java.util.Map; import java.util.Set; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; import java.util.function.Function; @@ -23,7 +22,27 @@ public interface IBatchProcessor { */ IChunkSet processSet(IChunk chunk, IChunkGet get, IChunkSet set); - Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set); + /** + * Post-process a chunk that has been edited. Set should NOT be modified here, changes will NOT be flushed to the world, + * but MAY be flushed to history. Defaults to nothing as most Processors will not use it. Post-processors that are not + * technically blocking should override this method to allow post-processors to become blocking if required. + */ + default Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { + // Do not need to default to below method. FAWE itself by default will only call the method below. + return CompletableFuture.completedFuture(null); + } + + /** + * Post-process a chunk that has been edited. Set should NOT be modified here, changes will NOT be flushed to the world, + * but MAY be flushed to history. Defaults to nothing as most Processors will not use it. If the post-processor will run + * tasks asynchronously/not be blocking, use {@link IBatchProcessor#postProcessSet} to return a Future. + * + * @since TODO + */ + default void postProcess(IChunk chunk, IChunkGet get, IChunkSet set) { + // Default to above for compatibility and to ensure whatever method is overridden by child classes is called + postProcessSet(chunk, get, set); + } default boolean processGet(int chunkX, int chunkZ) { return true; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java index 054001a71..0d7436ca5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java @@ -145,7 +145,7 @@ public class ParallelQueueExtent extends PassthroughExtent { } } catch (Throwable e) { String message = e.getMessage(); - int hash = message.hashCode(); + int hash = message != null ? message.hashCode() : 0; if (lastException != hash) { lastException = hash; exceptionCount = 0; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java index 85a1760aa..8ad257c76 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java @@ -401,7 +401,7 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e.getCause(), LOGGER); } else { String message = e.getMessage(); - int hash = message.hashCode(); + int hash = message != null ? message.hashCode() : 0; if (lastException != hash) { lastException = hash; exceptionCount = 0; @@ -441,7 +441,7 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen Fawe.handleFaweException(faweExceptionReasonsUsed, (FaweException) e.getCause(), LOGGER); } else { String message = e.getMessage(); - int hash = message.hashCode(); + int hash = message != null ? message.hashCode() : 0; if (lastException != hash) { lastException = hash; exceptionCount = 0; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java index 5634dd1f5..3dede088c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java @@ -1010,7 +1010,7 @@ public class ChunkHolder> implements IQueueChunk { return get.call(set, finalize); } finally { if (postProcess) { - getExtent().postProcessSet(this, get.getCopy(), set); + getExtent().postProcess(this, get.getCopy(), set); } } } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MultiFuture.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MultiFuture.java new file mode 100644 index 000000000..6797cb889 --- /dev/null +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MultiFuture.java @@ -0,0 +1,55 @@ +package com.fastasyncworldedit.core.util; + +import javax.annotation.Nonnull; +import java.util.List; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +public class MultiFuture implements Future { + + private final List> futures; + + public MultiFuture(List> futures) { + this.futures = futures; + } + + @Override + public boolean cancel(final boolean mayInterruptIfRunning) { + return futures.stream().allMatch(f -> f.cancel(mayInterruptIfRunning)); + } + + @Override + public boolean isCancelled() { + return futures.stream().allMatch(Future::isCancelled); + } + + @Override + public boolean isDone() { + return futures.stream().allMatch(Future::isDone); + } + + @Override + public Object[] get() { + return futures.stream().map(f -> { + try { + return f.get(); + } catch (InterruptedException | ExecutionException e) { + return e; + } + }).toArray(); + } + + @Override + public Object[] get(final long timeout, @Nonnull final TimeUnit unit) { + return futures.stream().map(f -> { + try { + return f.get(timeout / futures.size(), unit); + } catch (InterruptedException | ExecutionException | TimeoutException e) { + return e; + } + }).toArray(); + } + +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionBuilder.java index 11e49f878..108ef1b2f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionBuilder.java @@ -45,6 +45,7 @@ import com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet; import com.fastasyncworldedit.core.history.changeset.NullChangeSet; import com.fastasyncworldedit.core.limit.FaweLimit; import com.fastasyncworldedit.core.limit.PropertyRemap; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.fastasyncworldedit.core.queue.implementation.ParallelQueueExtent; @@ -560,7 +561,7 @@ public final class EditSessionBuilder { } } } - // There's no need to do lighting (and it'll also just be a pain to implement) if we're not placing chunks + // There's no need to do the below (and it'll also just be a pain to implement) if we're not placing chunks if (placeChunks) { if (((relightMode != null && relightMode != RelightMode.NONE) || (relightMode == null && Settings.settings().LIGHTING.MODE > 0))) { relighter = WorldEdit.getInstance().getPlatformManager() @@ -569,6 +570,22 @@ public final class EditSessionBuilder { extent.addProcessor(new RelightProcessor(relighter)); } extent.addProcessor(new HeightmapProcessor(world.getMinY(), world.getMaxY())); + IBatchProcessor platformProcessor = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.WORLD_EDITING) + .getPlatformProcessor(fastMode); + if (platformProcessor != null) { + extent.addProcessor(platformProcessor); + } + IBatchProcessor platformPostProcessor = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.WORLD_EDITING) + .getPlatformPostProcessor(fastMode); + if (platformPostProcessor != null) { + extent.addPostProcessor(platformPostProcessor); + } } else { relighter = NullRelighter.INSTANCE; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index fc53e5d44..3e17cf91e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.entity.Player; @@ -248,5 +249,24 @@ public interface Platform extends Keyed { * @since 2.0.0 */ int versionMaxY(); + + /** + * Get a {@link IBatchProcessor} to be used in edit processing. Null if not required. + * @since TODO + */ + @Nullable + default IBatchProcessor getPlatformProcessor(boolean fastMode) { + return null; + } + + /** + * Get a {@link IBatchProcessor} to be used in edit post-processing. Used for things such as tick-placed and tick fluids. + * Null if not required. + * @since TODO + */ + @Nullable + default IBatchProcessor getPlatformPostProcessor(boolean fastMode) { + return null; + } //FAWE end } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java index c28f4a07a..0187e52ca 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java @@ -111,12 +111,6 @@ public class MaskingExtent extends AbstractDelegateExtent implements IBatchProce return filter.filter(chunk, get, set, MaskingExtent.this); } - @Override - public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - // This should not do anything otherwise dangerous... - return CompletableFuture.completedFuture(set); - } - @Override public void applyBlock(final FilterBlock block) { if (!this.mask.test(block)) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java index 407530eea..b0b4e9785 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java @@ -471,12 +471,6 @@ public interface Region extends Iterable, Cloneable, IBatchProcess } } - @Override - default Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { - // Doesn't need to do anything - return CompletableFuture.completedFuture(set); - } - @Override default Extent construct(Extent child) { if (isGlobal()) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java index a58524825..8298a8b00 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java @@ -23,6 +23,7 @@ import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.util.MultiFuture; import com.google.common.collect.Iterators; import com.google.common.collect.Sets; import com.sk89q.worldedit.math.BlockVector2; @@ -35,6 +36,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.concurrent.Future; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -172,6 +174,15 @@ public class RegionIntersection extends AbstractRegion { return null; } + @Override + public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { + final ArrayList> futures = new ArrayList<>(); + for (Region region : regions) { + futures.add(region.postProcessSet(chunk, get, set)); + } + return new MultiFuture(futures); + } + @Override public IChunkSet processSet(IChunk chunk, IChunkGet get, IChunkSet set, boolean asBlacklist) { if (!asBlacklist) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java index 325da5140..a8ce03eff 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java @@ -198,6 +198,9 @@ public class BlockTypesCache { public static final BlockType[] values; public static final BlockState[] states; + /** + * Array of blockstates in order of ordinal indicating if the block ticks, e.g. leaves, water + */ public static final boolean[] ticking; private static final Map>> allProperties = new HashMap<>(); @@ -283,7 +286,8 @@ public class BlockTypesCache { String enumName = (typeName.startsWith("minecraft:") ? typeName.substring(10) : typeName).toUpperCase(Locale.ROOT); int oldsize = states.size(); BlockType existing = new BlockType(id, internalId, states); - tickList.addAll(Collections.nCopies(states.size() - oldsize, existing.getMaterial().isTicksRandomly())); + tickList.addAll(Collections.nCopies(states.size() - oldsize, + existing.getMaterial().isTicksRandomly() || existing.getMaterial().isLiquid())); // register states BlockType.REGISTRY.register(typeName, existing); String nameSpace = typeName.substring(0, typeName.indexOf(':'));