forked from SteamWar/SteamWar
Fix Everything
This commit is contained in:
+16
-1
@@ -25,10 +25,13 @@ import de.steamwar.sql.NodeData;
|
||||
import de.steamwar.sql.Punishment;
|
||||
import de.steamwar.sql.SchematicNode;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import dev.dewy.nbt.Nbt;
|
||||
import dev.dewy.nbt.tags.collection.CompoundTag;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
@@ -38,6 +41,8 @@ import java.util.logging.Level;
|
||||
|
||||
public class DiscordSchemUpload extends ListenerAdapter {
|
||||
|
||||
private static final Nbt NBT = new Nbt();
|
||||
|
||||
private static final List<String> SCHEM_FILE_ENDINGS = Arrays.asList(".schem", ".schematic");
|
||||
|
||||
@Override
|
||||
@@ -79,7 +84,17 @@ 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.SPONGE_V2 : NodeData.SchematicFormat.MCEDIT);
|
||||
CompoundTag tags = NBT.fromStream(new DataInputStream(in));
|
||||
|
||||
NodeData.SchematicFormat version = NodeData.SchematicFormat.SPONGE_V2;
|
||||
|
||||
if (tags.size() == 1) {
|
||||
version = NodeData.SchematicFormat.SPONGE_V3;
|
||||
} else if (tags.contains("Materials")) {
|
||||
version = NodeData.SchematicFormat.MCEDIT;
|
||||
}
|
||||
|
||||
NodeData.get(node).saveFromStream(in, version);
|
||||
sender.system("DC_SCHEMUPLOAD_SUCCESS", name);
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
|
||||
Reference in New Issue
Block a user