This commit is contained in:
2024-12-08 23:18:32 +01:00
parent 0134ef1f61
commit 06eec10660
8 changed files with 13 additions and 22 deletions
@@ -65,10 +65,6 @@ public class NodeData {
private SchematicFormat nodeFormat;
public InputStream schemData() throws IOException {
return new GZIPInputStream(schemDataRaw());
}
public InputStream schemDataRaw() throws IOException {
try {
return selSchemData.select(rs -> {
rs.next();
@@ -96,8 +92,8 @@ public class NodeData {
@Getter
public enum SchematicFormat {
MCEDIT(".schematic"),
V2(".schem"),
V3(".schem");
SPONGE_V2(".schem"),
SPONGE_V3(".schem");
private final String fileEnding;
}
@@ -145,6 +145,6 @@ public class WorldeditWrapper14 implements WorldeditWrapper {
throw new SecurityException(e);
}
new SchematicData(schem).saveFromBytes(outputStream.toByteArray(), NodeData.SchematicFormat.V2);
new SchematicData(schem).saveFromBytes(outputStream.toByteArray(), NodeData.SchematicFormat.SPONGE_V2);
}
}
@@ -22,7 +22,6 @@ package de.steamwar.core;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import com.sk89q.jnbt.*;
import com.sk89q.worldedit.EmptyClipboardException;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.extension.input.InputParseException;
@@ -51,7 +50,6 @@ import org.bukkit.util.Vector;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.stream.Collectors;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -88,7 +86,8 @@ public class WorldEditWrapper14 implements WorldEditWrapper {
try {
switch (schemFormat) {
case V2:
case SPONGE_V2:
case SPONGE_V3:
return new SpongeSchematicReader(new NBTInputStream(is)).read();
case MCEDIT:
return new MCEditSchematicReader(new NBTInputStream(is)).read();
@@ -19,7 +19,6 @@
package de.steamwar.core;
import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicReader;
import com.sk89q.jnbt.NBTInputStream;
import com.sk89q.worldedit.extent.clipboard.Clipboard;
import com.sk89q.worldedit.extent.clipboard.io.*;
@@ -40,7 +39,7 @@ public class WorldEditWrapper18 extends WorldEditWrapper14 {
switch (schemFormat) {
case MCEDIT:
return new MCEditSchematicReader(nbtStream).read();
case V2:
case SPONGE_V2:
return new SpongeSchematicReader(nbtStream).read();
default:
throw new IllegalArgumentException("Unsupported schematic format");
@@ -67,8 +67,8 @@ public class WorldEditWrapper21 implements WorldEditWrapper {
public Clipboard getClipboard(InputStream is, NodeData.SchematicFormat schemFormat) throws IOException {
return switch (schemFormat) {
case MCEDIT -> new MCEditSchematicReader(new NBTInputStream(is)).read();
case V2 -> new FastSchematicReaderV2(new NBTInputStream(is)).read();
case V3 -> new FaWeSchematicReaderV3(is).read();
case SPONGE_V2 -> new FastSchematicReaderV2(new NBTInputStream(is)).read();
case SPONGE_V3 -> new FaWeSchematicReaderV3(is).read();
};
}
@@ -75,8 +75,8 @@ public class WorldEditWrapper8 implements WorldEditWrapper {
switch (schemFormat) {
case MCEDIT:
return new SchematicReader(new NBTInputStream(is)).read(WorldEdit.getInstance().getServer().getWorlds().get(0).getWorldData());
case V2:
case V3:
case SPONGE_V2:
case SPONGE_V3:
return new SpongeSchematicReader(new NBTInputStream(is)).read(WorldEdit.getInstance().getServer().getWorlds().get(0).getWorldData());
default:
throw new IllegalArgumentException("Unsupported schematic format");
@@ -27,14 +27,11 @@ import de.steamwar.sql.NoClipboardException;
import com.sk89q.worldedit.math.transform.Transform;
import com.sk89q.worldedit.regions.Region;
import de.steamwar.sql.NodeData;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import java.io.*;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Level;
public interface WorldEditWrapper {
@@ -93,9 +90,9 @@ public interface WorldEditWrapper {
if (Core.getVersion() <= 12) {
return NodeData.SchematicFormat.MCEDIT;
} else if (Core.getVersion() <= 20) {
return NodeData.SchematicFormat.V2;
return NodeData.SchematicFormat.SPONGE_V2;
} else {
return NodeData.SchematicFormat.V3;
return NodeData.SchematicFormat.SPONGE_V3;
}
}
@@ -79,7 +79,7 @@ public class DiscordSchemUpload extends ListenerAdapter {
node = SchematicNode.createSchematic(user.getId(), name, null);
try (InputStream in = attachment.getProxy().download().get()) {
NodeData.get(node).saveFromStream(in, fileName.substring(dot).equalsIgnoreCase(".schem") ? NodeData.SchematicFormat.V2 : NodeData.SchematicFormat.MCEDIT);
NodeData.get(node).saveFromStream(in, fileName.substring(dot).equalsIgnoreCase(".schem") ? NodeData.SchematicFormat.SPONGE_V2 : NodeData.SchematicFormat.MCEDIT);
sender.system("DC_SCHEMUPLOAD_SUCCESS", name);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();