From 1f19b92b0b631396c09a4e26774cd063bff3c7bd Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Sun, 24 Nov 2019 00:57:29 +0000 Subject: [PATCH] 1.13? --- worldedit-bukkit/build.gradle.kts | 3 +- .../fawe/bukkit/adapter/MapChunkUtil.java | 7 +- .../adapter/mc1_13/BlockMaterial_1_13.java | 153 ++++ .../adapter/mc1_13/BukkitAdapter_1_13.java | 287 ++++++++ .../adapter/mc1_13/BukkitGetBlocks_1_13.java | 654 ++++++++++++++++++ .../adapter/mc1_13/LazyCompoundTag_1_13.java | 152 ++++ .../adapter/mc1_13/MapChunkUtil_1_13.java | 27 + .../sk89q/worldedit/bukkit/BukkitWorld.java | 2 +- .../worldedit/bukkit/WorldEditPlugin.java | 5 +- .../bukkit/adapter/BukkitImplAdapter.java | 11 + .../adapter/impl/FAWE_Spigot_v1_13_R2.java | 453 ++++++++++++ .../adapter/impl/FAWE_Spigot_v1_14_R4.java | 15 + .../src/main/resources/worldedit-adapters.jar | Bin 477811 -> 202174 bytes .../java/com/sk89q/worldedit/EditSession.java | 1 + .../worldedit/command/HistorySubCommands.java | 7 +- .../worldedit/world/biome/BiomeTypes.java | 78 --- .../world/registry/LegacyMapper.java | 13 +- 17 files changed, 1778 insertions(+), 90 deletions(-) create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BlockMaterial_1_13.java create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitAdapter_1_13.java create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitGetBlocks_1_13.java create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/LazyCompoundTag_1_13.java create mode 100644 worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/MapChunkUtil_1_13.java create mode 100644 worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_13_R2.java diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 6c44e67ab..88b4bdb3e 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -21,7 +21,7 @@ repositories { maven { url = uri("http://repo.dmulloy2.net/content/groups/public/") } maven { url = uri("http://ci.ender.zone/plugin/repository/everything/") } maven { url = uri("https://repo.inventivetalent.org/content/groups/public/")} - flatDir {dir(File("lib"))} + flatDir {dir(File("src/main/resources"))} } configurations.all { @@ -36,6 +36,7 @@ dependencies { "api"(project(":worldedit-libs:core")) "api"(project(":worldedit-libs:bukkit")) "compile"(":worldedit-adapters:") + "compile"("org.spigotmcv1_13_r2:spigotmcv1_13_r2:1_13_r2") "compile"("it.unimi.dsi:fastutil:8.2.1") "api"("com.destroystokyo.paper:paper-api:1.14.4-R0.1-SNAPSHOT") { exclude("junit", "junit") diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/MapChunkUtil.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/MapChunkUtil.java index bd76c3012..a367b774e 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/MapChunkUtil.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/MapChunkUtil.java @@ -31,8 +31,11 @@ public abstract class MapChunkUtil { fieldX.setInt(nmsPacket, packet.getChunkX()); fieldZ.setInt(nmsPacket, packet.getChunkZ()); fieldBitMask.set(nmsPacket, packet.getChunk().getBitMask()); - Object heightMap = adapter.fromNative(packet.getHeightMap()); - fieldHeightMap.set(nmsPacket, heightMap); + + if (fieldHeightMap != null) { + Object heightMap = adapter.fromNative(packet.getHeightMap()); + fieldHeightMap.set(nmsPacket, heightMap); + } fieldChunkData.set(nmsPacket, packet.getSectionBytes()); diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BlockMaterial_1_13.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BlockMaterial_1_13.java new file mode 100644 index 000000000..1a81c20fe --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BlockMaterial_1_13.java @@ -0,0 +1,153 @@ +package com.boydti.fawe.bukkit.adapter.mc1_13; + +import com.sk89q.util.ReflectionUtil; +import com.sk89q.worldedit.world.registry.BlockMaterial; +import net.minecraft.server.v1_13_R2.Block; +import net.minecraft.server.v1_13_R2.EnumPistonReaction; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.ITileEntity; +import net.minecraft.server.v1_13_R2.Material; +import org.bukkit.craftbukkit.v1_13_R2.block.data.CraftBlockData; + +public class BlockMaterial_1_13 implements BlockMaterial { + private final Block block; + private final IBlockData defaultState; + private final Material material; + private final boolean isTranslucent; + private final CraftBlockData craftBlockData; + private final org.bukkit.Material craftMaterial; + + public BlockMaterial_1_13(Block block) { + this(block, block.getBlockData()); + } + + public BlockMaterial_1_13(Block block, IBlockData defaultState) { + this.block = block; + this.defaultState = defaultState; + this.material = defaultState.getMaterial(); + this.craftBlockData = CraftBlockData.fromData(defaultState); + this.craftMaterial = craftBlockData.getMaterial(); + this.isTranslucent = ReflectionUtil.getField(Block.class, block, "n"); + } + + public Block getBlock() { + return block; + } + + public IBlockData getState() { + return defaultState; + } + + public CraftBlockData getCraftBlockData() { + return craftBlockData; + } + + public Material getMaterial() { + return material; + } + + @Override + public boolean isAir() { + return defaultState.isAir(); + } + + @Override + public boolean isFullCube() { + return craftMaterial.isOccluding(); + } + + @Override + public boolean isOpaque() { + return material.f(); + } + + @Override + public boolean isPowerSource() { + return defaultState.isPowerSource(); + } + + @Override + public boolean isLiquid() { + return material.isLiquid(); + } + + @Override + public boolean isSolid() { + return material.isBuildable(); + } + + @Override + public float getHardness() { + return block.strength; + } + + @Override + public float getResistance() { + return block.getDurability(); + } + + @Override + public float getSlipperiness() { + return block.n(); + } + + @Override + public int getLightValue() { + return defaultState.e(); + } + + @Override + public int getLightOpacity() { + return isTranslucent() ? 15 : 0; + } + + @Override + public boolean isFragileWhenPushed() { + return material.getPushReaction() == EnumPistonReaction.DESTROY; + } + + @Override + public boolean isUnpushable() { + return material.getPushReaction() == EnumPistonReaction.BLOCK; + } + + @Override + public boolean isTicksRandomly() { + return block.isTicking(defaultState); + } + + @Override + public boolean isMovementBlocker() { + return material.isSolid(); + } + + @Override + public boolean isBurnable() { + return material.isBurnable(); + } + + @Override + public boolean isToolRequired() { + return !material.isAlwaysDestroyable(); + } + + @Override + public boolean isReplacedDuringPlacement() { + return material.isReplaceable(); + } + + @Override + public boolean isTranslucent() { + return isTranslucent; + } + + @Override + public boolean hasContainer() { + return block instanceof ITileEntity; + } + + @Override + public int getMapColor() { + return material.i().rgb; + } +} diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitAdapter_1_13.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitAdapter_1_13.java new file mode 100644 index 000000000..3b118179b --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitAdapter_1_13.java @@ -0,0 +1,287 @@ +package com.boydti.fawe.bukkit.adapter.mc1_13; + +import com.boydti.fawe.Fawe; +import com.boydti.fawe.FaweCache; +import com.boydti.fawe.bukkit.adapter.DelegateLock; +import com.boydti.fawe.bukkit.adapter.NMSAdapter; +import com.boydti.fawe.config.Settings; +import com.boydti.fawe.object.collection.BitArray4096; +import com.boydti.fawe.util.MathMan; +import com.boydti.fawe.util.TaskManager; +import com.sk89q.worldedit.world.block.BlockState; +import com.sk89q.worldedit.world.block.BlockTypesCache; +import io.papermc.lib.PaperLib; +import net.jpountz.util.UnsafeUtils; +import net.minecraft.server.v1_13_R2.Block; +import net.minecraft.server.v1_13_R2.Chunk; +import net.minecraft.server.v1_13_R2.ChunkCoordIntPair; +import net.minecraft.server.v1_13_R2.ChunkSection; +import net.minecraft.server.v1_13_R2.DataBits; +import net.minecraft.server.v1_13_R2.DataPalette; +import net.minecraft.server.v1_13_R2.DataPaletteBlock; +import net.minecraft.server.v1_13_R2.DataPaletteLinear; +import net.minecraft.server.v1_13_R2.GameProfileSerializer; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.PlayerChunk; +import net.minecraft.server.v1_13_R2.PlayerChunkMap; +import org.bukkit.craftbukkit.v1_13_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; +import sun.misc.Unsafe; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.locks.Lock; +import java.util.function.Function; + +public final class BukkitAdapter_1_13 extends NMSAdapter { + /* + NMS fields + */ + public final static Field fieldBits; + public final static Field fieldPalette; + public final static Field fieldSize; + + public final static Field fieldFluidCount; + public final static Field fieldTickingBlockCount; + public final static Field fieldNonEmptyBlockCount; + + private final static Field fieldDirtyCount; + private final static Field fieldDirtyBits; + + private static final int CHUNKSECTION_BASE; + private static final int CHUNKSECTION_SHIFT; + + private static final Field fieldLock; + + static { + try { + fieldSize = DataPaletteBlock.class.getDeclaredField("i"); + fieldSize.setAccessible(true); + fieldBits = DataPaletteBlock.class.getDeclaredField("a"); + fieldBits.setAccessible(true); + fieldPalette = DataPaletteBlock.class.getDeclaredField("h"); + fieldPalette.setAccessible(true); + + fieldFluidCount = ChunkSection.class.getDeclaredField("e"); + fieldFluidCount.setAccessible(true); + fieldTickingBlockCount = ChunkSection.class.getDeclaredField("tickingBlockCount"); + fieldTickingBlockCount.setAccessible(true); + fieldNonEmptyBlockCount = ChunkSection.class.getDeclaredField("nonEmptyBlockCount"); + fieldNonEmptyBlockCount.setAccessible(true); + + fieldDirtyCount = PlayerChunk.class.getDeclaredField("dirtyCount"); + fieldDirtyCount.setAccessible(true); + fieldDirtyBits = PlayerChunk.class.getDeclaredField("h"); + fieldDirtyBits.setAccessible(true); + + { + Field tmp; + try { + tmp = DataPaletteBlock.class.getDeclaredField("writeLock"); + } catch (NoSuchFieldException paper) { + tmp = DataPaletteBlock.class.getDeclaredField("j"); + } + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + int modifiers = modifiersField.getInt(tmp); + int newModifiers = modifiers & (~Modifier.FINAL); + if (newModifiers != modifiers) modifiersField.setInt(tmp, newModifiers); + fieldLock = tmp; + fieldLock.setAccessible(true); + } + + Unsafe unsafe = UnsafeUtils.getUNSAFE(); + CHUNKSECTION_BASE = unsafe.arrayBaseOffset(ChunkSection[].class); + int scale = unsafe.arrayIndexScale(ChunkSection[].class); + if ((scale & (scale - 1)) != 0) + throw new Error("data type scale not a power of two"); + CHUNKSECTION_SHIFT = 31 - Integer.numberOfLeadingZeros(scale); + } catch (RuntimeException e) { + throw e; + } catch (Throwable rethrow) { + rethrow.printStackTrace(); + throw new RuntimeException(rethrow); + } + } + + protected static boolean setSectionAtomic(ChunkSection[] sections, ChunkSection expected, ChunkSection value, int layer) { + long offset = ((long) layer << CHUNKSECTION_SHIFT) + CHUNKSECTION_BASE; + if (layer >= 0 && layer < sections.length) { + return UnsafeUtils.getUNSAFE().compareAndSwapObject(sections, offset, expected, value); + } + return false; + } + + protected static DelegateLock applyLock(ChunkSection section) { + try { + synchronized (section) { + DataPaletteBlock blocks = section.getBlocks(); + Lock currentLock = (Lock) fieldLock.get(blocks); + if (currentLock instanceof DelegateLock) { + return (DelegateLock) currentLock; + } + DelegateLock newLock = new DelegateLock(currentLock); + fieldLock.set(blocks, newLock); + return newLock; + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + + public static Chunk ensureLoaded(net.minecraft.server.v1_13_R2.World nmsWorld, int X, int Z) { + Chunk nmsChunk = nmsWorld.getChunkIfLoaded(X, Z); + if (nmsChunk != null) { + return nmsChunk; + } + if (Fawe.isMainThread()) { + return nmsWorld.getChunkAt(X, Z); + } + if (PaperLib.isPaper()) { + CraftWorld craftWorld = nmsWorld.getWorld(); + CompletableFuture future = craftWorld.getChunkAtAsync(X, Z, true); + try { + CraftChunk chunk = (CraftChunk) future.get(); + return chunk.getHandle(); + } catch (Throwable e) { + e.printStackTrace(); + } + } + // TODO optimize + return TaskManager.IMP.sync(() -> nmsWorld.getChunkAt(X, Z)); + } + + public static PlayerChunk getPlayerChunk(net.minecraft.server.v1_13_R2.WorldServer nmsWorld, final int cx, final int cz) { + PlayerChunkMap chunkMap = nmsWorld.getPlayerChunkMap(); + PlayerChunk playerChunk = chunkMap.getChunk(cx, cz); + if (playerChunk == null) { + return null; + } + return playerChunk; + } + + public static void sendChunk(net.minecraft.server.v1_13_R2.WorldServer nmsWorld, int X, int Z, int mask) { + PlayerChunk playerChunk = getPlayerChunk(nmsWorld, X, Z); + if (playerChunk == null) { + return; + } + if (playerChunk.e()) { + Chunk nmsChunk = playerChunk.chunk; + ChunkSection[] sections = nmsChunk.getSections(); + for (int layer = 0; layer < 16; layer++) { + if (sections[layer] == null && (mask & (1 << layer)) != 0) { + sections[layer] = new ChunkSection(layer << 4, nmsWorld.worldProvider.g()); + } + } + TaskManager.IMP.sync(() -> { + try { + int dirtyBits = fieldDirtyBits.getInt(playerChunk); + if (dirtyBits == 0) { + nmsWorld.getPlayerChunkMap().a(playerChunk); + } + if (mask == 0) { + dirtyBits = 65535; + } else { + dirtyBits |= mask; + } + + fieldDirtyBits.set(playerChunk, dirtyBits); + fieldDirtyCount.set(playerChunk, 64); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return null; + }); + return; + } + return; + } + + /* + NMS conversion + */ + public static ChunkSection newChunkSection(final int layer, final char[] blocks, boolean light) { + return newChunkSection(layer, null, blocks, light); + } + + public static ChunkSection newChunkSection(final int layer, final Function get, char[] set, boolean light) { + if (set == null) { + return newChunkSection(layer, light); + } + final int[] blockToPalette = FaweCache.IMP.BLOCK_TO_PALETTE.get(); + final int[] paletteToBlock = FaweCache.IMP.PALETTE_TO_BLOCK.get(); + final long[] blockStates = FaweCache.IMP.BLOCK_STATES.get(); + final int[] blocksCopy = FaweCache.IMP.SECTION_BLOCKS.get(); + try { + int[] num_palette_buffer = new int[1]; + int air; + if (get == null) { + air = createPalette(blockToPalette, paletteToBlock, blocksCopy, num_palette_buffer, set); + } else { + air = createPalette(layer, blockToPalette, paletteToBlock, blocksCopy, num_palette_buffer, get, set); + } + int num_palette = num_palette_buffer[0]; + // BlockStates + int bitsPerEntry = MathMan.log2nlz(num_palette - 1); + if (Settings.IMP.PROTOCOL_SUPPORT_FIX || num_palette != 1) { + bitsPerEntry = Math.max(bitsPerEntry, 4); // Protocol support breaks <4 bits per entry + } else { + bitsPerEntry = Math.max(bitsPerEntry, 1); // For some reason minecraft needs 4096 bits to store 0 entries + } + + final int blockBitArrayEnd = (bitsPerEntry * 4096) >> 6; + if (num_palette == 1) { + for (int i = 0; i < blockBitArrayEnd; i++) blockStates[i] = 0; + } else { + final BitArray4096 bitArray = new BitArray4096(blockStates, bitsPerEntry); + bitArray.fromRaw(blocksCopy); + } + + ChunkSection section = newChunkSection(layer, light); + // set palette & data bits + final DataPaletteBlock dataPaletteBlocks = section.getBlocks(); + // private DataPalette h; + // protected DataBits a; + final long[] bits = Arrays.copyOfRange(blockStates, 0, blockBitArrayEnd); + final DataBits nmsBits = new DataBits(bitsPerEntry, 4096, bits); + final DataPalette palette; +// palette = new DataPaletteHash<>(Block.REGISTRY_ID, bitsPerEntry, dataPaletteBlocks, GameProfileSerializer::d, GameProfileSerializer::a); + palette = new DataPaletteLinear<>(Block.REGISTRY_ID, bitsPerEntry, dataPaletteBlocks, GameProfileSerializer::d); + + // set palette + for (int i = 0; i < num_palette; i++) { + final int ordinal = paletteToBlock[i]; + blockToPalette[ordinal] = Integer.MAX_VALUE; + final BlockState state = BlockTypesCache.states[ordinal]; + final IBlockData ibd = ((BlockMaterial_1_13) state.getMaterial()).getState(); + palette.a(ibd); + } + try { + fieldBits.set(dataPaletteBlocks, nmsBits); + fieldPalette.set(dataPaletteBlocks, palette); + fieldSize.set(dataPaletteBlocks, bitsPerEntry); + setCount(0, 4096 - air, section); + } catch (final IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } + + return section; + } catch (final Throwable e){ + Arrays.fill(blockToPalette, Integer.MAX_VALUE); + throw e; + } + } + + private static ChunkSection newChunkSection(int layer, boolean light) { + return new ChunkSection(layer << 4, light); + } + + public static void setCount(final int tickingBlockCount, final int nonEmptyBlockCount, final ChunkSection section) throws NoSuchFieldException, IllegalAccessException { + fieldFluidCount.setShort(section, (short) 0); // TODO FIXME + fieldTickingBlockCount.setShort(section, (short) tickingBlockCount); + fieldNonEmptyBlockCount.setShort(section, (short) nonEmptyBlockCount); + } +} diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitGetBlocks_1_13.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitGetBlocks_1_13.java new file mode 100644 index 000000000..8d6286c6b --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/BukkitGetBlocks_1_13.java @@ -0,0 +1,654 @@ +package com.boydti.fawe.bukkit.adapter.mc1_13; + +import com.boydti.fawe.Fawe; +import com.boydti.fawe.FaweCache; +import com.boydti.fawe.beta.IChunkSet; +import com.boydti.fawe.beta.implementation.blocks.CharGetBlocks; +import com.boydti.fawe.beta.implementation.queue.QueueHandler; +import com.boydti.fawe.bukkit.adapter.DelegateLock; +import com.boydti.fawe.object.collection.AdaptedMap; +import com.boydti.fawe.object.collection.BitArray4096; +import com.boydti.fawe.util.ReflectionUtils; +import com.google.common.base.Suppliers; +import com.google.common.collect.Iterables; +import com.sk89q.jnbt.CompoundTag; +import com.sk89q.jnbt.ListTag; +import com.sk89q.jnbt.LongTag; +import com.sk89q.jnbt.StringTag; +import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.bukkit.WorldEditPlugin; +import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; +import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_13_R2; +import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.world.biome.BiomeType; +import com.sk89q.worldedit.world.block.BlockTypes; +import net.minecraft.server.v1_13_R2.BiomeBase; +import net.minecraft.server.v1_13_R2.BlockPosition; +import net.minecraft.server.v1_13_R2.Chunk; +import net.minecraft.server.v1_13_R2.ChunkSection; +import net.minecraft.server.v1_13_R2.DataBits; +import net.minecraft.server.v1_13_R2.DataPalette; +import net.minecraft.server.v1_13_R2.DataPaletteBlock; +import net.minecraft.server.v1_13_R2.DataPaletteHash; +import net.minecraft.server.v1_13_R2.DataPaletteLinear; +import net.minecraft.server.v1_13_R2.Entity; +import net.minecraft.server.v1_13_R2.EntityTypes; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.NBTTagInt; +import net.minecraft.server.v1_13_R2.TileEntity; +import net.minecraft.server.v1_13_R2.WorldServer; +import org.bukkit.World; +import org.bukkit.block.Biome; +import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; +import java.util.AbstractSet; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.Callable; +import java.util.concurrent.Future; +import java.util.function.Function; + +import static org.slf4j.LoggerFactory.getLogger; + +public class BukkitGetBlocks_1_13 extends CharGetBlocks { + public ChunkSection[] sections; + public Chunk nmsChunk; + public WorldServer world; + public int X, Z; + + public BukkitGetBlocks_1_13(World world, int X, int Z) { + this(((CraftWorld) world).getHandle(), X, Z); + } + + public BukkitGetBlocks_1_13(WorldServer world, int X, int Z) { + this.world = world; + this.X = X; + this.Z = Z; + } + + public int getX() { + return X; + } + + public int getZ() { + return Z; + } + + @Override + public BiomeType getBiomeType(int x, int z) { + BiomeBase base = getChunk().getBiomeIndex()[(z << 4) + x]; + return BukkitAdapter.adapt(CraftBlock.biomeBaseToBiome(base)); + } + + @Override + public CompoundTag getTag(int x, int y, int z) { + TileEntity tileEntity = getChunk().getTileEntity(new BlockPosition((x & 15) + (X << 4), y, (z & 15) + (Z << 4))); + return new LazyCompoundTag_1_13(Suppliers.memoize(() -> tileEntity.save(new NBTTagCompound()))); + } + + private static final Function posNms2We = new Function() { + @Override + public BlockVector3 apply(BlockPosition v) { + return BlockVector3.at(v.getX(), v.getY(), v.getZ()); + } + }; + + private final static Function nmsTile2We = new Function() { + @Override + public CompoundTag apply(TileEntity tileEntity) { + return new LazyCompoundTag_1_13(Suppliers.memoize(() -> tileEntity.save(new NBTTagCompound()))); + } + }; + + @Override + public Map getTiles() { + Map nmsTiles = getChunk().getTileEntities(); + if (nmsTiles.isEmpty()) { + return Collections.emptyMap(); + } + return AdaptedMap.immutable(nmsTiles, posNms2We, nmsTile2We); + } + + @Override + public CompoundTag getEntity(UUID uuid) { + Entity entity = world.getEntity(uuid); + if (entity != null) { + org.bukkit.entity.Entity bukkitEnt = entity.getBukkitEntity(); + return BukkitAdapter.adapt(bukkitEnt).getState().getNbtData(); + } + for (List entry : getChunk().getEntitySlices()) { + if (entry != null) { + for (Entity ent : entry) { + if (uuid.equals(ent.getUniqueID())) { + org.bukkit.entity.Entity bukkitEnt = ent.getBukkitEntity(); + return BukkitAdapter.adapt(bukkitEnt).getState().getNbtData(); + } + } + } + } + return null; + } + + @Override + public Set getEntities() { + List[] slices = getChunk().getEntitySlices(); + int size = 0; + for (List slice : slices) { + if (slice != null) size += slice.size(); + } + if (slices.length == 0) { + return Collections.emptySet(); + } + int finalSize = size; + return new AbstractSet() { + @Override + public int size() { + return finalSize; + } + + @Override + public boolean isEmpty() { + return false; + } + + @Override + public boolean contains(Object get) { + if (!(get instanceof CompoundTag)) { + return false; + } + CompoundTag getTag = (CompoundTag) get; + Map value = getTag.getValue(); + CompoundTag getParts = (CompoundTag) value.get("UUID"); + UUID getUUID = new UUID(getParts.getLong("Most"), getParts.getLong("Least")); + for (List slice : slices) { + if (slice != null) { + for (Entity entity : slice) { + UUID uuid = entity.getUniqueID(); + if (uuid.equals(getUUID)) { + return true; + } + } + } + } + return false; + } + + @NotNull + @Override + public Iterator iterator() { + Iterable result = Iterables.transform(Iterables.concat(slices), new com.google.common.base.Function() { + @Nullable + @Override + public CompoundTag apply(@Nullable Entity input) { + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + NBTTagCompound tag = new NBTTagCompound(); + return (CompoundTag) adapter.toNative(input.save(tag)); + } + }); + return result.iterator(); + } + }; + } + + private void updateGet(BukkitGetBlocks_1_13 get, Chunk nmsChunk, ChunkSection[] sections, ChunkSection section, char[] arr, int layer) { + synchronized (get) { + if (this.nmsChunk != nmsChunk) { + this.nmsChunk = nmsChunk; + this.sections = sections.clone(); + this.reset(); + } + if (this.sections == null) { + this.sections = sections.clone(); + } + if (this.sections[layer] != section) { + this.sections[layer] = section; + } + this.blocks[layer] = arr; + } + } + + private void removeEntity(Entity entity) { + entity.die(); + entity.valid = false; + } + + public Chunk ensureLoaded(net.minecraft.server.v1_13_R2.World nmsWorld, int X, int Z) { + return BukkitAdapter_1_13.ensureLoaded(nmsWorld, X, Z); + } + + @Override + public > T call(IChunkSet set, Runnable finalizer) { + try { + WorldServer nmsWorld = world; + boolean light = nmsWorld.worldProvider.g(); + Chunk nmsChunk = ensureLoaded(nmsWorld, X, Z); + + // Remove existing tiles + { + Map tiles = nmsChunk.getTileEntities(); + if (!tiles.isEmpty()) { + final Iterator> iterator = tiles.entrySet().iterator(); + while (iterator.hasNext()) { + final Map.Entry entry = iterator.next(); + final BlockPosition pos = entry.getKey(); + final int lx = pos.getX() & 15; + final int ly = pos.getY(); + final int lz = pos.getZ() & 15; + final int layer = ly >> 4; + if (!set.hasSection(layer)) { + continue; + } + if (set.getBlock(lx, ly, lz).getOrdinal() != 0) { + TileEntity tile = entry.getValue(); + tile.y(); + tile.invalidateBlockCache(); + } + } + } + } + + int bitMask = 0; + synchronized (nmsChunk) { + ChunkSection[] sections = nmsChunk.getSections(); + + for (int layer = 0; layer < 16; layer++) { + if (!set.hasSection(layer)) continue; + + bitMask |= 1 << layer; + + char[] setArr = set.load(layer); + ChunkSection newSection; + ChunkSection existingSection = sections[layer]; + if (existingSection == null) { + newSection = BukkitAdapter_1_13.newChunkSection(layer, setArr, light); + if (BukkitAdapter_1_13.setSectionAtomic(sections, null, newSection, layer)) { + updateGet(this, nmsChunk, sections, newSection, setArr, layer); + continue; + } else { + existingSection = sections[layer]; + if (existingSection == null) { + System.out.println("Skipping invalid null section. chunk:" + X + "," + Z + " layer: " + layer); + continue; + } + } + } + DelegateLock lock = BukkitAdapter_1_13.applyLock(existingSection); + synchronized (this) { + synchronized (lock) { + lock.untilFree(); + ChunkSection getSection; + if (this.nmsChunk != nmsChunk) { + this.nmsChunk = nmsChunk; + this.sections = null; + this.reset(); + } else { + getSection = this.getSections()[layer]; + if (getSection != existingSection) { + this.sections[layer] = existingSection; + this.reset(); + } else if (lock.isModified()) { + this.reset(layer); + } + } + newSection = BukkitAdapter_1_13.newChunkSection(layer, this::load, setArr, light); + if (!BukkitAdapter_1_13.setSectionAtomic(sections, existingSection, newSection, layer)) { + System.out.println("Failed to set chunk section:" + X + "," + Z + " layer: " + layer); + continue; + } else { + updateGet(this, nmsChunk, sections, newSection, setArr, layer); + } + } + } + } + + // Biomes + BiomeType[] biomes = set.getBiomes(); + if (biomes != null) { + // set biomes + final BiomeBase[] currentBiomes = nmsChunk.getBiomeIndex(); + for (int i = 0; i < biomes.length; i++) { + final BiomeType biome = biomes[i]; + if (biome != null) { + final Biome craftBiome = BukkitAdapter.adapt(biome); + currentBiomes[i] = CraftBlock.biomeToBiomeBase(craftBiome); + } + } + } + + Runnable[] syncTasks = null; + + int bx = X << 4; + int bz = Z << 4; + + Set entityRemoves = set.getEntityRemoves(); + if (entityRemoves != null && !entityRemoves.isEmpty()) { + if (syncTasks == null) syncTasks = new Runnable[3]; + + syncTasks[2] = new Runnable() { + @Override + public void run() { + final List[] entities = nmsChunk.getEntitySlices(); + + for (int i = 0; i < entities.length; i++) { + final Collection ents = entities[i]; + if (!ents.isEmpty()) { + final Iterator iter = ents.iterator(); + while (iter.hasNext()) { + final Entity entity = iter.next(); + if (entityRemoves.contains(entity.getUniqueID())) { + iter.remove(); + removeEntity(entity); + } + } + } + } + } + }; + } + + Set entities = set.getEntities(); + if (entities != null && !entities.isEmpty()) { + if (syncTasks == null) syncTasks = new Runnable[2]; + + syncTasks[1] = new Runnable() { + @Override + public void run() { + for (final CompoundTag nativeTag : entities) { + final Map entityTagMap = ReflectionUtils.getMap(nativeTag.getValue()); + final StringTag idTag = (StringTag) entityTagMap.get("Id"); + final ListTag posTag = (ListTag) entityTagMap.get("Pos"); + final ListTag rotTag = (ListTag) entityTagMap.get("Rotation"); + if (idTag == null || posTag == null || rotTag == null) { + getLogger(BukkitGetBlocks_1_13.class).debug("Unknown entity tag: " + nativeTag); + continue; + } + final double x = posTag.getDouble(0); + final double y = posTag.getDouble(1); + final double z = posTag.getDouble(2); + final float yaw = rotTag.getFloat(0); + final float pitch = rotTag.getFloat(1); + final String id = idTag.getValue(); + + EntityTypes type = EntityTypes.a(id); + if (type != null) { + Entity entity = type.a(nmsWorld); + if (entity != null) { + UUID uuid = entity.getUniqueID(); + entityTagMap.put("UUIDMost", new LongTag(uuid.getMostSignificantBits())); + entityTagMap.put("UUIDLeast", new LongTag(uuid.getLeastSignificantBits())); + if (nativeTag != null) { + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + final NBTTagCompound tag = (NBTTagCompound) adapter.fromNative(nativeTag); + for (final String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) { + tag.remove(name); + } + entity.f(tag); + } + entity.setLocation(x, y, z, yaw, pitch); + nmsWorld.addEntity(entity, CreatureSpawnEvent.SpawnReason.CUSTOM); + } + } + } + } + }; + + } + + // set tiles + Map tiles = set.getTiles(); + if (tiles != null && !tiles.isEmpty()) { + if (syncTasks == null) syncTasks = new Runnable[1]; + + syncTasks[0] = new Runnable() { + @Override + public void run() { + for (final Map.Entry entry : tiles.entrySet()) { + final CompoundTag nativeTag = entry.getValue(); + final BlockVector3 blockHash = entry.getKey(); + final int x = blockHash.getX() + bx; + final int y = blockHash.getY(); + final int z = blockHash.getZ() + bz; + final BlockPosition pos = new BlockPosition(x, y, z); + + synchronized (nmsWorld) { + TileEntity tileEntity = nmsWorld.getTileEntity(pos); + if (tileEntity == null || tileEntity.x()) { + nmsWorld.n(pos); + tileEntity = nmsWorld.getTileEntity(pos); + } + if (tileEntity != null) { + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + final NBTTagCompound tag = (NBTTagCompound) adapter.fromNative(nativeTag); + tag.set("x", new NBTTagInt(x)); + tag.set("y", new NBTTagInt(y)); + tag.set("z", new NBTTagInt(z)); + tileEntity.load(tag); + } + } + } + } + }; + } + +// {//Lighting +// for (int layer = 0; layer < 16; layer++) { +// if (!set.hasSection(layer)) continue; +// //TODO lighting +// } +// } + + Runnable callback; + if (bitMask == 0 && biomes == null) { + callback = null; + } else { + int finalMask = bitMask; + callback = () -> { + // Set Modified + nmsChunk.f(true); // Set Modified + nmsChunk.mustSave = true; + nmsChunk.markDirty(); + // send to player + BukkitAdapter_1_13.sendChunk(nmsWorld, X, Z, finalMask); + if (finalizer != null) finalizer.run(); + }; + } + if (syncTasks != null) { + QueueHandler queueHandler = Fawe.get().getQueueHandler(); + Runnable[] finalSyncTasks = syncTasks; + + // Chain the sync tasks and the callback + Callable chain = new Callable() { + @Override + public Future call() { + try { + // Run the sync tasks + for (int i = 0; i < finalSyncTasks.length; i++) { + Runnable task = finalSyncTasks[i]; + if (task != null) { + task.run(); + } + } + if (callback == null) { + if (finalizer != null) finalizer.run(); + return null; + } else { + return queueHandler.async(callback, null); + } + } catch (Throwable e) { + e.printStackTrace(); + throw e; + } + } + }; + return (T) (Future) queueHandler.sync(chain); + } else { + if (callback == null) { + if (finalizer != null) finalizer.run(); + } else { + callback.run(); + } + } + } + return null; + } catch (Throwable e) { + e.printStackTrace(); + return null; + } + } + + @Override + public synchronized char[] update(int layer, char[] data) { + ChunkSection section = getSections()[layer]; + // Section is null, return empty array + if (section == null) { + return FaweCache.IMP.EMPTY_CHAR_4096; + } + if (data == null || data == FaweCache.IMP.EMPTY_CHAR_4096) { + data = new char[4096]; + } + DelegateLock lock = BukkitAdapter_1_13.applyLock(section); + synchronized (lock) { + lock.untilFree(); + lock.setModified(false); + // Efficiently convert ChunkSection to raw data + try { + FAWE_Spigot_v1_13_R2 adapter = ((FAWE_Spigot_v1_13_R2) WorldEditPlugin.getInstance().getBukkitImplAdapter()); + + final DataPaletteBlock blocks = section.getBlocks(); + final DataBits bits = (DataBits) BukkitAdapter_1_13.fieldBits.get(blocks); + final DataPalette palette = (DataPalette) BukkitAdapter_1_13.fieldPalette.get(blocks); + + final int bitsPerEntry = bits.c(); + final long[] blockStates = bits.a(); + + new BitArray4096(blockStates, bitsPerEntry).toRaw(data); + + int num_palette; + if (palette instanceof DataPaletteLinear) { + num_palette = ((DataPaletteLinear) palette).b(); + } else if (palette instanceof DataPaletteHash) { + num_palette = ((DataPaletteHash) palette).b(); + } else { + num_palette = 0; + int[] paletteToBlockInts = FaweCache.IMP.PALETTE_TO_BLOCK.get(); + char[] paletteToBlockChars = FaweCache.IMP.PALETTE_TO_BLOCK_CHAR.get(); + try { + for (int i = 0; i < 4096; i++) { + char paletteVal = data[i]; + char ordinal = paletteToBlockChars[paletteVal]; + if (ordinal == Character.MAX_VALUE) { + paletteToBlockInts[num_palette++] = paletteVal; + IBlockData ibd = palette.a(data[i]); + if (ibd == null) { + ordinal = BlockTypes.AIR.getDefaultState().getOrdinalChar(); + } else { + ordinal = adapter.adaptToChar(ibd); + } + paletteToBlockChars[paletteVal] = ordinal; + } + data[i] = ordinal; + } + } finally { + for (int i = 0; i < num_palette; i++) { + int paletteVal = paletteToBlockInts[i]; + paletteToBlockChars[paletteVal] = Character.MAX_VALUE; + } + } + return data; + } + + char[] paletteToOrdinal = FaweCache.IMP.PALETTE_TO_BLOCK_CHAR.get(); + try { + if (num_palette != 1) { + for (int i = 0; i < num_palette; i++) { + char ordinal = ordinal(palette.a(i), adapter); + paletteToOrdinal[i] = ordinal; + } + for (int i = 0; i < 4096; i++) { + char paletteVal = data[i]; + char val = paletteToOrdinal[paletteVal]; + if (val == Character.MAX_VALUE) { + val = ordinal(palette.a(i), adapter); + paletteToOrdinal[i] = val; + } + data[i] = val; + } + } else { + char ordinal = ordinal(palette.a(0), adapter); + Arrays.fill(data, ordinal); + } + } finally { + for (int i = 0; i < num_palette; i++) { + paletteToOrdinal[i] = Character.MAX_VALUE; + } + } + return data; + } catch (IllegalAccessException e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + } + + private final char ordinal(IBlockData ibd, FAWE_Spigot_v1_13_R2 adapter) { + if (ibd == null) { + return BlockTypes.AIR.getDefaultState().getOrdinalChar(); + } else { + return adapter.adaptToChar(ibd); + } + } + + public ChunkSection[] getSections() { + ChunkSection[] tmp = sections; + if (tmp == null) { + synchronized (this) { + tmp = sections; + if (tmp == null) { + Chunk chunk = getChunk(); + sections = tmp = chunk.getSections().clone(); + } + } + } + return tmp; + } + + public Chunk getChunk() { + Chunk tmp = nmsChunk; + if (tmp == null) { + synchronized (this) { + tmp = nmsChunk; + if (tmp == null) { + nmsChunk = tmp = ensureLoaded(this.world, X, Z); + } + } + } + return tmp; + } + + @Override + public boolean hasSection(int layer) { + return getSections()[layer] != null; + } + + @Override + public boolean trim(boolean aggressive) { + if (aggressive) { + sections = null; + nmsChunk = null; + } + return super.trim(aggressive); + } +} diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/LazyCompoundTag_1_13.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/LazyCompoundTag_1_13.java new file mode 100644 index 000000000..257d3782b --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/LazyCompoundTag_1_13.java @@ -0,0 +1,152 @@ +package com.boydti.fawe.bukkit.adapter.mc1_13; + +import com.sk89q.jnbt.CompoundTag; +import com.sk89q.jnbt.ListTag; +import com.sk89q.jnbt.StringTag; +import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.bukkit.WorldEditPlugin; +import net.minecraft.server.v1_13_R2.NBTBase; +import net.minecraft.server.v1_13_R2.NBTNumber; +import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.NBTTagList; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +public class LazyCompoundTag_1_13 extends CompoundTag { + private final Supplier nmsTag; + + public LazyCompoundTag_1_13(Supplier tag) { + super(null); + this.nmsTag = tag; + } + + public LazyCompoundTag_1_13(NBTTagCompound tag) { + this(() -> tag); + } + + public NBTTagCompound get() { + return nmsTag.get(); + } + + @Override + public Map getValue() { + Map value = super.getValue(); + if (value == null) { + Tag tag = WorldEditPlugin.getInstance().getBukkitImplAdapter().toNative(nmsTag.get()); + setValue(((CompoundTag) tag).getValue()); + } + return super.getValue(); + } + + public boolean containsKey(String key) { + return nmsTag.get().hasKey(key); + } + + public byte[] getByteArray(String key) { + return nmsTag.get().getByteArray(key); + } + + public byte getByte(String key) { + return nmsTag.get().getByte(key); + } + + public double getDouble(String key) { + return nmsTag.get().getDouble(key); + } + + public double asDouble(String key) { + NBTBase value = nmsTag.get().get(key); + if (value instanceof NBTNumber) { + return ((NBTNumber) value).asDouble(); + } + return 0; + } + + public float getFloat(String key) { + return nmsTag.get().getFloat(key); + } + + public int[] getIntArray(String key) { + return nmsTag.get().getIntArray(key); + } + + public int getInt(String key) { + return nmsTag.get().getInt(key); + } + + public int asInt(String key) { + NBTBase value = nmsTag.get().get(key); + if (value instanceof NBTNumber) { + return ((NBTNumber) value).asInt(); + } + return 0; + } + + public List getList(String key) { + NBTBase tag = nmsTag.get().get(key); + if (tag instanceof NBTTagList) { + ArrayList list = new ArrayList<>(); + NBTTagList nbtList = (NBTTagList) tag; + for (NBTBase elem : nbtList) { + if (elem instanceof NBTTagCompound) { + list.add(new LazyCompoundTag_1_13((NBTTagCompound) elem)); + } else { + list.add(WorldEditPlugin.getInstance().getBukkitImplAdapter().toNative(elem)); + } + } + return list; + } + return Collections.emptyList(); + } + + public ListTag getListTag(String key) { + NBTBase tag = nmsTag.get().get(key); + if (tag instanceof NBTTagList) { + return (ListTag) WorldEditPlugin.getInstance().getBukkitImplAdapter().toNative(tag); + } + return new ListTag(StringTag.class, Collections.emptyList()); + } + + @SuppressWarnings("unchecked") + public List getList(String key, Class listType) { + ListTag listTag = getListTag(key); + if (listTag.getType().equals(listType)) { + return (List) listTag.getValue(); + } else { + return Collections.emptyList(); + } + } + + public long[] getLongArray(String key) { + return nmsTag.get().o(key); + } + + public long getLong(String key) { + return nmsTag.get().getLong(key); + } + + public long asLong(String key) { + NBTBase value = nmsTag.get().get(key); + if (value instanceof NBTNumber) { + return ((NBTNumber) value).asLong(); + } + return 0; + } + + public short getShort(String key) { + return nmsTag.get().getShort(key); + } + + public String getString(String key) { + return nmsTag.get().getString(key); + } + + @Override + public String toString() { + return nmsTag.get().toString(); + } +} diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/MapChunkUtil_1_13.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/MapChunkUtil_1_13.java new file mode 100644 index 000000000..b3cc9b6ec --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_13/MapChunkUtil_1_13.java @@ -0,0 +1,27 @@ +package com.boydti.fawe.bukkit.adapter.mc1_13; + +import com.boydti.fawe.bukkit.adapter.MapChunkUtil; +import net.minecraft.server.v1_13_R2.PacketPlayOutMapChunk; + +public class MapChunkUtil_1_13 extends MapChunkUtil { + public MapChunkUtil_1_13() throws NoSuchFieldException { + fieldX = PacketPlayOutMapChunk.class.getDeclaredField("a"); + fieldZ = PacketPlayOutMapChunk.class.getDeclaredField("b"); + fieldBitMask = PacketPlayOutMapChunk.class.getDeclaredField("c"); + fieldChunkData = PacketPlayOutMapChunk.class.getDeclaredField("d"); + fieldBlockEntities = PacketPlayOutMapChunk.class.getDeclaredField("e"); + fieldFull = PacketPlayOutMapChunk.class.getDeclaredField("f"); + + fieldX.setAccessible(true); + fieldZ.setAccessible(true); + fieldBitMask.setAccessible(true); + fieldChunkData.setAccessible(true); + fieldBlockEntities.setAccessible(true); + fieldFull.setAccessible(true); + } + + @Override + public PacketPlayOutMapChunk createPacket() { + return new PacketPlayOutMapChunk(); + } +} diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index 63291192d..af88d3fb4 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -564,7 +564,7 @@ public class BukkitWorld extends AbstractWorld { @Override public IChunkGet get(int chunkX, int chunkZ) { - return new BukkitGetBlocks_1_14(getWorldChecked(), chunkX, chunkZ); + return WorldEditPlugin.getInstance().getBukkitImplAdapter().get(getWorldChecked(), chunkX, chunkZ); } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index bb7001ee1..8fabcefcb 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -24,6 +24,7 @@ import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAM import com.boydti.fawe.Fawe; import com.boydti.fawe.bukkit.FaweBukkit; +import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_13_R2; import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_14_R4; import com.boydti.fawe.util.MainUtil; import com.google.common.base.Joiner; @@ -246,7 +247,8 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter // Biome for (Biome biome : Biome.values()) { String lowerCaseBiomeName = biome.name().toLowerCase(Locale.ROOT); - BiomeType.REGISTRY.register("minecraft:" + lowerCaseBiomeName, new BiomeType("minecraft:" + lowerCaseBiomeName)); + BiomeType biomeType = BiomeType.REGISTRY.register("minecraft:" + lowerCaseBiomeName, new BiomeType("minecraft:" + lowerCaseBiomeName)); + if (bukkitAdapter != null) biomeType.setLegacyId(bukkitAdapter.getInternalBiomeId(biomeType)); } /*// Block & Item for (Material material : Material.values()) { @@ -367,6 +369,7 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter // Attempt to load a Bukkit adapter BukkitImplLoader adapterLoader = new BukkitImplLoader(); try { + adapterLoader.addClass(FAWE_Spigot_v1_13_R2.class); adapterLoader.addClass(FAWE_Spigot_v1_14_R4.class); } catch (Throwable throwable) { throwable.printStackTrace(); 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 6cd25cf8b..c5ef1e510 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 @@ -20,6 +20,7 @@ package com.sk89q.worldedit.bukkit.adapter; import com.boydti.fawe.Fawe; +import com.boydti.fawe.beta.IChunkGet; import com.boydti.fawe.beta.implementation.packet.ChunkPacket; import com.boydti.fawe.bukkit.FaweBukkit; import com.sk89q.jnbt.CompoundTag; @@ -34,6 +35,7 @@ import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.DataFixer; +import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -42,6 +44,7 @@ import com.sk89q.worldedit.world.registry.BlockMaterial; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.WorldCreator; +import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -238,4 +241,12 @@ public interface BukkitImplAdapter extends IBukkitAdapter { default boolean regenerate(org.bukkit.World world, Region region, EditSession editSession) { return editSession.regenerate(region); } + + default IChunkGet get(World world, int chunkX, int chunkZ) { + throw new UnsupportedOperationException(); + } + + default int getInternalBiomeId(BiomeType biome) { + return Biome.BADLANDS.ordinal(); + } } \ No newline at end of file diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_13_R2.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_13_R2.java new file mode 100644 index 000000000..0296cde34 --- /dev/null +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_13_R2.java @@ -0,0 +1,453 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.bukkit.adapter.impl; + +import com.bekvon.bukkit.residence.commands.material; +import com.boydti.fawe.Fawe; +import com.boydti.fawe.FaweCache; +import com.boydti.fawe.beta.IChunkGet; +import com.boydti.fawe.beta.implementation.packet.ChunkPacket; +import com.boydti.fawe.beta.implementation.queue.SingleThreadQueueExtent; +import com.boydti.fawe.bukkit.adapter.mc1_13.BlockMaterial_1_13; +import com.boydti.fawe.bukkit.adapter.mc1_13.BukkitAdapter_1_13; +import com.boydti.fawe.bukkit.adapter.mc1_13.BukkitGetBlocks_1_13; +import com.boydti.fawe.bukkit.adapter.mc1_13.LazyCompoundTag_1_13; +import com.boydti.fawe.bukkit.adapter.mc1_13.MapChunkUtil_1_13; +import com.boydti.fawe.bukkit.adapter.mc1_14.BukkitGetBlocks_1_14; +import com.google.common.io.Files; +import com.sk89q.jnbt.CompoundTag; +import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.MaxChangedBlocksException; +import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.blocks.TileEntityBlock; +import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; +import com.sk89q.worldedit.bukkit.adapter.CachedBukkitAdapter; +import com.sk89q.worldedit.bukkit.adapter.IDelegateBukkitImplAdapter; +import com.sk89q.worldedit.entity.BaseEntity; +import com.sk89q.worldedit.entity.LazyBaseEntity; +import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.world.biome.BiomeType; +import com.sk89q.worldedit.world.block.BaseBlock; +import com.sk89q.worldedit.world.block.BlockState; +import com.sk89q.worldedit.world.block.BlockStateHolder; +import com.sk89q.worldedit.world.block.BlockType; +import com.sk89q.worldedit.world.block.BlockTypes; +import com.sk89q.worldedit.world.block.BlockTypesCache; +import com.sk89q.worldedit.world.entity.EntityType; +import com.sk89q.worldedit.world.registry.BlockMaterial; +import net.minecraft.server.v1_13_R2.BiomeBase; +import net.minecraft.server.v1_13_R2.Block; +import net.minecraft.server.v1_13_R2.BlockPosition; +import net.minecraft.server.v1_13_R2.Chunk; +import net.minecraft.server.v1_13_R2.ChunkProviderServer; +import net.minecraft.server.v1_13_R2.ChunkSection; +import net.minecraft.server.v1_13_R2.Entity; +import net.minecraft.server.v1_13_R2.EntityPlayer; +import net.minecraft.server.v1_13_R2.EntityTypes; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.IDataManager; +import net.minecraft.server.v1_13_R2.IRegistry; +import net.minecraft.server.v1_13_R2.ItemStack; +import net.minecraft.server.v1_13_R2.MinecraftKey; +import net.minecraft.server.v1_13_R2.NBTBase; +import net.minecraft.server.v1_13_R2.NBTTagCompound; +import net.minecraft.server.v1_13_R2.NBTTagInt; +import net.minecraft.server.v1_13_R2.PacketPlayOutMapChunk; +import net.minecraft.server.v1_13_R2.PlayerChunk; +import net.minecraft.server.v1_13_R2.TileEntity; +import net.minecraft.server.v1_13_R2.World; +import net.minecraft.server.v1_13_R2.WorldNBTStorage; +import net.minecraft.server.v1_13_R2.WorldServer; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.block.data.BlockData; +import org.bukkit.craftbukkit.v1_13_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_13_R2.CraftServer; +import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_13_R2.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack; +import org.bukkit.entity.Player; +import org.bukkit.generator.ChunkGenerator; + +import javax.annotation.Nullable; +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; +import java.util.OptionalInt; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.function.Supplier; + +import static com.google.common.base.Preconditions.checkNotNull; + +public final class FAWE_Spigot_v1_13_R2 extends CachedBukkitAdapter implements IDelegateBukkitImplAdapter { + private final Spigot_v1_13_R2_2 parent; + + // ------------------------------------------------------------------------ + // Code that may break between versions of Minecraft + // ------------------------------------------------------------------------ + + public FAWE_Spigot_v1_13_R2() throws NoSuchFieldException, NoSuchMethodException { + this.parent = new Spigot_v1_13_R2_2(); + } + + @Override + public BukkitImplAdapter getParent() { + return parent; + } + + public char[] idbToStateOrdinal; + + private synchronized boolean init() { + if (idbToStateOrdinal != null) return false; + idbToStateOrdinal = new char[Block.REGISTRY_ID.a()]; // size + for (int i = 0; i < idbToStateOrdinal.length; i++) { + BlockState state = BlockTypesCache.states[i]; + BlockMaterial mat = state.getMaterial(); + if (mat instanceof BlockMaterial_1_13) { + BlockMaterial_1_13 nmsMat = (BlockMaterial_1_13) mat; + int id = Block.REGISTRY_ID.getId(nmsMat.getState()); + idbToStateOrdinal[id] = state.getOrdinalChar(); + } + } + return true; + } + + @Override + public BlockMaterial getMaterial(BlockType blockType) { + Block block = getBlock(blockType); + return block != null ? new BlockMaterial_1_13(block) : null; + } + + @Override + public BlockMaterial getMaterial(BlockState state) { + IBlockData bs = ((CraftBlockData) Bukkit.createBlockData(state.getAsString())).getState(); + return bs != null ? new BlockMaterial_1_13(bs.getBlock(), bs) : null; + } + + public Block getBlock(BlockType blockType) { + return IRegistry.BLOCK.get(new MinecraftKey(blockType.getNamespace(), blockType.getResource())); + } + + @SuppressWarnings("deprecation") + @Override + public BaseBlock getBlock(Location location) { + checkNotNull(location); + + CraftWorld craftWorld = ((CraftWorld) location.getWorld()); + int x = location.getBlockX(); + int y = location.getBlockY(); + int z = location.getBlockZ(); + + org.bukkit.block.Block bukkitBlock = location.getBlock(); + BlockState state = BukkitAdapter.adapt(bukkitBlock.getBlockData()); + if (state.getBlockType().getMaterial().hasContainer()) { + //Read the NBT data + TileEntity te = craftWorld.getHandle().getTileEntity(new BlockPosition(x, y, z)); + if (te != null) { + NBTTagCompound tag = new NBTTagCompound(); + te.save(tag); // readTileEntityIntoTag + return state.toBaseBlock((CompoundTag) toNative(tag)); + } + } + + return state.toBaseBlock(); + } + + @Override + public boolean setBlock(Location location, BlockStateHolder state, boolean notifyAndLight) { + return this.setBlock(location.getChunk(), location.getBlockX(), location.getBlockY(), location.getBlockZ(), state, notifyAndLight); + } + + public boolean setBlock(org.bukkit.Chunk chunk, int x, int y, int z, BlockStateHolder state, boolean update) { + CraftChunk craftChunk = (CraftChunk) chunk; + Chunk nmsChunk = craftChunk.getHandle(); + World nmsWorld = nmsChunk.getWorld(); + + IBlockData blockData = ((BlockMaterial_1_13) state.getMaterial()).getState(); + ChunkSection[] sections = nmsChunk.getSections(); + int y4 = y >> 4; + ChunkSection section = sections[y4]; + + IBlockData existing; + if (section == null) { + existing = ((BlockMaterial_1_13) BlockTypes.AIR.getDefaultState().getMaterial()).getState(); + } else { + existing = section.getType(x & 15, y & 15, z & 15); + } + + BlockPosition pos = new BlockPosition(x, y, z); + + nmsChunk.d(pos); // removeTileEntity } Force delete the old tile entity + + CompoundTag nativeTag = state instanceof BaseBlock ? ((BaseBlock)state).getNbtData() : null; + if (nativeTag != null || existing instanceof TileEntityBlock) { + nmsWorld.setTypeAndData(pos, blockData, 0); + // remove tile + if (nativeTag != null) { + // We will assume that the tile entity was created for us, + // though we do not do this on the Forge version + TileEntity tileEntity = nmsWorld.getTileEntity(pos); + if (tileEntity != null) { + NBTTagCompound tag = (NBTTagCompound) fromNative(nativeTag); + tag.set("x", new NBTTagInt(x)); + tag.set("y", new NBTTagInt(y)); + tag.set("z", new NBTTagInt(z)); + tileEntity.load(tag); // readTagIntoTileEntity + } + } + } else { + if (existing == blockData) return true; + if (section == null) { + if (blockData.isAir()) return true; + sections[y4] = section = new ChunkSection(y4 << 4, nmsWorld.worldProvider.g()); + } + nmsChunk.setType(pos = new BlockPosition(x, y, z), blockData, false); + } + if (update) { + nmsWorld.getMinecraftWorld().notify(pos, existing, blockData, 0); + } + return true; + } + + @Nullable + private static String getEntityId(Entity entity) { + MinecraftKey minecraftkey = EntityTypes.getName(entity.P()); + return minecraftkey == null ? null : minecraftkey.toString(); + } + + private static void readEntityIntoTag(Entity entity, NBTTagCompound tag) { + entity.save(tag); + } + + @Override + public BaseEntity getEntity(org.bukkit.entity.Entity entity) { + checkNotNull(entity); + + CraftEntity craftEntity = ((CraftEntity) entity); + Entity mcEntity = craftEntity.getHandle(); + + String id = getEntityId(mcEntity); + + if (id != null) { + EntityType type = com.sk89q.worldedit.world.entity.EntityTypes.get(id); + Supplier saveTag = () -> { + NBTTagCompound tag = new NBTTagCompound(); + readEntityIntoTag(mcEntity, tag); + return (CompoundTag) toNative(tag); + }; + return new LazyBaseEntity(type, saveTag); + } else { + return null; + } + } + + @Override + public OptionalInt getInternalBlockStateId(BlockState state) { + BlockMaterial_1_13 material = (BlockMaterial_1_13) state.getMaterial(); + IBlockData mcState = material.getCraftBlockData().getState(); + return OptionalInt.of(Block.REGISTRY_ID.getId(mcState)); + } + + @Override + public BlockState adapt(BlockData blockData) { + CraftBlockData cbd = ((CraftBlockData) blockData); + IBlockData ibd = cbd.getState(); + return adapt(ibd); + } + + public BlockState adapt(IBlockData ibd) { + return BlockTypesCache.states[adaptToInt(ibd)]; + } + + public int adaptToInt(IBlockData ibd) { + try { + int id = Block.REGISTRY_ID.getId(ibd); + return idbToStateOrdinal[id]; + } catch (NullPointerException e) { + init(); + return adaptToInt(ibd); + } + } + + public char adaptToChar(IBlockData ibd) { + try { + int id = Block.REGISTRY_ID.getId(ibd); + return idbToStateOrdinal[id]; + } catch (NullPointerException e) { + init(); + return adaptToChar(ibd); + } + } + + @Override + public BlockData adapt(BlockStateHolder state) { + BlockMaterial_1_13 material = (BlockMaterial_1_13) state.getMaterial(); + return material.getCraftBlockData(); + } + + @Override + public void notifyAndLightBlock(Location position, BlockState previousType) { + this.setBlock(position.getChunk(), position.getBlockX(), position.getBlockY(), position.getBlockZ(), previousType, true); + } + + private MapChunkUtil_1_13 mapUtil = new MapChunkUtil_1_13(); + + @Override + public void sendFakeChunk(org.bukkit.World world, Player target, ChunkPacket packet) { + WorldServer nmsWorld = ((CraftWorld) world).getHandle(); + PlayerChunk map = BukkitAdapter_1_13.getPlayerChunk(nmsWorld, packet.getChunkX(), packet.getChunkZ()); + if (map != null && map.e()) { + boolean flag = false; + List inChunk = map.players; + if (inChunk != null && !inChunk.isEmpty()) { + EntityPlayer nmsTarget = target != null ? ((CraftPlayer) target).getHandle() : null; + for (EntityPlayer current : inChunk) { + if (nmsTarget == null || current == nmsTarget) { + synchronized (packet) { + PacketPlayOutMapChunk nmsPacket = (PacketPlayOutMapChunk) packet.getNativePacket(); + if (nmsPacket == null) { + nmsPacket = mapUtil.create(FAWE_Spigot_v1_13_R2.this, packet); + packet.setNativePacket(nmsPacket); + } + try { + FaweCache.IMP.CHUNK_FLAG.get().set(true); + current.playerConnection.sendPacket(nmsPacket); + } finally { + FaweCache.IMP.CHUNK_FLAG.get().set(false); + } + } + } + } + } + } + } + + @Override + public Map> getProperties(BlockType blockType) { + return getParent().getProperties(blockType); + } + + @Override + public org.bukkit.inventory.ItemStack adapt(BaseItemStack item) { + ItemStack stack = new ItemStack(IRegistry.ITEM.get(MinecraftKey.a(item.getType().getId())), item.getAmount()); + stack.setTag(((NBTTagCompound) fromNative(item.getNbtData()))); + return CraftItemStack.asCraftMirror(stack); + } + + @Override + public BaseItemStack adapt(org.bukkit.inventory.ItemStack itemStack) { + final ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack); + final BaseItemStack weStack = new BaseItemStack(BukkitAdapter.asItemType(itemStack.getType()), itemStack.getAmount()); + weStack.setNbtData(((CompoundTag) toNative(nmsStack.getTag()))); + return weStack; + } + + @Override + public Tag toNative(NBTBase foreign) { + return parent.toNative(foreign); + } + + @Override + public NBTBase fromNative(Tag foreign) { + if (foreign instanceof LazyCompoundTag_1_13) { + return ((LazyCompoundTag_1_13) foreign).get(); + } + return parent.fromNative(foreign); + } + + @Override + public boolean regenerate(org.bukkit.World world, Region region, EditSession editSession) { + WorldServer originalWorld = ((CraftWorld) world).getHandle(); + ChunkProviderServer provider = originalWorld.getChunkProvider(); + if (!(provider instanceof ChunkProviderServer)) { + return false; + } + + File saveFolder = Files.createTempDir(); + // register this just in case something goes wrong + // normally it should be deleted at the end of this method + saveFolder.deleteOnExit(); + try { + CraftServer server = originalWorld.getServer(); + IDataManager originalDataManager = originalWorld.getDataManager(); + WorldNBTStorage saveHandler = new WorldNBTStorage(saveFolder, originalDataManager.getDirectory().getName(), server.getServer(), originalDataManager.i()); + ChunkGenerator originalGen = world.getGenerator(); + + try (WorldServer freshWorld = new WorldServer(server.getServer(), + saveHandler, + originalWorld.worldMaps, + originalWorld.worldData, + originalWorld.worldProvider.getDimensionManager(), + originalWorld.methodProfiler, + world.getEnvironment(), + originalGen + ) + ) { + SingleThreadQueueExtent extent = new SingleThreadQueueExtent(); + extent.init(null, (x, z) -> new BukkitGetBlocks_1_13(freshWorld, x, z) { + @Override + public Chunk ensureLoaded(World nmsWorld, int X, int Z) { + Chunk cached = nmsWorld.getChunkIfLoaded(X, Z); + if (cached != null) return cached; + Future future = Fawe.get().getQueueHandler().sync((Supplier) () -> freshWorld.getChunkAt(X, Z)); +// while (!future.isDone()) { +// // this feels so dirty +// freshWorld.getChunkProvider().runTasks(); +// } + try { + return future.get(); + } catch (InterruptedException | ExecutionException e) { + throw new RuntimeException(e); + } + } + }, null); + for (BlockVector3 vec : region) { + editSession.setBlock(vec, extent.getFullBlock(vec)); + } + } + } catch (MaxChangedBlocksException e) { + throw new RuntimeException(e); + } finally { + saveFolder.delete(); + } + return true; + } + + @Override + public IChunkGet get(org.bukkit.World world, int chunkX, int chunkZ) { + return new BukkitGetBlocks_1_13(world, chunkX, chunkZ); + } + + @Override + public int getInternalBiomeId(BiomeType biome) { + BiomeBase base = CraftBlock.biomeToBiomeBase(BukkitAdapter.adapt(biome)); + return IRegistry.BIOME.a(base); + } +} diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_14_R4.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_14_R4.java index a7a726fd4..46ae43e18 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_14_R4.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/FAWE_Spigot_v1_14_R4.java @@ -23,6 +23,7 @@ import com.bekvon.bukkit.residence.commands.material; import com.bekvon.bukkit.residence.commands.server; import com.boydti.fawe.Fawe; import com.boydti.fawe.FaweCache; +import com.boydti.fawe.beta.IChunkGet; import com.boydti.fawe.beta.implementation.packet.ChunkPacket; import com.boydti.fawe.beta.implementation.queue.SingleThreadQueueExtent; import com.boydti.fawe.bukkit.adapter.BukkitQueueHandler; @@ -52,6 +53,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -60,6 +62,7 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.registry.BlockMaterial; +import net.minecraft.server.v1_14_R1.BiomeBase; import net.minecraft.server.v1_14_R1.Block; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.Chunk; @@ -89,6 +92,7 @@ import org.bukkit.block.data.BlockData; import org.bukkit.craftbukkit.v1_14_R1.CraftChunk; import org.bukkit.craftbukkit.v1_14_R1.CraftServer; import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_14_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; @@ -447,4 +451,15 @@ public final class FAWE_Spigot_v1_14_R4 extends CachedBukkitAdapter implements I } return true; } + + @Override + public IChunkGet get(org.bukkit.World world, int chunkX, int chunkZ) { + return new BukkitGetBlocks_1_14(world, chunkX, chunkZ); + } + + @Override + public int getInternalBiomeId(BiomeType biome) { + BiomeBase base = CraftBlock.biomeToBiomeBase(BukkitAdapter.adapt(biome)); + return IRegistry.BIOME.a(base); + } } diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 43a6d50099453f4e3d8b5f2a8c082c9a503d0010..843f2d3b668ae8cae72e0bf19d1fc7534a865e3e 100644 GIT binary patch delta 6114 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 d44MV+9t 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⁢9l=*zxQ`4PT6}0hlj%hUmcH{h5DXZaV}g zCt&;S2C`&@Qlm^n*d9wMhD4VvNJx0fq0yT*G%ePkCNE+wrdK-24+kFj#t3ra$1O(- zk5ajC#@_x~0)XU_ZBFh?N+Y`U*&ZvR=T6kQ(hcg3or9Nw%hKfT)@)^ZoOMV_>a9$U zF3pEd+kH=f?C)jB^LS%{>4MK1kJaOAQri9H4azqNoab3|n0io=3+lATD0dS?@B4K! zMT{b-+?1k@C_(Vbd`G%O3PZnE1J6`TDEa!Sp2c+!`;fIFbjttS@I)}fhgN@dQ_Ul? zaT{YMQ_5%lWWy<;pNtLeJM@S00TOE{=`Y?fTEE^Zjx_sf26~>g0r=JmFWQMsdZmwguOz zA@1hVZ>)wAPM*ufO0p+Hidoz4hlfO{1e=*9ERFY zdt@B~et~1KVZAvKu#yx0e015kH8LN$f_Yc6%wA1_=&$%lL1v!-2Hs=q<09mlPjue1 zT8(qCUH)``UMnl50MWB?9!4okp9{gL3VSbrUK7<+17%(D9%Gl~TBy-ez+NT#%U{Wy zDx{X&<5$#_YP@WC>K9`B{TBak8Ovg zn;c+SZ-izXLjF-$;-)NAQRkDSf^Kj0pa@DNMZqU`+6Y9NAO;XN?)qH5n&E)#9mAi1 z))Y!#Xd-c#iE_&5ohFQ;Ka~c(=rxOo2F@nkh;C5sFeY7xDiewZSV|FUT4|cs6SPfj zn^ylMp_isuF% zLym6GXx~*LiRl%5BIE}RBmI2+6#yKg4|lIAfUGU_$KN3~=~Ctu`nJ8z`AYErgLpT? z@|@VeTnF6{z)#k1od27_JCp)Wz*nnc%R(-jR~sK&EIl6k(KCMe!|sdJt$9rHtSuYG zRE)Gk^F%+?YB7*X{sp;n{dyRIzsr{kLSeuRNCE^W21N9nt33<+?(AYa=Uw%x z%<}3oUQK~+P$a~yB=uQ`4?bd^z`bG`$WDuK5WUVMN}9xD3U=oiH%qOCUapFMv0b;n zZW5+|Lz_OBLVgTc;72-&^3UM)a?CH23Ju56oPjiqTVcI@FSGwq5AjCfl1S)%SFI%fFt~h)+ z8vekKT7J8KfN_o8y#Z`Z)i~)DXGVRjo8%i`Mjgzj0cGOiZZJ5@ySy;#G>7<(S!$VG>3OX6=zhaj9sD z1Ihjx=|yu03t$=s_PC z1C>RzW6sAdAh3gn5E2~TI%zO2q$WHL3>+q&5=LSLoKh~~+m8g92^oP6_l-vc+eNM9 z6fMyO7)*@6u4U4TR+W{FO^q3A<+hcsM>)>h8FXokzs^1hCNtRGIUhIbbJ{1I_4(g0 z!DQI&>aR&1zwy&I7yyD-48tP_1~pfx>1zjy_L%*2rebNFz74phwCHX0=-VHVv!@xA zklCR(J4|0`sDN~pH`1x>>J4&RHc_|7QQaLDA6sv-Qd*=pY$J5j_MnQN3{zI<{05RA z9S&pZ92wNN%muqvjKg0C_58dErFkgv$IuOLHfdkhEW>?`_yPR*O$K$xbps@Oiqbsf z_(#nUt^RwG(r+p}gRv#DH}K6~DFjI7;W^<)v^O0dy(kP3InE_O+M7C$LDcRVgJO^5 zGrj$0eGre{QM0~jIQu{~-3`tSIlrHEc=Ny&?M>5DC)Gz!4&Y#z`|T<5JKElK%2VW1 z1=WX{V57$}3g9aIk?zL*2FdPPu<1#`$0Qu^6+s*hh>UH0;4gj}2sD*>SG&>o^RbGU z#*CkSz7cJDQt}!6+4XN1X-*h?mn@z}Z)eyVQVdpE3a&$G_Ii$xk(uOI4oi_`?~gP| zh>^cCZ&1OQxEqKbO2zG}+fB)Ixrf80Ums=Wx~usbJY{_TK<^*VIve+%|tTmLzLnk zr4KJ3dWqJ)1e!x?<*KF~@x4G9P5B%r1OO3MyF}IDN#%G7#fV}t&ur3}tfvwi4`Jt< zhWY4^Rf}HXy3r&)y9OeRq>UuHcc*%?<`FYLYXFmJ#djp<3;}vfr^N64y9^W=b(?`D z&#b9b!iCs%{ek9#7c%#i#T#b5k)R~nR^4o?v3Xigu5be0tzD?_?QsyibT-vA^WiFb z2mLhDVJqn^hzD*f{zw}He&ejHH=^&RaUI$bwvF1YYcnc+Q1sR^kp$ER!FrN8?^FA& z19~f~{;4fruQ#T2#2D%h^KQp4JGbN19Y%x5l`mNiCpAIn&v<{MJo0n(veN+`k2vN!Fsv1c{eRid|yXLm?~ zO0Y&7kN`=eMv2d2?2imq6Qi=5Rw~&eAkC?pilAvGMHl@cF*X&XsLW?(7~`|i7Xb37 z%3(Z|r^ThsX<(H9SV)qub>p$!WlXaiGnaY(8$xn0O^ZvF^ZW3&*r&IT2_y=4Tl8f_ zl6iJY@e%zXR_+=LyiTVASdJ~zWsaO`69P=f*kzur;UW+1X=&r_(?QL}KI46WQII>j zT)ce-=&|@sn9bvWfQ~2OZ-LKn5}?ijU3xW#4wLp%=!eqQfIYyJ>H~*=tMR}a;0cXG9qbGUk59yDL5+DDPr&_X468>GR&m@XxeQ7^x{{0i* zsb9V^6c69!Z;n`Ue}^!59=ijuo~vn}8+k^YJrf<&4X9KCOF(RSRfQq*FaXg9vu5TI zhYEP*FF?h-istGu$uBVOBvInrI$2Zma=*0l?hrpmZY)dI9u>}FY>RRo$o96z#bv$O zbA%thg27S$dWNFA+=6!_*}a>+q`8GY{wdMlHrvta{yiH*{?W)5jQ$D;$~)YOep5Vr zWMwDv$fTdtvs$}cpEU6?J z|G@ezT!et9-8A#(>kCBBkNHSx`Zrfj2|Cjim>)Yr@xrQqul$(Nfz)JlBnvEuWL?dwI>y?vb$jUQ&+>-IocRVu zN-}ramJLMF>EfC8#6#-Mq2S~1lU*T|L;wr!zO_KqhHBlK%r;d>tu=7GO4&mytziM+ zZ%5OSc4R}P?N9)rSMVMqtqfpfgr$JYt0_uo%yLNZ1gD8-(q=D$oA5+Mv%HoVGGe~7 zO@W&VLb_x+>mm5gKTbkq-R4HIdk^*9ikNlyxe1s-9h;9_hcnIvtrKZq#D7eYm$|)$ z4ei;;LmV|@k*#zZjh?dP#=>5IU8icfKt9-8T+TbwhYHZppK-Q2DdmVKos@(F{Ia${ z0ms&QKprY#CG6|r7z_*BD7ROq+CvqJU6N%}j(LbabfO$3L)f>rzh`5xKxDBan*Rl2 z`h$*++h@n(Fh8g9C#=v)zCmQ2%Kmq+sTEY~H)&mh9->sb=ofD*wiB}jlKREw$|)?G zWWmxU-xa`9EuST1kj;*uIN^h}r7JE#kKurBM8e#G$R=RQYYp)J4-itskgMTZR#|S`uEbdPM^sE)?nxm zg%3a_pDmHtQ16P2p^l}Q`u?5>ArBOyqu!L^{4h}-i+_v1yj)Xfk&B`o_wQSzX4|@^> zE_%F`!jG+{rhgYzN-wK~IvHcV4zxy>|ANJt8HWC?i5-&#dgdDOqu|v&Y3X3z^xz(2JIudm!yB zHeoqGnpApwL;6AaAhwYobY$96inm7vzb!vfO^{BoAbr2bw3vt)Id@Bn{dDV0R(W+e z(*10sv?y09nOLNF7w5NR1NCeQhr9CW*hr&+@$62OS~u5JBTe6! zE|F}OIqal(ybJmfe9I(TW|mZ(3-|K<)K_FYI)`$o6UlVmOw}i4VcjpO#LhMK-*3j# z9=(!D5ZlI+rxLUBq>h=Ar|W_-?^(+|HWQLBTHOLqs?RLeh}7O4kIh!JqcK z%f)GL24b>jI_9kl^q>FIMduOg%{5u13ym9z@Dg+tcFQ0qa&l7&T9b>*YR zOk17$4GI$roLGjN?%YF4nG;;Ex^yo+iDEaDP3zyI6;9Lbx)a?pcFu)OKct`5;9H&4 zlZoek-p^xx*yI_k;5+8AWK^)u6tThe%N1qu_EcHEi=83tdQg6?+_iqAO6EE5aF23k ztTN2E5p#BcBzei%(wO(6PE!$);J|b~x6r3&`3?H(j1y*$EAt!r5fQ!lbYmJbQcgGpbklB3FkW)VMtmM8_XUZ;LJB0|!yiV?MzW&0M zsPw=J_9UZrn{9~&+F1HA+Gg|M%X-~9du|9)RYl2tkk+#Oyogxak89U zsmCR*`$hAk%eKPZx?62_BF4egaD;lB-qRf6;hsS%+X4!?mAvQGwH1vLFGrM|m=mR} zdJ~rr`N^u6qw))=;&=)i%sVrL`oc=jY3HdJ44FL+sd=o~5vQf9WXJW|KFW~@;jwNl zqg>soJJ9S>Y%$;_;@swxZxF?Ial$m@s)_ppAwEj1q32O^ii0VS2X&SDHQ^lloB0OT z#h0qbwa@R~$}5r|wNEl|D)y;v*L4`Uq?Kt}Og`YF^=V|8UB~i#xjnP7$b2D(bxyZ7 zony6zQ&o~lMkpT-L**`T$L&t#<17+b>-O_WWk3|eKKSy0DAsjuId#RH!ud>&? zxYRzqR8?ba&+TzE{MC!mWg!oEeUXB7H${uG@LOG*q9;xsF_(t47e9%(^BrfFHMIz92dtLe6DB3O{RJ65N@^NNOy_{bd*VfJ8nWoQ5BVL5Y4w18M0w+1 zOttCuiKR^iYZU|EHp6P_wI-~JpL^##?cPkCi0Mi?3~({V^Z6gfzS^7Y?JH`HK>4Q&uKa?fH_|Aquc`~qN zq|+ZJn^qn2c9uqd6U(r%^9K&6p;g`$(TOu1wxThvUd!BJme^B@Tpaw1pI>*HdU|@+ z>_4;b)aZ_{dXf0Z*xKW6o9+wsasfkQCA;$$4x!vFFLLKtk`lzK`eY^O{UYHI_3~mT zT&?d-P3_Bj=jqB@R-78>JmcL|9g5y)yKLNszth~M8|=QQvSUc+(l(~NlU(Z0dAG*L z@Iu9=D*Mu2<9<--&raaiXPcZmHikb!nBY2a!2#cz{pb5(rIPAQqsweN-Sj)$BsVaZ4fm8^@lu%A9t&G%B|1BvX7tE_Jo zV9MH$8{cWDhYCbNXyvi@m|BFQmA^>IC)?@O#5)bw^mH%Aevsn#DbUa7r-3`jSW=ue zy~1SMB32+NmrUd|-mdiMvPxKom&wHV=dnen2UAUzLAM^-imO%?GklN1<6I>kZs*R@qlHGoVtv2@bEVpx9J57+XMTOHG?NtRkVu@dQlkFEICvGWT zJ9{TLEGap`$$Cq@kH(sg(Lyv2p5u4#(@V40cQ9$+-cKxJt7o;MW79dsRm%TbNWNfA z_v*I8H{Wz83j%Mk(-CLAXyiECr)&5JX>90bqwy?1_uiBgjArxt3>{0cr4SIEk*m}& zr$a<(YB9V&gXm(8fc9mni?y<7?ft62l-p9eHPR)NKiV#2afvI(E!XKSUkqFzI<8|7V=Qhh7K8D1Yzks$c5~S|@A@v>!9BNR2ziIK35)5uxO_d{9^sz1I#ME95(; zV!_f~_*y7tx?3*sZ3k{uC*8Pg)40gv0WDd_S-sHPMrme016LjC!)`~W)+NrKv8dE& z`Cw0ay*EVUMdO6hYe`l-g`0WPa320-f$>?cb1FE_R#{g&$Xei zMM;X&V8&I*tIr|*ZKo&Qzc^vKV96NQidYWaj!eo3&!f!OBu1W_20HK zv}i0;liJQzQ<-T|PaUnLGAlGDnt9DDzBPf-Vb2X)>b+3(6USLcb8J7c4x#te(OU%A z-H7g`rU)y#1v={C_K@}%%$~?wdu%?bPEIN}C7XjO?mQhFYbJA~qjr;Zg*QoG7t6nv zHJyu5$@2Xc2?ZX1ZQt2vdn%9!Aww7om9J!aLU;04GI!Y2hPp`ewvZ3c2b1EWUv~?F zbK+e@nah7f$GmG0Q6K85Q+(JLo4%W}Mwk&&Tt~&F&GIvsS6KDe98Bg#@Hiq@Y6*`o zA%XoGMDy|8@sXxPJY5;Ey{{7u9b%e-e4<8TrJ@8Vg1zbAHD;&C1B$$of@S`zPG=K7&Nh z?&hymE)Tx`tjP9cQJ7D7f6o(FsrZrsn_;O1v6y1htCoKChFifEh0JGKDYS242qY6K zO9iJ{GW*_HWN@raSA@+b_VdFRVm4%>G>oO2St1tqECv>>7`l}>49_#Llx+)(_>TFh ztjU!mOt$eYeJaUr)Q(rh_G7tLe(;_!H&9sI`j;LKC%^ie6(mnCSNk;CvpHd2JOKya zvlar|IX7N~?&x;-h73&YicoaVRpjDX=w$i5sf55+daq=Sh&@&_@@R^J^DcgJyn6Sc zyI;gll4rKetQRi?yc54*yfF3>nHPxnE#ErVpz6bioj|#0&qptMp2^6MKG45uSbNvs zsZB<5;53e$R57~EI4jzBt#nwqhL|Q;eU**!v#b${)N-eUr z#^$WhC{*+IW;HubrRiou#H=P0U+ne=2z6v6!!t{AL`@TYr*dN-MUd0RCwQ@Oi3^k5 zIXUh$Q6=+Ed7{brJag}6W<}ylvPGZhZ*r>^rQ_i|skZTOF(Kq$^p3gXe%)1qhoYjo z@c#2^orFmUel&^6Lls^;_je%~CXG?CRZpL~8BcR9{-DahjoT*TEnI7qOE{|)Ca=V0 zPW)74Z{m5fNE=tQp*@VH$!rN8-0dvDFUl_zPT%_`!qwJe+}CgX`{@P0c;EGN)!r%% z-d6mt#BkEp$b>7i>M!Yh>!d6pus3`c6C7Rkh=eQJdFEz`WY=hX7Y*IBrUACiVrO^O zbDTyIW9q%%Je5-8{p#O~ipPtE53PiH9wUi9JStXi^L|k1W`eDA10@eNdl94xSj8ZDTSu_ zYL_Y3olj|#ze17?$duX#oVLPFds`qLWw;qAwab;h6^#jPZ@ZupQ9W?iu&lAG{0YvZ zJ6%ZOHl!5=-Q2wzb1;Kc-6y6x?_h`xE<>?~Jff4dQ%edfo6#vB{)Fc}jM% z`sZtgVgwl}{sSIQtA)Q;FI$PF4)QBEaVg%aww=vo*WV=UiG1!pPB$(&Wvs^O{5r~# z>AkyCnzy^#dL8???rp8$J;k<1#C)%P8)pX$!?eE*T_;}pj9`h|7Bb^~2PfsA7w9d^ z65^P1A|!PZuT~no!L4ub!ryH5%krn4m9FfP^2f$?bycb+5AEZlmmoxX9VY-n%yj^1bGc(q>~Iycij z4Oe8!XbVh`dkxaqh|G-(kIdn66JO2<;|fy41@D!(P3Gq-$bMA$cG0+L+Lk_kiBH)x zI_eS|e~ZE|vJFzjG8y(~^cqgDh-R0a-?5n~sI?Ui)|L&^Z$RQP=~fN!I7|V)XDwFb(@CmuzA>$yHgbJ!) zQar(1*PpTZEuMMpK+;Z;YrsiAdJ40*U>k`?-VyUzzWv5CA-oMAU-`2i<6Lf6;mI0a zy7+6Gnqh(=$BN9e4YO`A{M!oLYiVMEoAXUgjJl&eS0YC$c}8M>Sj421YUK{oR2tN4 z;kw|+{NQ~dRaO4+UT2BdJFz}HXYQ7+eSgrB+cZ5lnRn;C-IrzU$6`yNKDo_8?>3>0 zz{|()nh}nrUKP`A$|+I9uUFlcJW3Pz<=D`&Nhqp zzP=r)k(MCq9mN0s?RkaK$Gqn1?u8$DDl1z)MDtwL;*I%sFwkl`p4OIfl~=m-bB%(B zZ9fs#^+yvcED^heyNNihqNFn+aQlSlw7r4q73z28rE}j)mUdY2xz(OK?Xxy%t}lv( zdD!MO(m?!5IKSQ^-YXhaZ=%CrTpT388n3wHa~(#fKd+?cBFd|CabeK!q4UVMuHKa` z+#C5e8q^+7y|e<=kV=gv>o!qUoh!oiVFhK^JMzy=ZmLmt-1e_2Ss=zBnS!tAYHM?s z6wij7sy#jZ%4IWf?bmtDa<{Ku^fGD+jdF_z_N~)JhAf|d{F0AJe6skyM`txdZ;_mB zs)Vyy!wxf`u`}U`k(`F>-bKCgh|=x(_KueQf|cPj-a+s2*j~3#Z|pxIir6mKaUSx0 z{@8TJ;4vTm;3eTn(>bzx=L-7`;rAx9eD9l3YP$tYdx#JzFMLzHNi%R--UIW}!!w=^ zF$2OK%MXQA+!JHTK3PL+?0;5`E{|H|ykH%ALi(!^i*k`^cDb~RMQ~);#lW_FXtsbV zp+I*s>z2U-TrY05MLp!%wIa`RWwSGvkUsH!Y|YOfbWiW9ePSBC@65x=LDUN$>+fGR zHDK@7>)Wb=xLtA%;NWx@MZlR~hI?Ui5|NALrPdjDIWFv$21rgMy=%474*T&5kMk`X zYy3p6$+&-bm`rtCBImfI=co43mk*r_8iG~VCaS-5%BAnhbO1MHxRZa8xhSEULHndg zeA+RyrLM$!Um>E(+Klxz&y7-MIJ`bn`3Kv%j6P!4oh8LL1o&Do!(D2p1Xo}VQ?$Hu zwj%I?Vo1|_DZ$meF2)y0`iM2N?5FN$`|93{lwEY5`A&D)$*o4TgUTl237N~Y0=<>0 z==5kqN4HSXcT@#m7^>?|MG!4rr(R)dD%=cdplhHv*U*ihAp358dg_b-FA*HG=Jr#T z1`;)T>U*~y^oX4$rC)d|{#00DaS`+NRBkWrmk)lNUrS0iL@o~PRqrY<_mP^%M2}n5 zeF`vEt=3I%FU6hhW7TZF8EUy|ieEFMc#j4H>)F9628?amW}+X@C~JEPK2D8gi4-h< z>oXNCW%;d`p~7vYq9+unX=oN!Y!Ga6Z%IZ1Wm0F63gfo9WCmMybR=rE2hO%)UL za_yAlB2y@&xX|PMm0RDwWj)-gSx{XZ!h)^bx^>y?!)(a2pj%tbd~+-`2D{7zI%YJw zDJxwJWsD)DJMO$uC8t^n!%T&AV)9?}-;6WqcEycv`TAc|MudGIFNrcb2Ya}Z3%$Bf!O#R-cv-6LL-#;M!qLXvi|E0rdka0j zQY1LjG*`&GaXOn%6`l>Ubz@m$t~Uy%?n5jIL|<|rDrw|%mWsMocMY-5J&|#~i3vyQ zO@P`>-d9RDF%U)=_Pol&eWmNfGw}U$wdHM6@Q+_JPX+#bG$&xwdVGcG2cfB zq1pXD{PLIQA=_g*Uc%DVyS2`b;Xb)FWz|j}6(6ekD+`vf*>X zV6e~AIq900$~aC)WaNYFJI`OT56k)HjJscvf~9Ue5&hup1)EfOnEHX(r8zSgKINT; zKcm#izd4Uj?(%9~RH%8~K4Ltg_8IKP^Cz8b+1xxnG}kej`S4oQeK0sYIoEl~u^Sm) z6f7XZJU@QJyFEkVIdik?zGU9z%t?-%Urp3GTTfF|J;~1`koegX=e$tDZ9rbR9VWn^ z!}b#cz6kx!spyC8$1{1V4|jZ>LlevcAy2PSTwH(xEKVBVOI^54S04u8+4>gv6aZEoL4og6yt#RET0v>s@+lc|1V zu-n476Uy_=lGDhMBFgjjeGy;}_}TPp5w z&TTBz`?<>Kf8|M0JSV53DtrINIdgvgJG%NJIvV-vgC>IYJf^w4Yz;qW!V8KShw-@x^kAkds;pGMQQNY!}0;<%7D&OTmwJdIg)-Z%@B*7Z+1& zaSM3>F|)md@#ZzQ5BB_iz3EknQ!DL!js|jA{x{=D&kvWJdTSfNX~X2GA^t`6EPXXO z$0BL-2l`Md#)1Kccs`D&;v;k2FmL#e_3(4Q&bW$_`kgIW;;S-g=>mQg3A`DTUo_&b zu_S#+m^39Lk&-KY$*WEFOmgOXSnOit)9&2t9R{+!x=>$NGVwsIkNO$-ywgHnu!0st zFN%gp!D(0q)g2T{X5uu(py3R-C8C(A zR7F{;juG3orI$%ENX%dcCxNuIr|BHdBs2C;{3+&lAE&P0uD&-(f8k^8#IA$L)9tTx zcM(rbNqG9wvTbW3tF38-7S5H@(h6;P8we_={bDaAPL&PeH(;u|Pjz*pHuxbHvQL~r zdB{|xDdYuP^f-)odQ5vTR(yqc6aG!e;8!8uZR<^vq>8c<*cLNpmWk|*pZ7@p+>)?{ z$r7HW_}>@V{}ra6huya#evoi?h5Cc0?Dzp&)9j_VblbJh)YPjXB43<1)kaI-VZOB% zuyesxzXEUDzL@$mzi&#pZ0gji?^l_)pEBD+(s08i7sI!&qd87P247m1ge=v;gN>Rs zQ=&T%R)*L~b*wyZ^@HKfQqNiRI4qTu4`MTBOwOkC@jMvMoZ};R<{BX`VE&AAUFdb< zwN*|-+{@EY|3{dgFfxp-DZHb8xMIV_Zb_vo_D(+O`l>Y|W^~6nb*ak>`hE;ANMar$ z`cN4@FIkuMb{q@wY^FI={Uzn)LOAOzhEd^Ei)%b*%hl|)HhKf2oNNj$ytWre#(Qt< z?=Xz((r=|*Vr&!UqZ;bX9qO@EWACnGTs}*05@ft#1{1PiGYU-qh`rsSI$jc98I!Mf zE$RmyDH}r8PpC<0T9G6EyX;-!DNbGOW`TptKZ9^DQw6fuF(ufNY2>v3pgMr#{wh-R ziKLRup3)P`rFy#5KN;|~{OnWswQRr7GT(83%{H3`B&J=!%4)LI_&(>LXFda0Ip}Zg zjv!9x<+=cWcv&)Sel?fOB+kn(+~k?eoqO%fX7|nwIS*ASTKByRO@AjsXDyff;|t7H zj;4%T@cOV2@SXfIcZ;`NtTbk~DV&WmGUfJN89Y^v2Lz8Q7&tT&1Q}|ZWybTl>N{zL zuRlC@Fsk9}b6J7sI*G@Ey%mzeLz!L0>p{OiYZRG6zu(>+LHsx2sV{p~ z_K?!gka9r;%-dVIOVhFkm5EWxxkhug;(mjL&ptLnIk_{;KXTP@4f=9~{{`N#{7H->mPjkxV^`4W2?zA0gr44Ka7 z`#i_{{o}kqi-kBL%ejV-t0e`~i*OmW(3QHkjT@OiHg5Ln^a|X#A#srJ;eoSfj*#dn zeNNPL)kU^wO#Jg3mx34TJyQ(Z-~9HU3leyGCw2^<@(eQ@I+s69JX3T-j*4jmKW8#Y zwy~HCuK_!B+C%-`MRikewveog@vLjX_zkqD?P}7w-n(SeNCnp-3hH6bIm5r;x((+a z2S=Mm_{$b^7iMv%Ejenwua)~wYJIS(5i!NM$+lf%xINUtDB28 zY=ci|Rp|;t@aazX)fyTF>-1UXncz<0HfBwMte38D7veU>_$4LJNb~E>i8+!jkZ%bV zEw+YDhh^MbFLTqpr&p+H_=SL86;AuK2TO|8u7UGghgluc@WVBlwNot*W+Yl$-IGW7 z#$PafC3{3rllb;*zlfILGQ|2b`Nl`p&h@~sWeM8vEKx6+GU=sOSAu^yO2KDN4?e2@ zIPDz$^(u99%iPz+RSjuB#xdg9Q&7Jw@&_NAsOxKx`#;&er#KNiKe)b0B!8EL=f(S8 zqIK_feYAOV!_hC8M2Zc+A})eYe1YT<`2%>vu!VitD<)nAz3P<}wV9Ir>zXVtea}Ap z#b5NP(K2&A$epZNtPY8}0;yUij#rQOe5s0GsF>JwT2f{0+rluG%M9Duv)r{C{Nhkz z^($NKgIZTAV`T8C>P7I$@5J%F;Dm?96-vEvzd{86$3r*7a9>-$R&>qblmSF?*>yH7gDlK2%n!(>_4oV`)Z2|nnJ<@P7@hg+Mi#(xS2GY<_b^QFCR&W3)HV zsFcd!_-Nx5M6|R{8vy@QnrD3V(Q5P3)K&CSA-PuPm8rn@%=xxB@b0_kQ||J2n#;*t zJ3qN?=%jsekZrlq)zZL-M8?L%z@i`j653jT;V{&!>W?-`#iq zncVbZ0PjUH*Sy@lT87iX)88zeevuefE_O3-T%_=8QpDUXWfY%+&@tRiOF4`0fiIy) z5pEtcj~h)!9W97U$T28e^$A|G6zDm;^3#s#AXV~bFCM(~!gNT$3ps%SPbK)*+vz`; zI&FW%M=f1;#l*7XUsj7^<Dw<(8A@)|EbOYPFk+vifTyE#-?0G z9j#+47bmYbbaDhww+rHBLrq|gsmMI}=*2f3&I3QDgP@K4`zmj`zH11?Ydq0!kunwB zFw>vs;d@gxCy|l(3lUTW_ZHBH_ui=}+?*X?aGd_h5E@(VZu0Y%4vnNDYrK{I&5bD^ zHC@iT2G*5tnzFc`pOP#d;?hk19NhipGtX|$B<<_9U|z0wf)YO#4QZOrt*kG-pl)h9 z6_cwMLO-TMFT5OTCR#^cRa92;i-+dAXjOQxhgmBhe(l19bCVY_>C?c#S4r@V_?20a zdtvv#d3I)Plr#Bb>`@$0_ACe;+}HkQfzR{n)Okg}8;EauK@T-Uf6_X(berM$8Ovn< za-xV@I}@HZjFb-{zcsmPj0@bfxfW;ge8H-#P8F(~lgq*r|0kVbJgRP_3_ zv$Kz^t;Hu$GQ@D|!!z=%?liiKSQzf^`$q4@Bj~hN>PL$ftnWgxa@|u?34}5Owt=7A*vnB)O%mWHtxAHL3 zi%DbHZkk8D4r0$w{cPGMqotiXL!-qVQ8!|LMT`FX83iqRPZEC&n2*D?oea1_cw2rU zzg#I7?ibB_(j!~8qX!oCWtP8^@;i#&m&$d=)qLjifhMm8>)brMa#>@5qOvnb!?0Jv zjw^=a!sWAe*}A!8DH_QdpZRZNRyXg+;FzohChfFk+LGD69mjiiGeu7Klwgakhq(xH zwEig*a@6eeR5+|o=o*q}t~Y}ZK7VJ1nTMf7X{+wGD^1w#8FhK@ARdPHLD#D^5}BeI zV=*7{*q*K4=Zjfx?J>F}kDR}?l)}e27#=2w8EB}fFoEMaGb|xY@AWhW9If2}-FljOU?Q{H8x^cGURI{(nbG+pE!amm7{E&;I`IF^T8M)ksAKBc5rSrE) zMb~?uKPs6EH1Ood8K{K3K&*a;%P3#dWO_?=E&GD?j4S`CNI5Z8@+WQqDM16~JY`hZ zW_|dH4O{OLgkyQt7e-n0>hN9Z5C4=a@`=x=BrB^wOVqMbuSnwi*+PoqR(kIwg5cG&^7G3-qX0y#v!HqQe4cOcx%y$2+PLm`WIF~zjR-msI5YA3n|8TUq`R9 zuHlQmC$Ct(3-e?+*eUcAeeu>*Y?G#qo4Mzu(t>=hV`@%}-qVE63VaUW8QPIPDQfE- zAA;>$@zN~&BapJPK^!B%Q$eEPK0iV?qAryT$R=`B8KqVv-k)YO-wv8>#cqUNqMwh5 z*3LhBrJE`}c@V~&=b^NZBUjQR`C;!+ty!q>#!4CIVZT>quR!Fr}G@RBa z&C-7wj+l^pC(s-VtG)3^-r|#L;jJxsk<;f}>X>VWU(H`Nj8;6;lSGtv;Xd4WX;`DP zyy0a4<=h!>i0jZRWQ4wA)g2jQYU?UVtB^{8s8g3KBhK&J$vt_NV?qxJ3DIn2rWgH6lsumn&r!Aig0LNQL?po z-R0z&?Y(>RQmE2ai{4Q9n`gl9FF4<>2fkugJa79&?@AFz*=@~^ls0})m z$)-oWVe9^~hIorBwFjq_p9-lo>ZQ?bc6jlM)U!6EkCWbywzPwb#OIAD zL+eAhRRq0cPtnUi{KU>&taxQGLPRt`Hdpa!i!N!fpe!yAIfHBIFurHFlWVLf79;uC zG?&}CgXIylNoUd-hkv zWUAQn%>)gB{R$t|Q)JHdNhi-q3XtpsbB$%)cqFo@qgfm05ajhtttIc7sCT;%P2wiy z+-1A<1-{i=FU`DLLJ8lzvG8qOz8z6U^PN_Q;LYV%6k~ERZ5^cJxSsXTlk6$sj8~@o ze@Y{qFZ(C@WD>?F$w!iiGu&g&APrHUm+1_b!JTdQt1G&k@x#s4J;(Juh0Qb9LGmI| z{Rd5nM~CNHyZ++j4}~;1#hNzrR9@%YrWJa#JkxX2A(hf z@MfIFp1s^2&0gA2B!>KGB*#}qHFV!$qL#B&ZC54vb(edDzahuUoO^+;b1v0;!}PlS zUl@OWruM$jz7}o;VTZs_NBPzedk7J5q=v74MeR25(=`Pwglqg2WLye_tk%^Q5(5Qs z5C=#gCU_L;0#U&Rj|M#;q%iPk*$aY+Zrk*S2%+1~20{$cN1-8*eS8oX6bEU*1fyvg zjzvTQ(PFTW@h%X}+J{MyM^Mm`le)Wk7I;v0HZF471F+mtXLQrp?Iiw z)N3OBCZPniDwz;&ERg(e4#X23@M|7q9-a17A;g0QwBC3HQAKy4unqDOedO>O0>uNZ zu6>Z_XkVTo$Ws`Yi1<~WLe$HmiEz;2oS`s+TGcU#HjEHeukU3L^;fK%WB(L%nQ zgWw=yd~s_@ry#!Q;IY$?9`upL97GtMWcm_BAAR&~4Kj#6`mhaAK?i5vg>>Sg5~^N- zuA+@&*wB|~k_ULuR`ih-0n`e8^o|I64c!-Na;OhFG5dZ`yEP09jC5p$HRL+-<3%VQ z@*^G$8}axF5fY0Ux(xP?Sckp-)F}*%O&Ubp<`v||c_RNl{DB4Xs3{ z_<;}Ff$nFT5Of{gfvAhnUG!1dB`7o6`d9+Wg!XtV4NXHI*~vp4(AFVEs5ScNiV9R1 zZS~TClA+t8wV@U0wk!HjTyzPQjG<&WV2@0#pql5wqv|+lJKE}>42?r)K$;4@jb^!@ z0i{5?U1#`77 zRTVij2-U<}0giYif979AZj!?&k=KTx+(@;rP$CFFQknur!HlxgToSvZ&xwKIV*&g$ z5ICE^|KtW}Vj|u6Afm`@Oc*&xHS~s<2TcXV=0@4X{?ITo`Zb#aG;#mXr15}I0rc|# z)RiDm3K;NgdR$zL&p>!9N|AOkV05I> z^a3HIjzQP;P|(Xr)2~o6JXH62HQ{=PnYP?R*@RKQkUi`*3Xo2pkp>625-k7j^^G79 z4+HS%o{Q((s}Uf)F%S9pi&1vb-z7v@UmRcsbaP=~XgK^$)>aCF(L@pe^ix*eJLfl6V+O20}%IBpN(`^PmaLd&bA0{x~2M(Sb=q{NJ;O z3SBV_gm%G4a~bbKX+W+Z_?4|GfM*7{?2V3b?GvG)c_Yx%Ae358+9C@G+YG=Bk3qF4 z(NNw|C@l;X3wX#r9n6si-C8#ar2<=fP_5pK=vK)wC_UJEa|~#G!UDD;4j4(1V`ESP z(6WrOP@F+qZn6>}Ut=E@i!H`H`3f+*@BnYCx_K-W3O+Rb)HvXaO63RYpj!yt3Vfmv zA&U;6=#s~}#r@y{Sc-A~?$F3Z6kZ*lZZ!#;ow)XERU%gd@d^ zAS6h|Ux!Tm9|5KxrfAcHkI>U#g3p0gh&D3*D^vneAx447G$%c=k| zsc>|vDVQ*N@WgJcJ$q{jBqBlZcf~Se(9H9ZL`Xg?7^NasQntz-%Q;|G~RC)z+d@2vS01aB=`W4OaDnSDGQA+UpTyQ-Y)=ABlFR%mlqGm zWZ(5#4;`S6+yIH*v7%@dflx$7K0fm8;^A2xTLefLOVA`LxG+j^G?^{|tr2DD)^|&X z=lUV>o*EW#t~G&keY}99RcNR#-eCdH_nq_H1fpmEGn*OKKoC9iYDj_U!`aL>G7mur z^cF&kfnjni;ig(NRE-8o`sdo;fUc7b16i;GXZ`qyQ)q!8vsa)tU>8n(2D*^a0k)_k zy+1=4z~)p`GyDyj_)w2vgXEx@Wfd@&e>gI;g2TafWZ(K8P*e7QYUo)Ulv1LyC)x{pGT(`!&ikVt(UAWEM=XVJJ0We2lJ z)x&zl3XI>Fe};SOGzdiyPEjD$i4TXncvBnI9uVs-5bJoItmjd19pndM7#SGvU;~IZ zw1jFkN8a5$92$|EK&$L3I*SPs7#)}eo2m{?HbC14)Z#d8;3hhYH){mQ*e{1955Azf zvW+JBObSC!%3NDOtL7eR(8wTSzLFqQw+^qD{_rxIJYal<0&~@kW1~Uy=OO$%6_RoL zkp99pln&~Mh3p}Oi39T6-Q9l+!z_#aaV zAA}O=w{u7ug|e@R{Kw8DbZBP={MB}!4<_>PVqolf{w;3s#g3fV@MHj;(9IAib*Led zY|%E<(;R*)5)|axuA}w~KuXj&{jEs29R7HKvV>W;z+R0cc}=hts0;^iX~`d}(A8uV zUJ4=rNM)tO|2tw) zsDqE%;>5t9^9JUy1m1_-wkmxu`iE-W+PllXW)m21#&RaQE1 zo&e#~Yl^kF}NT8#jz<+yIl9RcA$uXu_e zjG(FjJ=)|QAfrJ1)qmzA`Y-5IV?Q1a7Pm#G1Vx~_{y=q)lRJM!=MrPigpxO4re+M4 zb4e~RDk%SVv{A#A@{ginL5>SufdmHwbW`XhTL5~tjsD!@nwliu0lMDgz-!5}!k6c`K0T)m!pE-cb9U0vQ1^!y4{h9wP!2FOy%t}kHjpjqLOMR-m;(=% z2S-PAJ}s!3K)k1OPx1~h`^p0K(>Ye_a}r0XO5wuTK=g<0DcpWwET#T4mJ*~6Gih3a za)MdbZeDzj+`t909KU+Rq=5JPEWl*Qz(pJ&w&t<8`q$8CA^~<;v)g8h&bM5xEN;6X z`KO`eU=pbkNml5Uoxd-DT7{!P(lk&ew9Z0RcW~ug$N-Qx5imlIUjq`_hj~x099{$K zVh4s+0Co*Hfyb5MeZ51h-Dl_pFqQb8A@LfZa-RS2+8G^U;j2(eV4Vo9%Rnb@8|qQi zMfL>^^w2u93*=Gr&w%3fJj9bOP=e|X4@_v?Brq;;$d1!UY$uZf1(XatBx_is1N9$B z=0@_2_~><{$H=roj>v%5lcLE6!>9I;#AE;)b_Cjr4BLV-f=ssx@Au{arMCu@;qj}E zH1;rZ)OQ+C8iI-CaTMbsiOB&jj%2i*{)BZcR6$8zY-6BB8qD_<49SuTy$JLWwdw{2 z4!$=0ap*h-Mvm*>0*$y8jTSnA81;4?6`VV;R-n`WN;T97@r)@m@j z%_B2p7|IMju5*7javIcYu%R!%t%zrsjK{uYpm+l4!mLl0Y;8Ng9g(1BL!rM!=KTUS z8|?c2krg=tJR6x!YGlR5&p>i$)3<*+04<54I( z*de~j_o|?HgVo?2S^37G=RhtYMvhk}>$g>c-)O`dBNHg$K#!b0ga0Gplt_*|)L2iW zr#Mu;jol`_C#yIGy5Anio^dD_$ZzON#B#Eb!(l!`A1OJ|B_PQkf?8q92Bxj!su!Q_ z$Yp-wuzZuhnz;XunBzP`yG#O~TBzjxmIW;Sl>brHbBXr};VWl_gh4T~vG|@j3Zl2W<8dP|wOep2MLeUD(((bnvaV3EAkH$lx zbjOOAPu6&m|#Bd}%TIr!YI4!IFPgZ)d@ZTQDKS~efvcvP)_hh9v6?o+GN9mzl z9(|b(K3VBKjy!V7UVxqhCzf#nAs4jPON&3UURZ>l0ndFF$(?L1;N$RLwRbb|HyRO> zPlMKbsOVEuexoPrJ$B@84W|y{Ob9^ou1Z2ObKo|1O>virhpkybWd^ znL){iGB4-7!9H2?X=bC*M1m(sK9p;g#>ADAC0|9(QJ_DP59KmmBv^Q|I=no*6{0(`u_`BZx+lnabr~l^@)uvC7@nq#E*Y?{HNlFAm zPcFO&1Dun!pKa$6x_lif0H(Z8Iv;py{K39+nD<>+z#YU2l0oTOO*(3A)Ehqz+8|tOACksK` zrQc{o^ml5s6hwtbz2y)s1sOKb2)e_^ss4Al3xx!qi5`FwjqY?4F(PK|?J=W`PHZ)r31Y*>E1e2SMaV;kbM7Mu+fKVhU@{&R3T*y?6e8OlW+&^v+S?$7%Ad_bR3Gep@&~M6z~@60b5iNY5~|sY6>JL zfdOX5{v$Kqk!%9Z4^ieXgGXj^P#=M&3z&fE+&J2VOa=Z2)~{S`&g*0$6gquKvk*y$ z-T_3_PzreV2h3#QkcMXmLWo}3LUr*0zGC{xdZ&E((7}Hfa6qkVfjOyR17tp1hou7d z`%p1PP|fyxhs~%BKM-w<12kVaKsO(4?t#5%f2TBmvT)h{c}RoW@&mEi9@Sze%N8RD zHfqXIL4Lpmc5+dftl$D6^RfOk0}tfGgHeGzM|T?ivq;5;2Rg_e-F-v`I{dlm=9`N76lfAUY1!e{C!HF!ZJM=cc5;7os#z|JMPyQHcy0@%eDB`E#?<--A$y z@xNZj_6xz}Z@942oGedF*#7cl1s(Dgaa~VVC|sO>90-xrguvb$s@B|uKyT^J{jpL1 zGlh%ExvifpPpB^Z@xwzh5gk@giU{Bo<2$r5%K)NleUuPc^6_x~>p|HKh5pzXK=lFU zV?qqrc18cot4;#LMlUy^hP&^eO83djP1fRnc`<<{u?Vq>J6UUVOa0dYwFL>L@Evu4 zBl{m4;%LtiRk8roHY5GD|Jae>&Lhf(PX^e!l|UPCL!&Ya9Nm#&A8t?~#0eKb(+%nOD`tSb$4=iln diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index ce2fb9a84..5fc3fbcc2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit; import com.boydti.fawe.FaweCache; +import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; import com.boydti.fawe.config.Settings; import com.boydti.fawe.object.FaweLimit; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java index 822e20528..3ad7516fa 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java @@ -21,6 +21,10 @@ import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.command.util.annotation.Confirm; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; +import com.sk89q.worldedit.extent.clipboard.Clipboard; +import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; import com.sk89q.worldedit.internal.annotation.AllowedRegion; import com.sk89q.worldedit.internal.annotation.Time; import com.sk89q.worldedit.math.BlockVector2; @@ -93,8 +97,7 @@ public class HistorySubCommands { @Command( name = "rollback", desc = "Undo a specific edit. " + - " - The time uses s, m, h, d, y.\n" + - " - Import from disk: /history import" + " - The time uses s, m, h, d, y." ) @CommandPermissions("worldedit.history.undo") @Confirm diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java index a49632fc3..b75e597f5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java @@ -144,82 +144,4 @@ public final class BiomeTypes { } return maxBiomeId; } - - static { - OCEAN.setLegacyId(0); - PLAINS.setLegacyId(1); - DESERT.setLegacyId(2); - MOUNTAINS.setLegacyId(3); - FOREST.setLegacyId(4); - TAIGA.setLegacyId(5); - SWAMP.setLegacyId(6); - RIVER.setLegacyId(7); - NETHER.setLegacyId(8); - THE_END.setLegacyId(9); - FROZEN_OCEAN.setLegacyId(10); - FROZEN_RIVER.setLegacyId(11); - SNOWY_TUNDRA.setLegacyId(12); - SNOWY_MOUNTAINS.setLegacyId(13); - MUSHROOM_FIELDS.setLegacyId(14); - MUSHROOM_FIELD_SHORE.setLegacyId(15); - BEACH.setLegacyId(16); - DESERT_HILLS.setLegacyId(17); - WOODED_HILLS.setLegacyId(18); - TAIGA_HILLS.setLegacyId(19); - MOUNTAIN_EDGE.setLegacyId(20); - JUNGLE.setLegacyId(21); - JUNGLE_HILLS.setLegacyId(22); - JUNGLE_EDGE.setLegacyId(23); - DEEP_OCEAN.setLegacyId(24); - STONE_SHORE.setLegacyId(25); - SNOWY_BEACH.setLegacyId(26); - BIRCH_FOREST.setLegacyId(27); - BIRCH_FOREST_HILLS.setLegacyId(28); - DARK_FOREST.setLegacyId(29); - SNOWY_TAIGA.setLegacyId(30); - SNOWY_TAIGA_HILLS.setLegacyId(31); - GIANT_TREE_TAIGA.setLegacyId(32); - GIANT_TREE_TAIGA_HILLS.setLegacyId(33); - WOODED_MOUNTAINS.setLegacyId(34); - SAVANNA.setLegacyId(35); - SAVANNA_PLATEAU.setLegacyId(36); - BADLANDS.setLegacyId(37); - WOODED_BADLANDS_PLATEAU.setLegacyId(38); - BADLANDS_PLATEAU.setLegacyId(39); - SMALL_END_ISLANDS.setLegacyId(40); - END_MIDLANDS.setLegacyId(41); - END_HIGHLANDS.setLegacyId(42); - END_BARRENS.setLegacyId(43); - WARM_OCEAN.setLegacyId(44); - LUKEWARM_OCEAN.setLegacyId(45); - COLD_OCEAN.setLegacyId(46); - DEEP_WARM_OCEAN.setLegacyId(47); - DEEP_LUKEWARM_OCEAN.setLegacyId(48); - DEEP_COLD_OCEAN.setLegacyId(49); - DEEP_FROZEN_OCEAN.setLegacyId(50); - THE_VOID.setLegacyId(127); - SUNFLOWER_PLAINS.setLegacyId(129); - DESERT_LAKES.setLegacyId(130); - GRAVELLY_MOUNTAINS.setLegacyId(131); - FLOWER_FOREST.setLegacyId(132); - TAIGA_MOUNTAINS.setLegacyId(133); - SWAMP_HILLS.setLegacyId(134); - ICE_SPIKES.setLegacyId(140); - MODIFIED_JUNGLE.setLegacyId(149); - MODIFIED_JUNGLE_EDGE.setLegacyId(151); - TALL_BIRCH_FOREST.setLegacyId(155); - TALL_BIRCH_HILLS.setLegacyId(156); - DARK_FOREST_HILLS.setLegacyId(157); - SNOWY_TAIGA_MOUNTAINS.setLegacyId(158); - GIANT_SPRUCE_TAIGA.setLegacyId(160); - GIANT_SPRUCE_TAIGA_HILLS.setLegacyId(161); - MODIFIED_GRAVELLY_MOUNTAINS.setLegacyId(162); - SHATTERED_SAVANNA.setLegacyId(163); - SHATTERED_SAVANNA_PLATEAU.setLegacyId(164); - ERODED_BADLANDS.setLegacyId(165); - MODIFIED_WOODED_BADLANDS_PLATEAU.setLegacyId(166); - MODIFIED_BADLANDS_PLATEAU.setLegacyId(167); - BAMBOO_JUNGLE.setLegacyId(168); - BAMBOO_JUNGLE_HILLS.setLegacyId(169); - } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java index 9117d4d18..05fa97cb2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java @@ -56,6 +56,13 @@ public final class LegacyMapper { private static final Logger log = LoggerFactory.getLogger(LegacyMapper.class); private static LegacyMapper INSTANCE = new LegacyMapper(); + static { + try { + INSTANCE.loadFromResource(); + } catch (Throwable e) { + log.warn("Failed to load the built-in legacy id registry", e); + } + } private Map blockEntries = new HashMap<>(); @@ -68,11 +75,6 @@ public final class LegacyMapper { * Create a new instance. */ private LegacyMapper() { - try { - loadFromResource(); - } catch (Throwable e) { - log.warn("Failed to load the built-in legacy id registry", e); - } } /** @@ -118,6 +120,7 @@ public final class LegacyMapper { } if (blockState == null) { log.warn("Unknown block: " + value); + continue; } } blockArr[combinedId] = blockState.getInternalId();