Fix Schem Upload

This commit is contained in:
2025-01-08 12:56:51 +01:00
parent 1350be9b80
commit a39f172a34
@@ -31,13 +31,12 @@ import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import java.io.DataInputStream; import java.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.zip.GZIPInputStream;
public class DiscordSchemUpload extends ListenerAdapter { public class DiscordSchemUpload extends ListenerAdapter {
@@ -84,7 +83,8 @@ public class DiscordSchemUpload extends ListenerAdapter {
node = SchematicNode.createSchematic(user.getId(), name, null); node = SchematicNode.createSchematic(user.getId(), name, null);
try (InputStream in = attachment.getProxy().download().get()) { try (InputStream in = attachment.getProxy().download().get()) {
CompoundTag tags = NBT.fromStream(new DataInputStream(in)); byte[] bytes = in.readAllBytes();
CompoundTag tags = NBT.fromStream(new DataInputStream(new GZIPInputStream(new ByteArrayInputStream(bytes))));
NodeData.SchematicFormat version = NodeData.SchematicFormat.SPONGE_V2; NodeData.SchematicFormat version = NodeData.SchematicFormat.SPONGE_V2;
@@ -94,7 +94,7 @@ public class DiscordSchemUpload extends ListenerAdapter {
version = NodeData.SchematicFormat.MCEDIT; version = NodeData.SchematicFormat.MCEDIT;
} }
NodeData.get(node).saveFromStream(in, version); NodeData.get(node).saveFromStream(new ByteArrayInputStream(bytes), version);
sender.system("DC_SCHEMUPLOAD_SUCCESS", name); sender.system("DC_SCHEMUPLOAD_SUCCESS", name);
} catch (InterruptedException e) { } catch (InterruptedException e) {
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();