From 37eb4a1008651c3a1e92956bd00839bc7c7c8c99 Mon Sep 17 00:00:00 2001 From: dordsor21 Date: Tue, 19 Oct 2021 14:12:02 +0100 Subject: [PATCH] Regress to upstream for (Binary)Tags in data fixers --- .../clipboard/io/FastSchematicReader.java | 18 ++++++++---------- .../clipboard/io/MCEditSchematicReader.java | 15 ++------------- .../clipboard/io/SpongeSchematicReader.java | 15 ++------------- .../com/sk89q/worldedit/world/DataFixer.java | 7 ++++--- .../world/storage/ChunkStoreHelper.java | 9 +-------- 5 files changed, 17 insertions(+), 47 deletions(-) diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java index 53869452f..0f4351660 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java @@ -9,7 +9,6 @@ import com.fastasyncworldedit.core.internal.io.FaweInputStream; import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.jnbt.streamer.StreamDelegate; import com.fastasyncworldedit.core.jnbt.streamer.ValueReader; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntTag; import com.sk89q.jnbt.NBTInputStream; @@ -27,7 +26,6 @@ import com.sk89q.worldedit.internal.Constants; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.Location; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; @@ -106,18 +104,18 @@ public class FastSchematicReader extends NBTSchematicReader { return fixer.fixUp(DataFixer.FixTypes.BLOCK_STATE, palettePart, dataVersion); } - private CompoundBinaryTag fixBlockEntity(CompoundTag tag) { + private CompoundTag fixBlockEntity(CompoundTag tag) { if (fixer == null || dataVersion == -1) { - return tag.asBinaryTag(); + return tag; } - return fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, tag.asBinaryTag(), dataVersion); + return fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, tag, dataVersion); } - private CompoundBinaryTag fixEntity(CompoundTag tag) { + private CompoundTag fixEntity(CompoundTag tag) { if (fixer == null || dataVersion == -1) { - return tag.asBinaryTag(); + return tag; } - return fixer.fixUp(DataFixer.FixTypes.ENTITY, tag.asBinaryTag(), dataVersion); + return fixer.fixUp(DataFixer.FixTypes.ENTITY, tag, dataVersion); } private String fixBiome(String biomePalettePart) { @@ -353,7 +351,7 @@ public class FastSchematicReader extends NBTSchematicReader { x, y, z, - (CompoundTag) AdventureNBTConverter.fromAdventure(fixBlockEntity(new CompoundTag(values))) + fixBlockEntity(new CompoundTag(values)) ); } } @@ -374,7 +372,7 @@ public class FastSchematicReader extends NBTSchematicReader { EntityType type = EntityTypes.parse(id.getValue()); if (type != null) { - final CompoundTag ent = (CompoundTag) AdventureNBTConverter.fromAdventure(fixEntity(new CompoundTag(value))); + final CompoundTag ent = fixEntity(new CompoundTag(value)); BaseEntity state = new BaseEntity(type, ent); Location loc = ent.getEntityLocation(clipboard); if (brokenEntities) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java index a5cc43e09..17adaae10 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java @@ -20,7 +20,6 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.google.common.collect.ImmutableList; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntTag; @@ -229,13 +228,7 @@ public class MCEditSchematicReader extends NBTSchematicReader { } if (fixer != null && t != null) { - //FAWE start - t = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( - DataFixer.FixTypes.BLOCK_ENTITY, - t.asBinaryTag(), - -1 - )); - //FAWE end + t = fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, t, -1); } BlockVector3 vec = BlockVector3.at(x, y, z); @@ -296,11 +289,7 @@ public class MCEditSchematicReader extends NBTSchematicReader { if (tag instanceof CompoundTag) { CompoundTag compound = (CompoundTag) tag; if (fixer != null) { - compound = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( - DataFixer.FixTypes.ENTITY, - compound.asBinaryTag(), - -1 - )); + compound = fixer.fixUp(DataFixer.FixTypes.ENTITY, compound, -1); } String id = convertEntityId(compound.getString("id")); Location location = NBTConversions.toLocation( diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java index debae09c3..6971e440d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java @@ -20,7 +20,6 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.google.common.collect.Maps; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntArrayTag; @@ -271,11 +270,7 @@ public class SpongeSchematicReader extends NBTSchematicReader { values.remove("Id"); values.remove("Pos"); if (fixer != null) { - //FAWE start - tileEntity = ((CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, - new CompoundTag(values).asBinaryTag(), dataVersion - ))).getValue(); - //FAWE end + tileEntity = fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, new CompoundTag(values), dataVersion).getValue(); } else { tileEntity = values; } @@ -416,13 +411,7 @@ public class SpongeSchematicReader extends NBTSchematicReader { entityTag = entityTag.createBuilder().putString("id", id).remove("Id").build(); if (fixer != null) { - //FAWE start - entityTag = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( - DataFixer.FixTypes.ENTITY, - entityTag.asBinaryTag(), - dataVersion - )); - //FAWE end + entityTag = fixer.fixUp(DataFixer.FixTypes.ENTITY, entityTag, dataVersion); } EntityType entityType = EntityTypes.get(id); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java index 9f3d6faed..7e1f05cce 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.world; import com.google.common.annotations.Beta; +import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; /** @@ -40,9 +41,9 @@ public interface DataFixer { private FixTypes() { } - public static FixType CHUNK = new FixType<>(); - public static FixType BLOCK_ENTITY = new FixType<>(); - public static FixType ENTITY = new FixType<>(); + public static FixType CHUNK = new FixType<>(); + public static FixType BLOCK_ENTITY = new FixType<>(); + public static FixType ENTITY = new FixType<>(); public static FixType BLOCK_STATE = new FixType<>(); public static FixType BIOME = new FixType<>(); public static FixType ITEM_TYPE = new FixType<>(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java index 0d13f2c32..792a139ec 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.world.storage; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.Tag; @@ -120,13 +119,7 @@ public class ChunkStoreHelper { .containsKey("Sections") && dataVersion < currentDataVersion) { // only fix up MCA format, DFU doesn't support MCR chunks final DataFixer dataFixer = platform.getDataFixer(); if (dataFixer != null) { - //FAWE start - use Adventure - tag = (CompoundTag) ((CompoundTag) AdventureNBTConverter.fromAdventure(dataFixer.fixUp( - DataFixer.FixTypes.CHUNK, - rootTag.asBinaryTag(), - dataVersion - ))).getValue().get("Level"); - //FAWE end + tag = (CompoundTag) dataFixer.fixUp(DataFixer.FixTypes.CHUNK, rootTag, dataVersion).getValue().get("Level"); dataVersion = currentDataVersion; } }