mirror of
https://gitlab.bixilon.de/bixilon/pixlyzer.git
synced 2025-09-24 04:21:59 -04:00
dump moshi, add jackson
This commit is contained in:
parent
f122b5883b
commit
ed23adcd17
6
pom.xml
6
pom.xml
@ -95,9 +95,9 @@
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.moshi</groupId>
|
||||
<artifactId>moshi-kotlin</artifactId>
|
||||
<version>1.12.0</version>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.13.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package de.bixilon.pixlyzer
|
||||
|
||||
import com.squareup.moshi.JsonWriter
|
||||
import de.bixilon.mbf.MBFBinaryWriter
|
||||
import de.bixilon.mbf.MBFCompressionTypes
|
||||
import de.bixilon.mbf.MBFData
|
||||
@ -12,7 +11,6 @@ import de.bixilon.pixlyzer.util.ReflectionUtil.getGetter
|
||||
import de.bixilon.pixlyzer.util.Util
|
||||
import net.minecraft.Bootstrap
|
||||
import net.minecraft.util.registry.Registry
|
||||
import okio.Buffer
|
||||
import java.io.*
|
||||
import java.util.*
|
||||
import java.util.zip.GZIPOutputStream
|
||||
@ -135,27 +133,18 @@ object PixLyzer {
|
||||
}
|
||||
|
||||
fun Any.toJsonString(): String {
|
||||
Buffer().let {
|
||||
val jsonWriter: JsonWriter = JsonWriter.of(it)
|
||||
ANY_MOSHI_ADAPTER.toJson(jsonWriter, this)
|
||||
return it.readUtf8()
|
||||
}
|
||||
return Util.MAPPER.writeValueAsString(this)
|
||||
}
|
||||
|
||||
private fun writData(path: String, data: Any) {
|
||||
Buffer().let {
|
||||
val jsonWriter: JsonWriter = JsonWriter.of(it)
|
||||
jsonWriter.indent = " "
|
||||
ANY_MOSHI_ADAPTER.toJson(jsonWriter, data)
|
||||
run {
|
||||
val fileWriter = FileWriter("$path.json")
|
||||
fileWriter.write(it.readUtf8())
|
||||
fileWriter.write(Util.MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(data))
|
||||
fileWriter.close()
|
||||
}
|
||||
Buffer().let {
|
||||
val jsonWriter: JsonWriter = JsonWriter.of(it)
|
||||
ANY_MOSHI_ADAPTER.toJson(jsonWriter, data)
|
||||
run {
|
||||
val fileWriter = FileWriter("$path.min.json")
|
||||
fileWriter.write(it.readUtf8())
|
||||
fileWriter.write(Util.MAPPER.writeValueAsString(data))
|
||||
fileWriter.close()
|
||||
}
|
||||
|
||||
@ -169,6 +158,4 @@ object PixLyzer {
|
||||
|
||||
|
||||
private val initializeGameVersionMethod = getGetter(getClass("net.minecraft.SharedConstants"), "createGameVersion", "method_36208")
|
||||
|
||||
private val ANY_MOSHI_ADAPTER = Util.MOSHI.adapter(Any::class.java)
|
||||
}
|
||||
|
29
src/main/kotlin/de/bixilon/pixlyzer/util/PrettyPrinter.kt
Normal file
29
src/main/kotlin/de/bixilon/pixlyzer/util/PrettyPrinter.kt
Normal file
@ -0,0 +1,29 @@
|
||||
package de.bixilon.pixlyzer.util
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.fasterxml.jackson.core.util.DefaultIndenter
|
||||
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter
|
||||
|
||||
|
||||
class PrettyPrinter : DefaultPrettyPrinter {
|
||||
|
||||
constructor() {
|
||||
_arrayIndenter = DefaultIndenter.SYSTEM_LINEFEED_INSTANCE
|
||||
_objectIndenter = DefaultIndenter.SYSTEM_LINEFEED_INSTANCE
|
||||
}
|
||||
|
||||
constructor(base: DefaultPrettyPrinter) : super(base)
|
||||
|
||||
|
||||
override fun writeObjectFieldValueSeparator(generator: JsonGenerator) {
|
||||
generator.writeRaw(": ")
|
||||
}
|
||||
|
||||
override fun createInstance(): PrettyPrinter {
|
||||
check(javaClass == PrettyPrinter::class.java) {
|
||||
("Failed `createInstance()`: " + javaClass.name
|
||||
+ " does not override method; it has to")
|
||||
}
|
||||
return PrettyPrinter(this)
|
||||
}
|
||||
}
|
@ -1,18 +1,21 @@
|
||||
package de.bixilon.pixlyzer.util
|
||||
|
||||
import com.squareup.moshi.JsonAdapter
|
||||
import com.squareup.moshi.Moshi
|
||||
import com.squareup.moshi.Types
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.fasterxml.jackson.databind.type.MapType
|
||||
import net.minecraft.client.MinecraftClient
|
||||
import java.io.*
|
||||
import java.security.MessageDigest
|
||||
|
||||
|
||||
object Util {
|
||||
val MOSHI = Moshi.Builder()
|
||||
.build()
|
||||
val MAPPER = ObjectMapper()
|
||||
|
||||
init {
|
||||
MAPPER.setDefaultPrettyPrinter(PrettyPrinter())
|
||||
}
|
||||
|
||||
val JSON_MAP_TYPE: MapType = MAPPER.typeFactory.constructMapType(HashMap::class.java, Any::class.java, Any::class.java)
|
||||
|
||||
val MAP_ADAPTER: JsonAdapter<MutableMap<String, Any>> = MOSHI.adapter(Types.newParameterizedType(MutableMap::class.java, String::class.java, Any::class.java))
|
||||
|
||||
fun <T> forceClassInit(clazz: Class<T>) {
|
||||
try {
|
||||
@ -23,11 +26,11 @@ object Util {
|
||||
}
|
||||
|
||||
fun readJsonResource(path: String): MutableMap<String, Any> {
|
||||
return MAP_ADAPTER.fromJson(readReader(BufferedReader(InputStreamReader(Util::class.java.getResourceAsStream("/$path")!!))))!!
|
||||
return MAPPER.readValue(readReader(BufferedReader(InputStreamReader(Util::class.java.getResourceAsStream("/$path")!!))), JSON_MAP_TYPE)!!
|
||||
}
|
||||
|
||||
fun readJsonFile(path: String): MutableMap<String, Any> {
|
||||
return MAP_ADAPTER.fromJson(readReader(BufferedReader(InputStreamReader(FileInputStream(path)))))!!
|
||||
return MAPPER.readValue(readReader(BufferedReader(InputStreamReader(FileInputStream(path)))), JSON_MAP_TYPE)!!
|
||||
}
|
||||
|
||||
fun byteArrayToHexString(byteArray: ByteArray): String {
|
||||
@ -53,7 +56,7 @@ object Util {
|
||||
|
||||
fun readJsonMinecraftResource(path: String): MutableMap<String, Any> {
|
||||
val inputStream = MinecraftClient::class.java.getResourceAsStream("/$path") ?: throw FileNotFoundException("Can not find minecraft resource: $path")
|
||||
return MAP_ADAPTER.fromJson(readReader(BufferedReader(InputStreamReader(inputStream))))!!
|
||||
return MAPPER.readValue(readReader(BufferedReader(InputStreamReader(inputStream))), JSON_MAP_TYPE)!!
|
||||
}
|
||||
|
||||
inline fun <reified T> Any.nullCast(): T? {
|
||||
|
@ -35,11 +35,12 @@ OBJENSIS_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/org/objenesis/objenesis
|
||||
KOTLIN_STD_LIB_PATH = DATA_FOLDER + "kotlin-stdlib-1.5.31.jar"
|
||||
KOTLIN_STD_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.5.31/kotlin-stdlib-1.5.31.jar"
|
||||
|
||||
MOSHI_LIB_PATH = DATA_FOLDER + "moshi-1.12.0.jar"
|
||||
MOSHI_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/squareup/moshi/moshi/1.12.0/moshi-1.12.0.jar"
|
||||
|
||||
OKIO_LIB_PATH = DATA_FOLDER + "okio-2.10.0.jar"
|
||||
OKIO_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/squareup/okio/okio/2.10.0/okio-2.10.0.jar"
|
||||
JACKSON_CORE_LIB_PATH = DATA_FOLDER + "jackson-core-1.13.0.jar"
|
||||
JACKSON_CORE_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.13.0/jackson-core-2.13.0.jar"
|
||||
JACKSON_DATABIND_LIB_PATH = DATA_FOLDER + "jackson-databind-1.13.0.jar"
|
||||
JACKSON_DATABIND_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.13.0/jackson-databind-2.13.0.jar"
|
||||
JACKSON_ANNOTATIONS_LIB_PATH = DATA_FOLDER + "jackson-annotations-1.13.0.jar"
|
||||
JACKSON_ANNOTATIONS_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.13.0/jackson-annotations-2.13.0.jar"
|
||||
|
||||
ZSTD_LIB_PATH = DATA_FOLDER + "zstd-jni-1.5.0-2.jar"
|
||||
ZSDT_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/github/luben/zstd-jni/1.5.0-2/zstd-jni-1.5.0-2.jar"
|
||||
@ -47,7 +48,7 @@ ZSDT_LIB_DOWNLOAD_PATH = "https://repo1.maven.org/maven2/com/github/luben/zstd-j
|
||||
MBF_KOTLIN_LIB_PATH = DATA_FOLDER + "mbf-kotlin-cc331b8c.jar"
|
||||
MBF_KOTLIN_LIB_DOWNLOAD_PATH = "https://jitpack.io/com/gitlab/Bixilon/mbf-kotlin/cc331b8c/mbf-kotlin-cc331b8c.jar"
|
||||
|
||||
ADDITIONAL_CLASSPATH = KOTLIN_STD_LIB_PATH + ":" + OBJENSIS_PATH + ":" + MOSHI_LIB_PATH + ":" + OKIO_LIB_PATH + ":" + ZSTD_LIB_PATH + ":" + MBF_KOTLIN_LIB_PATH
|
||||
ADDITIONAL_CLASSPATH = KOTLIN_STD_LIB_PATH + ":" + OBJENSIS_PATH + ":" + JACKSON_CORE_LIB_PATH + ":" + JACKSON_DATABIND_LIB_PATH + ":" + JACKSON_ANNOTATIONS_LIB_PATH + ":" + ZSTD_LIB_PATH + ":" + MBF_KOTLIN_LIB_PATH
|
||||
|
||||
VERSION_MANIFEST_URL = "https://launchermeta.mojang.com/mc/game/version_manifest.json"
|
||||
YARN_MANIFEST_URL = "https://maven.fabricmc.net/net/fabricmc/yarn/versions.json"
|
||||
@ -252,8 +253,9 @@ print("Checking libraries...")
|
||||
checkFile(filename=TINY_REMAPPER_PATH, url=TINY_REMAPPER_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=OBJENSIS_PATH, url=OBJENSIS_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=KOTLIN_STD_LIB_PATH, url=KOTLIN_STD_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=MOSHI_LIB_PATH, url=MOSHI_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=OKIO_LIB_PATH, url=OKIO_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=JACKSON_CORE_LIB_PATH, url=JACKSON_CORE_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=JACKSON_DATABIND_LIB_PATH, url=JACKSON_DATABIND_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=JACKSON_ANNOTATIONS_LIB_PATH, url=JACKSON_ANNOTATIONS_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=ZSTD_LIB_PATH, url=ZSDT_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
checkFile(filename=MBF_KOTLIN_LIB_PATH, url=MBF_KOTLIN_LIB_DOWNLOAD_PATH, versionId="libraries")
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user