From 84fa07eec9769b11eb440c64033f75ebb4330e0a Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Thu, 1 Dec 2016 13:51:59 +1100 Subject: [PATCH] Fix some undo/redo tile entity issues --- .../java/com/boydti/fawe/object/changeset/FaweChangeSet.java | 4 ++-- .../main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java | 3 +++ .../main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java | 2 +- .../src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java | 1 - .../main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java | 3 +++ .../main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java | 2 +- .../main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java | 3 +++ .../main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java | 2 +- .../main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java | 3 +++ .../main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java | 2 +- .../main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java | 3 +++ .../main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java | 2 +- .../src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java | 1 - 13 files changed, 22 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java b/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java index 21cade82..9347395b 100644 --- a/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java +++ b/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java @@ -162,7 +162,7 @@ public abstract class FaweChangeSet implements ChangeSet { if (to.hasNbtData()) { CompoundTag nbt = to.getNbtData(); MainUtil.setPosition(nbt, x, y, z); - addTileRemove(nbt); + addTileCreate(nbt); } int combinedFrom = (from.getId() << 4) + from.getData(); int combinedTo = (to.getId() << 4) + to.getData(); @@ -182,7 +182,7 @@ public abstract class FaweChangeSet implements ChangeSet { if (to.hasNbtData()) { CompoundTag nbt = to.getNbtData(); MainUtil.setPosition(nbt, x, y, z); - addTileRemove(nbt); + addTileCreate(nbt); } int combinedTo = (to.getId() << 4) + to.getData(); add(x, y, z, combinedFrom, combinedTo); diff --git a/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java b/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java index 28b385a1..c947fae3 100644 --- a/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java +++ b/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java @@ -352,6 +352,9 @@ public class ForgeChunk_All extends CharFaweChunk { TileEntity tileEntity = nmsWorld.getTileEntity(pos); if (tileEntity != null) { NBTTagCompound tag = (NBTTagCompound) ForgeQueue_All.methodFromNative.invoke(null, nativeTag); + tag.setInteger("x", pos.getX()); + tag.setInteger("y", pos.getY()); + tag.setInteger("z", pos.getZ()); tileEntity.readFromNBT(tag); // ReadTagIntoTile } } diff --git a/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java b/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java index 998ac8bd..2696dd21 100644 --- a/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java +++ b/forge110/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java @@ -274,7 +274,7 @@ public class ForgeQueue_All extends NMSMappedFaweQueue entry : tiles.entrySet()) { TileEntity tile = entry.getValue(); NBTTagCompound tag = new NBTTagCompound(); - tile.readFromNBT(tag); // readTileEntityIntoTag + tile.writeToNBT(tag); // readTileEntityIntoTag BlockPos pos = entry.getKey(); CompoundTag nativeTag = (CompoundTag) methodToNative.invoke(null, tag); previous.setTile(pos.getX(), pos.getY(), pos.getZ(), nativeTag); diff --git a/forge110/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java b/forge110/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java index ba94fcb5..597f7343 100644 --- a/forge110/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java +++ b/forge110/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java @@ -49,7 +49,6 @@ public class ForgePlayer extends AbstractPlayerActor { private final EntityPlayerMP player; protected ForgePlayer(ForgePlatform platform, EntityPlayerMP player) { - System.out.println("New forge player!!!!"); this.platform = platform; this.player = player; ThreadSafeCache.getInstance().getOnlineIds().add(getUniqueId()); diff --git a/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java b/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java index b3c00016..07396bdb 100644 --- a/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java +++ b/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java @@ -366,6 +366,9 @@ public class ForgeChunk_All extends CharFaweChunk { TileEntity tileEntity = nmsWorld.getTileEntity(pos); if (tileEntity != null) { NBTTagCompound tag = (NBTTagCompound) ForgeQueue_All.methodFromNative.invoke(null, nativeTag); + tag.setInteger("x", pos.getX()); + tag.setInteger("y", pos.getY()); + tag.setInteger("z", pos.getZ()); tileEntity.readFromNBT(tag); // ReadTagIntoTile } } diff --git a/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java b/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java index b735a0a4..c0bedc60 100644 --- a/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java +++ b/forge111/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java @@ -274,7 +274,7 @@ public class ForgeQueue_All extends NMSMappedFaweQueue entry : tiles.entrySet()) { TileEntity tile = entry.getValue(); NBTTagCompound tag = new NBTTagCompound(); - tile.readFromNBT(tag); // readTileEntityIntoTag + tile.writeToNBT(tag); // readTileEntityIntoTag BlockPos pos = entry.getKey(); CompoundTag nativeTag = (CompoundTag) methodToNative.invoke(null, tag); previous.setTile(pos.getX(), pos.getY(), pos.getZ(), nativeTag); diff --git a/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java b/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java index 7cea8dec..ed170d49 100644 --- a/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java +++ b/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java @@ -323,6 +323,9 @@ public class ForgeChunk_All extends CharFaweChunk { TileEntity tileEntity = nmsWorld.getTileEntity(x, y, z); if (tileEntity != null) { NBTTagCompound tag = (NBTTagCompound) ForgeQueue_All.methodFromNative.invoke(null, nativeTag); + tag.setInteger("x", x); + tag.setInteger("y", x); + tag.setInteger("z", x); tileEntity.readFromNBT(tag); // ReadTagIntoTile } } diff --git a/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java b/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java index dd715bff..361e3ffa 100644 --- a/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java +++ b/forge1710/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java @@ -320,7 +320,7 @@ public class ForgeQueue_All extends NMSMappedFaweQueue entry : tiles.entrySet()) { TileEntity tile = entry.getValue(); NBTTagCompound tag = new NBTTagCompound(); - tile.readFromNBT(tag); // readTileEntityIntoTag + tile.writeToNBT(tag); // readTileEntityIntoTag ChunkPosition pos = entry.getKey(); CompoundTag nativeTag = (CompoundTag) methodToNative.invoke(null, tag); previous.setTile(pos.chunkPosX, pos.chunkPosY, pos.chunkPosZ, nativeTag); diff --git a/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java b/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java index 5ba09c6a..e12046fc 100644 --- a/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java +++ b/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java @@ -266,6 +266,9 @@ public class ForgeChunk_All extends CharFaweChunk { TileEntity tileEntity = nmsWorld.getTileEntity(pos); if (tileEntity != null) { NBTTagCompound tag = (NBTTagCompound) ForgeQueue_All.methodFromNative.invoke(null, nativeTag); + tag.setInteger("x", pos.getX()); + tag.setInteger("y", pos.getY()); + tag.setInteger("z", pos.getZ()); tileEntity.readFromNBT(tag); // ReadTagIntoTile } } diff --git a/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java b/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java index 625fa6ca..718636b4 100644 --- a/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java +++ b/forge189/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java @@ -223,7 +223,7 @@ public class ForgeQueue_All extends NMSMappedFaweQueue entry : tiles.entrySet()) { TileEntity tile = entry.getValue(); NBTTagCompound tag = new NBTTagCompound(); - tile.readFromNBT(tag); // readTileEntityIntoTag + tile.writeToNBT(tag); // readTileEntityIntoTag BlockPos pos = entry.getKey(); CompoundTag nativeTag = (CompoundTag) methodToNative.invoke(null, tag); previous.setTile(pos.getX(), pos.getY(), pos.getZ(), nativeTag); diff --git a/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java b/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java index ace36a9a..ab2b7056 100644 --- a/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java +++ b/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeChunk_All.java @@ -350,6 +350,9 @@ public class ForgeChunk_All extends CharFaweChunk { TileEntity tileEntity = nmsWorld.getTileEntity(pos); if (tileEntity != null) { NBTTagCompound tag = (NBTTagCompound) ForgeQueue_All.methodFromNative.invoke(null, nativeTag); + tag.setInteger("x", pos.getX()); + tag.setInteger("y", pos.getY()); + tag.setInteger("z", pos.getZ()); tileEntity.readFromNBT(tag); // ReadTagIntoTile } } diff --git a/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java b/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java index 998ac8bd..2696dd21 100644 --- a/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java +++ b/forge194/src/main/java/com/boydti/fawe/forge/v0/ForgeQueue_All.java @@ -274,7 +274,7 @@ public class ForgeQueue_All extends NMSMappedFaweQueue entry : tiles.entrySet()) { TileEntity tile = entry.getValue(); NBTTagCompound tag = new NBTTagCompound(); - tile.readFromNBT(tag); // readTileEntityIntoTag + tile.writeToNBT(tag); // readTileEntityIntoTag BlockPos pos = entry.getKey(); CompoundTag nativeTag = (CompoundTag) methodToNative.invoke(null, tag); previous.setTile(pos.getX(), pos.getY(), pos.getZ(), nativeTag); diff --git a/forge194/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java b/forge194/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java index ba94fcb5..597f7343 100644 --- a/forge194/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java +++ b/forge194/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java @@ -49,7 +49,6 @@ public class ForgePlayer extends AbstractPlayerActor { private final EntityPlayerMP player; protected ForgePlayer(ForgePlatform platform, EntityPlayerMP player) { - System.out.println("New forge player!!!!"); this.platform = platform; this.player = player; ThreadSafeCache.getInstance().getOnlineIds().add(getUniqueId());