diff --git a/core/src/main/java/com/boydti/fawe/object/clipboard/ClipboardRemapper.java b/core/src/main/java/com/boydti/fawe/object/clipboard/ClipboardRemapper.java index 33ad4fa6..1eb4af70 100644 --- a/core/src/main/java/com/boydti/fawe/object/clipboard/ClipboardRemapper.java +++ b/core/src/main/java/com/boydti/fawe/object/clipboard/ClipboardRemapper.java @@ -275,9 +275,11 @@ public class ClipboardRemapper { mapPEtoPC.put(new BaseBlock(peId,5), new BaseBlock(pcId,3)); } - for (int id : new int[] {29, 33}) { + for (int id : new int[] {29, 33, 34}) { mapPEtoPC.put(new BaseBlock(id,3), new BaseBlock(id,2)); mapPEtoPC.put(new BaseBlock(id,2), new BaseBlock(id,3)); + mapPEtoPC.put(new BaseBlock(id,10), new BaseBlock(id,11)); + mapPEtoPC.put(new BaseBlock(id,11), new BaseBlock(id,10)); mapPEtoPC.put(new BaseBlock(id,5), new BaseBlock(id,4)); mapPEtoPC.put(new BaseBlock(id,13), new BaseBlock(id,12)); mapPEtoPC.put(new BaseBlock(id,4), new BaseBlock(id,5)); diff --git a/core/src/main/java/com/sk89q/jnbt/NBTInputStream.java b/core/src/main/java/com/sk89q/jnbt/NBTInputStream.java index a72b539b..73acd8f5 100644 --- a/core/src/main/java/com/sk89q/jnbt/NBTInputStream.java +++ b/core/src/main/java/com/sk89q/jnbt/NBTInputStream.java @@ -105,6 +105,11 @@ public final class NBTInputStream implements Closeable { return readTagPayload(type, 0); } + public Object readData() throws IOException { + int type = is.readByte(); + return readDataPayload(type, 0); + } + public void readNamedTagLazy(RunnableVal2 getReader) throws IOException { int type = is.readByte(); String name = readNamedTagName(type); diff --git a/nukkit/src/main/java/com/boydti/fawe/nukkit/core/converter/MCAFile2LevelDB.java b/nukkit/src/main/java/com/boydti/fawe/nukkit/core/converter/MCAFile2LevelDB.java index c29066ac..f90618d9 100644 --- a/nukkit/src/main/java/com/boydti/fawe/nukkit/core/converter/MCAFile2LevelDB.java +++ b/nukkit/src/main/java/com/boydti/fawe/nukkit/core/converter/MCAFile2LevelDB.java @@ -442,6 +442,7 @@ public class MCAFile2LevelDB extends MapConverter { CompoundTag tag = (CompoundTag) item.getValue().get("tag"); if (tag != null) { + Map tagMap = ReflectionUtils.getMap(tag.getValue()); List enchants = (List) tag.getList("ench"); if (enchants != null) { for (CompoundTag ench : enchants) { @@ -452,12 +453,14 @@ public class MCAFile2LevelDB extends MapConverter { if (id != null) value.put("lvl", new ShortTag(Short.parseShort(id))); } } + CompoundTag tile = (CompoundTag) tagMap.get("BlockEntityTag"); + if (tile != null) { + tagMap.putAll(tile.getValue()); + } } return item; } - // currentTick - private boolean transform(MCAChunk chunk, CompoundTag tag) { try { String id = tag.getString("id");