This commit is contained in:
Jesse Boyd
2019-07-30 07:39:18 +10:00
parent 02d5f3e8d5
commit 7967ef4db4
25 changed files with 74 additions and 90 deletions

View File

@ -72,27 +72,13 @@ public enum BuiltInClipboardFormat implements ClipboardFormat {
@Override
public ClipboardWriter getWriter(OutputStream outputStream) throws IOException {
throw new IOException("This format does not support saving");
throw new IOException("This format does not support saving, use `schem` or `sponge` as format"); // Is more helpful
}
@Override
public boolean isFormat(File file) {
try (NBTInputStream str = new NBTInputStream(new GZIPInputStream(new FileInputStream(file)))) {
NamedTag rootTag = str.readNamedTag();
if (!rootTag.getName().equals("Schematic")) {
return false;
}
CompoundTag schematicTag = (CompoundTag) rootTag.getTag();
// Check
Map<String, Tag> schematic = schematicTag.getValue();
if (!schematic.containsKey("Materials")) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
String name = file.getName().toLowerCase();
return name.endsWith(".schematic") || name.endsWith(".mcedit") || name.endsWith(".mce");
}
},
SPONGE_SCHEMATIC("sponge", "schem") {
@ -127,23 +113,8 @@ public enum BuiltInClipboardFormat implements ClipboardFormat {
@Override
public boolean isFormat(File file) {
try (NBTInputStream str = new NBTInputStream(new GZIPInputStream(new FileInputStream(file)))) {
NamedTag rootTag = str.readNamedTag();
if (!rootTag.getName().equals("Schematic")) {
return false;
}
CompoundTag schematicTag = (CompoundTag) rootTag.getTag();
// Check
Map<String, Tag> schematic = schematicTag.getValue();
if (!schematic.containsKey("Version")) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
String name = file.getName().toLowerCase();
return name.endsWith(".schem") || name.endsWith(".sponge");
}
},
@ -175,20 +146,8 @@ public enum BuiltInClipboardFormat implements ClipboardFormat {
@Override
public boolean isFormat(File file) {
try (NBTInputStream str = new NBTInputStream(new GZIPInputStream(new FileInputStream(file)))) {
NamedTag rootTag = str.readNamedTag();
CompoundTag structureTag = (CompoundTag) rootTag.getTag();
// Check
Map<String, Tag> structure = structureTag.getValue();
if (!structure.containsKey("DataVersion")) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
String name = file.getName().toLowerCase();
return name.endsWith(".nbt");
}
},

View File

@ -280,6 +280,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
return clipboard;
}
/*
private Clipboard readVersion2(BlockArrayClipboard version1, CompoundTag schematicTag) throws IOException {
Map<String, Tag> schematic = schematicTag.getValue();
if (schematic.containsKey("BiomeData")) {
@ -290,6 +291,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
}
return version1;
}
*/
private void readBiomes(BlockArrayClipboard clipboard, Map<String, Tag> schematic) throws IOException {
ByteArrayTag dataTag = requireTag(schematic, "BiomeData", ByteArrayTag.class);
@ -349,6 +351,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
}
}
/*
private void readEntities(BlockArrayClipboard clipboard, Map<String, Tag> schematic) throws IOException {
List<Tag> entList = requireTag(schematic, "Entities", ListTag.class).getValue();
if (entList.isEmpty()) {
@ -379,6 +382,7 @@ public class SpongeSchematicReader extends NBTSchematicReader {
}
}
}
*/
@Override
public void close() throws IOException {
inputStream.close();