mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 11:24:56 -04:00
minify jar assets
This commit is contained in:
parent
bbe19c5fb9
commit
7982e607ee
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.assets.minecraft
|
package de.bixilon.minosoft.assets.minecraft
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode
|
||||||
import de.bixilon.minosoft.assets.InvalidAssetException
|
import de.bixilon.minosoft.assets.InvalidAssetException
|
||||||
import de.bixilon.minosoft.assets.util.FileAssetsUtil
|
import de.bixilon.minosoft.assets.util.FileAssetsUtil
|
||||||
import de.bixilon.minosoft.assets.util.FileUtil
|
import de.bixilon.minosoft.assets.util.FileUtil
|
||||||
@ -26,11 +27,13 @@ import de.bixilon.minosoft.util.CountUpAndDownLatch
|
|||||||
import de.bixilon.minosoft.util.KUtil.generalize
|
import de.bixilon.minosoft.util.KUtil.generalize
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
import de.bixilon.minosoft.util.Util
|
import de.bixilon.minosoft.util.Util
|
||||||
|
import de.bixilon.minosoft.util.json.Jackson
|
||||||
import org.kamranzafar.jtar.TarEntry
|
import org.kamranzafar.jtar.TarEntry
|
||||||
import org.kamranzafar.jtar.TarHeader
|
import org.kamranzafar.jtar.TarHeader
|
||||||
import org.kamranzafar.jtar.TarOutputStream
|
import org.kamranzafar.jtar.TarOutputStream
|
||||||
import java.io.*
|
import java.io.*
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integrated assets-manager, that provides the assets in the minecraft.jar file
|
* Integrated assets-manager, that provides the assets in the minecraft.jar file
|
||||||
* First downloads the original minecraft jar, then removes all unnecessary files
|
* First downloads the original minecraft jar, then removes all unnecessary files
|
||||||
@ -81,6 +84,13 @@ class JarAssetsManager(
|
|||||||
}
|
}
|
||||||
cutFilename = splitFilename.getOrNull(1) ?: continue
|
cutFilename = splitFilename.getOrNull(1) ?: continue
|
||||||
|
|
||||||
|
var outData = data
|
||||||
|
if (cutFilename.endsWith(".json")) {
|
||||||
|
// minify json
|
||||||
|
val jsonNode = Jackson.MAPPER.readValue(data, JsonNode::class.java)
|
||||||
|
outData = jsonNode.toString().toByteArray()
|
||||||
|
}
|
||||||
|
|
||||||
var required = false
|
var required = false
|
||||||
for (prefix in REQUIRED_FILE_PREFIXES) {
|
for (prefix in REQUIRED_FILE_PREFIXES) {
|
||||||
if (cutFilename.startsWith(prefix)) {
|
if (cutFilename.startsWith(prefix)) {
|
||||||
@ -91,9 +101,9 @@ class JarAssetsManager(
|
|||||||
if (!required) {
|
if (!required) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
buildingJarAsset[cutFilename] = data
|
buildingJarAsset[cutFilename] = outData
|
||||||
tarOutputStream.putNextEntry(TarEntry(TarHeader.createHeader(filename, data.size.toLong(), 0L, false, 777).apply { generalize() }))
|
tarOutputStream.putNextEntry(TarEntry(TarHeader.createHeader(filename, outData.size.toLong(), 0L, false, 777).apply { generalize() }))
|
||||||
tarOutputStream.write(data)
|
tarOutputStream.write(outData)
|
||||||
tarOutputStream.flush()
|
tarOutputStream.flush()
|
||||||
}
|
}
|
||||||
tarOutputStream.close()
|
tarOutputStream.close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user