Fixes
This commit is contained in:
@ -53,5 +53,5 @@ dependencies {
|
||||
implementation(libs.yamlconfig)
|
||||
implementation(libs.kotlinxSerializationCbor)
|
||||
implementation(libs.ktorRateLimit)
|
||||
implementation(libs.knbt)
|
||||
implementation(libs.nbt)
|
||||
}
|
||||
@ -27,16 +27,16 @@ import de.steamwar.sql.NodeDownload
|
||||
import de.steamwar.sql.NodeMember
|
||||
import de.steamwar.sql.SWException
|
||||
import de.steamwar.sql.SchematicNode
|
||||
import dev.dewy.nbt.Nbt
|
||||
import dev.dewy.nbt.tags.collection.CompoundTag
|
||||
import io.ktor.http.*
|
||||
import io.ktor.server.application.*
|
||||
import io.ktor.server.auth.*
|
||||
import io.ktor.server.request.*
|
||||
import io.ktor.server.response.*
|
||||
import io.ktor.server.routing.*
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.decodeFromByteArray
|
||||
import net.benwoodworth.knbt.*
|
||||
import java.security.MessageDigest
|
||||
import java.time.Duration
|
||||
import java.time.Instant
|
||||
@ -75,10 +75,7 @@ data class SchematicCode(val id: Int, val code: String, val expires: Long)
|
||||
@Serializable
|
||||
data class UploadSchematic(val name: String, val content: String)
|
||||
|
||||
val nbt = Nbt {
|
||||
variant = NbtVariant.Java
|
||||
compression = NbtCompression.Gzip
|
||||
}
|
||||
val nbt = Nbt()
|
||||
|
||||
fun Route.configureSchematic() {
|
||||
route("/download/{code}") {
|
||||
@ -129,14 +126,14 @@ fun Route.configureSchematic() {
|
||||
try {
|
||||
val content = Base64.getDecoder().decode(file.content)
|
||||
|
||||
var schem = nbt.decodeFromByteArray<NbtCompound>(content)
|
||||
var schem = nbt.fromByteArray(content)
|
||||
|
||||
if (schem.size == 1) schem = schem[schem.keys.first()] as NbtCompound
|
||||
if (schem.size() == 1) schem = schem.first() as CompoundTag
|
||||
|
||||
val version = schem.let {
|
||||
if (it.containsKey("Materials"))
|
||||
if (it.contains("Materials"))
|
||||
return@let SchematicFormat.MCEDIT
|
||||
else if (it.containsKey("Blocks"))
|
||||
else if (it.contains("Blocks"))
|
||||
return@let SchematicFormat.SPONGE_V3
|
||||
else
|
||||
return@let SchematicFormat.SPONGE_V2
|
||||
|
||||
@ -165,7 +165,6 @@ dependencyResolutionManagement {
|
||||
library("kotlinxSerializationCbor", "org.jetbrains.kotlinx:kotlinx-serialization-cbor:1.4.1")
|
||||
library("ktorRateLimit", "io.ktor:ktor-server-rate-limit:$ktorVersion")
|
||||
|
||||
library("knbt", "net.benwoodworth.knbt:knbt:0.11.7")
|
||||
library("nbt", "dev.dewy:nbt:1.5.1")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user