From 678a78a98295f7585256c9b7268536f612f32ea8 Mon Sep 17 00:00:00 2001 From: wizjany Date: Fri, 15 Mar 2019 20:56:49 -0400 Subject: [PATCH] Update adapters. Don't update unchanged blocks, do change NBT, no need to light. Also clean up the forge side a bit. --- .../adapter/impl/Spigot_v1_13_R1$1.class | Bin 959 -> 959 bytes .../bukkit/adapter/impl/Spigot_v1_13_R1.class | Bin 25469 -> 25386 bytes .../adapter/impl/Spigot_v1_13_R2$1.class | Bin 959 -> 959 bytes .../bukkit/adapter/impl/Spigot_v1_13_R2.class | Bin 25491 -> 25408 bytes .../adapter/impl/Spigot_v1_13_R2_2$1.class | Bin 965 -> 965 bytes .../adapter/impl/Spigot_v1_13_R2_2.class | Bin 25557 -> 25474 bytes .../com/sk89q/worldedit/forge/ForgeWorld.java | 22 +++--- .../worldedit/forge/TileEntityUtils.java | 71 +----------------- 8 files changed, 11 insertions(+), 82 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R1$1.class index 1be36a1548ae79e29a8f2658a12ac417d786ced7..efa78dacc6f7d28a602adf0b9f4189588b996348 100644 GIT binary patch delta 13 UcmdnbzMp+V4l|?BQbg0!jn~5d{S7vS9CRZBbFI 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 R_ximh@~kYW@2!$0{{uXBEhzv1 delta 8631 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 diff --git a/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/Spigot_v1_13_R2$1.class index fe6e8015a0812e54e0750abb1ba049e53a05a4cd..97a809b53396eabe2efe1086b896f97291cc9040 100644 GIT binary patch delta 13 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 KHTA7(TJt~O>oBwc diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index 8291f50ae..a8b4ba13b 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -166,21 +166,19 @@ public class ForgeWorld extends AbstractWorld { boolean successful = successState != null; // Create the TileEntity - if (successful) { - if (block instanceof BaseBlock && ((BaseBlock) block).hasNbtData()) { - // Kill the old TileEntity - world.removeTileEntity(pos); - NBTTagCompound nativeTag = NBTConverter.toNative(((BaseBlock) block).getNbtData()); - nativeTag.putString("id", ((BaseBlock) block).getNbtId()); - TileEntityUtils.setTileEntity(world, position, nativeTag); + if (successful || old == newState) { + if (block instanceof BaseBlock) { + CompoundTag tag = ((BaseBlock) block).getNbtData(); + if (tag != null) { + NBTTagCompound nativeTag = NBTConverter.toNative(tag); + nativeTag.putString("id", ((BaseBlock) block).getNbtId()); + TileEntityUtils.setTileEntity(world, position, nativeTag); + } } } - if (notifyAndLight) { - if (!successful) { - newState = old; - } - world.checkLight(pos); + if (successful && notifyAndLight) { + //world.checkLight(pos); world.markAndNotifyBlock(pos, chunk, old, newState, UPDATE | NOTIFY); } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java index 52f027f51..41ec90f66 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java @@ -29,8 +29,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import java.lang.reflect.Constructor; - import javax.annotation.Nullable; /** @@ -46,45 +44,14 @@ final class TileEntityUtils { * * @param tag the tag * @param position the position - * @return a tag compound */ - private static NBTTagCompound updateForSet(NBTTagCompound tag, BlockVector3 position) { + private static void updateForSet(NBTTagCompound tag, BlockVector3 position) { checkNotNull(tag); checkNotNull(position); tag.put("x", new NBTTagInt(position.getBlockX())); tag.put("y", new NBTTagInt(position.getBlockY())); tag.put("z", new NBTTagInt(position.getBlockZ())); - - return tag; - } - - /** - * Set a tile entity at the given location. - * - * @param world the world - * @param position the position - * @param clazz the tile entity class - * @param tag the tag for the tile entity (may be null to not set NBT data) - */ - static void setTileEntity(World world, BlockVector3 position, Class clazz, @Nullable NBTTagCompound tag) { - checkNotNull(world); - checkNotNull(position); - checkNotNull(clazz); - - TileEntity tileEntity = constructTileEntity(world, position, clazz); - - if (tileEntity == null) { - return; - } - - if (tag != null) { - // Set X, Y, Z - updateForSet(tag, position); - tileEntity.read(tag); - } - - world.setTileEntity(new BlockPos(position.getBlockX(), position.getBlockY(), position.getBlockZ()), tileEntity); } /** @@ -105,42 +72,6 @@ final class TileEntityUtils { } } - /** - * Construct a tile entity from the given class. - * - * @param world the world - * @param position the position - * @param clazz the class - * @return a tile entity (may be null if it failed) - */ - @Nullable - static TileEntity constructTileEntity(World world, BlockVector3 position, Class clazz) { - Constructor baseConstructor; - try { - baseConstructor = clazz.getConstructor(); // creates "blank" TE - } catch (Throwable e) { - return null; // every TE *should* have this constructor, so this isn't necessary - } - - TileEntity genericTE; - try { - genericTE = baseConstructor.newInstance(); - } catch (Throwable e) { - return null; - } - - /* - genericTE.blockType = Block.blocksList[block.getId()]; - genericTE.blockMetadata = block.getData(); - genericTE.xCoord = pt.getBlockX(); - genericTE.yCoord = pt.getBlockY(); - genericTE.zCoord = pt.getBlockZ(); - genericTE.worldObj = world; - */ // handled by internal code - - return genericTE; - } - public static NBTTagCompound copyNbtData(TileEntity tile) { NBTTagCompound tag = new NBTTagCompound(); tile.write(tag);