geforkt von Mirrors/FastAsyncWorldEdit
Fix schem loading of sponge schems with dataversion == 1 (#690)
* fix sponge schem loading with schem version 1
Dieser Commit ist enthalten in:
Ursprung
70c40ae077
Commit
a64a1ab09e
@ -32,10 +32,13 @@ import com.sk89q.jnbt.IntTag;
|
|||||||
import com.sk89q.jnbt.NBTInputStream;
|
import com.sk89q.jnbt.NBTInputStream;
|
||||||
import com.sk89q.jnbt.StringTag;
|
import com.sk89q.jnbt.StringTag;
|
||||||
import com.sk89q.jnbt.Tag;
|
import com.sk89q.jnbt.Tag;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
import com.sk89q.worldedit.entity.BaseEntity;
|
import com.sk89q.worldedit.entity.BaseEntity;
|
||||||
import com.sk89q.worldedit.extension.input.InputParseException;
|
import com.sk89q.worldedit.extension.input.InputParseException;
|
||||||
|
import com.sk89q.worldedit.extension.platform.Capability;
|
||||||
import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
|
import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
|
||||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||||
|
import com.sk89q.worldedit.internal.Constants;
|
||||||
import com.sk89q.worldedit.math.BlockVector3;
|
import com.sk89q.worldedit.math.BlockVector3;
|
||||||
import com.sk89q.worldedit.util.Location;
|
import com.sk89q.worldedit.util.Location;
|
||||||
import com.sk89q.worldedit.world.DataFixer;
|
import com.sk89q.worldedit.world.DataFixer;
|
||||||
@ -99,6 +102,7 @@ public class FastSchematicReader extends NBTSchematicReader {
|
|||||||
public FastSchematicReader(NBTInputStream inputStream) {
|
public FastSchematicReader(NBTInputStream inputStream) {
|
||||||
checkNotNull(inputStream);
|
checkNotNull(inputStream);
|
||||||
this.inputStream = inputStream;
|
this.inputStream = inputStream;
|
||||||
|
this.fixer = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataFixer();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String fix(String palettePart) {
|
private String fix(String palettePart) {
|
||||||
@ -133,7 +137,12 @@ public class FastSchematicReader extends NBTSchematicReader {
|
|||||||
StreamDelegate root = new StreamDelegate();
|
StreamDelegate root = new StreamDelegate();
|
||||||
StreamDelegate schematic = root.add("Schematic");
|
StreamDelegate schematic = root.add("Schematic");
|
||||||
schematic.add("DataVersion").withInt((i, v) -> dataVersion = v);
|
schematic.add("DataVersion").withInt((i, v) -> dataVersion = v);
|
||||||
schematic.add("Version").withInt((i, v) -> version = v);
|
schematic.add("Version").withInt((i, v) -> {
|
||||||
|
version = v;
|
||||||
|
if (v == 1 && dataVersion == -1) { // DataVersion might not be present, assume 1.13.2
|
||||||
|
dataVersion = Constants.DATA_VERSION_MC_1_13_2;
|
||||||
|
}
|
||||||
|
});
|
||||||
schematic.add("Width").withInt((i, v) -> width = v);
|
schematic.add("Width").withInt((i, v) -> width = v);
|
||||||
schematic.add("Height").withInt((i, v) -> height = v);
|
schematic.add("Height").withInt((i, v) -> height = v);
|
||||||
schematic.add("Length").withInt((i, v) -> length = v);
|
schematic.add("Length").withInt((i, v) -> length = v);
|
||||||
|
@ -33,6 +33,8 @@ import com.sk89q.jnbt.NBTInputStream;
|
|||||||
import com.sk89q.worldedit.entity.BaseEntity;
|
import com.sk89q.worldedit.entity.BaseEntity;
|
||||||
import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
|
import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard;
|
||||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.BannerBlockCompatibilityHandler;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.BedBlockCompatibilityHandler;
|
||||||
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.EntityNBTCompatibilityHandler;
|
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.EntityNBTCompatibilityHandler;
|
||||||
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.FlowerPotCompatibilityHandler;
|
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.FlowerPotCompatibilityHandler;
|
||||||
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.NBTCompatibilityHandler;
|
import com.sk89q.worldedit.extent.clipboard.io.legacycompat.NBTCompatibilityHandler;
|
||||||
@ -86,7 +88,9 @@ public class SchematicReader implements ClipboardReader {
|
|||||||
new SignCompatibilityHandler(),
|
new SignCompatibilityHandler(),
|
||||||
new FlowerPotCompatibilityHandler(),
|
new FlowerPotCompatibilityHandler(),
|
||||||
new NoteBlockCompatibilityHandler(),
|
new NoteBlockCompatibilityHandler(),
|
||||||
new SkullBlockCompatibilityHandler()
|
new SkullBlockCompatibilityHandler(),
|
||||||
|
new BannerBlockCompatibilityHandler(),
|
||||||
|
new BedBlockCompatibilityHandler()
|
||||||
};
|
};
|
||||||
private static final EntityNBTCompatibilityHandler[] ENTITY_COMPATIBILITY_HANDLERS = {
|
private static final EntityNBTCompatibilityHandler[] ENTITY_COMPATIBILITY_HANDLERS = {
|
||||||
new Pre13HangingCompatibilityHandler()
|
new Pre13HangingCompatibilityHandler()
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren