From 0971a7a1dcbcfad4d1cadb06ae51a788d7796a6c Mon Sep 17 00:00:00 2001 From: Bixilon Date: Mon, 23 May 2022 13:05:05 +0200 Subject: [PATCH] remove gson --- pom.xml | 5 -- .../entities/data/types/NbtEntityDataType.kt | 2 +- .../bixilon/minosoft/data/registries/AABB.kt | 3 -- .../minosoft/data/registries/VoxelShape.kt | 10 ---- .../registries/registry/EnumRegistry.kt | 7 --- .../registries/registry/Registry.kt | 17 ------- .../protocol/protocol/OutByteBuffer.kt | 6 --- .../java/de/bixilon/minosoft/util/Util.java | 49 ------------------- .../util/json/ResourceLocationJsonMap.kt | 15 +----- 9 files changed, 2 insertions(+), 112 deletions(-) delete mode 100644 src/main/java/de/bixilon/minosoft/util/Util.java diff --git a/pom.xml b/pom.xml index 130c9d40f..9745fe3cb 100644 --- a/pom.xml +++ b/pom.xml @@ -286,11 +286,6 @@ slf4j-api 1.7.36 - - com.google.code.gson - gson - 2.9.0 - com.google.guava guava diff --git a/src/main/java/de/bixilon/minosoft/data/entities/data/types/NbtEntityDataType.kt b/src/main/java/de/bixilon/minosoft/data/entities/data/types/NbtEntityDataType.kt index df6918291..b7df7607e 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/data/types/NbtEntityDataType.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/data/types/NbtEntityDataType.kt @@ -13,8 +13,8 @@ package de.bixilon.minosoft.data.entities.data.types -import com.google.gson.JsonObject import de.bixilon.kutil.cast.CastUtil.nullCast +import de.bixilon.kutil.json.JsonObject import de.bixilon.minosoft.protocol.protocol.PlayInByteBuffer object NbtEntityDataType : EntityDataType { diff --git a/src/main/java/de/bixilon/minosoft/data/registries/AABB.kt b/src/main/java/de/bixilon/minosoft/data/registries/AABB.kt index 5764c9754..86ccac472 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/AABB.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/AABB.kt @@ -13,7 +13,6 @@ package de.bixilon.minosoft.data.registries -import com.google.gson.JsonObject import de.bixilon.kotlinglm.vec3.Vec3 import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3i @@ -33,8 +32,6 @@ class AABB { val min: Vec3d val max: Vec3d - constructor(jsonData: JsonObject) : this(jsonData["from"].toVec3(Vec3.EMPTY), jsonData["to"].toVec3(Vec3.ONE)) - constructor(jsonData: Map) : this(jsonData["from"]!!.toVec3(Vec3.EMPTY), jsonData["to"]!!.toVec3(Vec3.ONE)) constructor(aabb: AABB) : this(aabb.min, aabb.max) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt b/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt index 45c95f422..bc1585f39 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/VoxelShape.kt @@ -13,8 +13,6 @@ package de.bixilon.minosoft.data.registries -import com.google.gson.JsonArray -import com.google.gson.JsonPrimitive import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3t import de.bixilon.kutil.primitive.IntUtil.toInt @@ -29,14 +27,6 @@ class VoxelShape(private val aabbs: MutableList = mutableListOf()) : Itera constructor(data: Any, aabbs: List) : this() { when (data) { - is JsonArray -> { - for (index in data) { - this.aabbs.add(aabbs[index.asInt]) - } - } - is JsonPrimitive -> { - this.aabbs.add(aabbs[data.asInt]) - } is Collection<*> -> { for (index in data) { this.aabbs.add(aabbs[index?.toInt()!!]) diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/EnumRegistry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/EnumRegistry.kt index 7f3fb79d4..c11b16f95 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/EnumRegistry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/EnumRegistry.kt @@ -13,7 +13,6 @@ package de.bixilon.minosoft.data.registries.registries.registry -import com.google.gson.JsonPrimitive import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.enums.ValuesEnum import de.bixilon.kutil.primitive.IntUtil.toInt @@ -44,12 +43,6 @@ class EnumRegistry>( return when (data) { is Int -> values[data] is String -> values.NAME_MAP[data.lowercase(Locale.getDefault())] ?: error("Can not find enum: $data") - is JsonPrimitive -> { - if (data.isNumber) { - return getEnum(data.asInt) - } - return getEnum(data.asString) - } else -> throw IllegalArgumentException("Unknown enum value: $data") } } diff --git a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt index cce2c8e9c..be9cb39be 100644 --- a/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt +++ b/src/main/java/de/bixilon/minosoft/data/registries/registries/registry/Registry.kt @@ -13,8 +13,6 @@ package de.bixilon.minosoft.data.registries.registries.registry -import com.google.gson.JsonElement -import com.google.gson.JsonPrimitive import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.kutil.json.JsonObject import de.bixilon.kutil.json.JsonUtil.toJsonObject @@ -47,25 +45,10 @@ open class Registry( return value } - open operator fun get(json: JsonElement?): T? { - return when (json) { - null -> return null - is JsonPrimitive -> { - when { - json.isString -> get(json.asString.toResourceLocation()) - json.isNumber -> getOrNull(json.asInt) - else -> TODO() - } - } - else -> TODO() - } - } - override operator fun get(any: Any?): T? { return when (any) { null -> null is Number -> getOrNull(any.toInt()) - is JsonElement -> get(any) is ResourceLocation -> get(any) is String -> get(any) is ResourceLocationAble -> get(any.resourceLocation) diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.kt b/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.kt index 82d5e2e8e..49bdac428 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.kt +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.kt @@ -12,14 +12,12 @@ */ package de.bixilon.minosoft.protocol.protocol -import com.google.gson.JsonObject import com.sun.javafx.geom.Vec3f import de.bixilon.kotlinglm.vec3.Vec3 import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3i import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.text.ChatComponent -import de.bixilon.minosoft.util.Util import de.bixilon.minosoft.util.collections.bytes.HeapArrayByteList import de.bixilon.minosoft.util.nbt.tag.NBTTagTypes import de.bixilon.minosoft.util.nbt.tag.NBTUtil.nbtType @@ -66,10 +64,6 @@ open class OutByteBuffer() { writeString(chatComponent.legacyText) } - fun writeJSON(json: JsonObject) { - writeString(Util.GSON.toJson(json)) - } - fun writeString(string: String) { check(string.length <= ProtocolDefinition.STRING_MAX_LENGTH) { "String max string length exceeded ${string.length} > ${ProtocolDefinition.STRING_MAX_LENGTH}" } val bytes = string.toByteArray(StandardCharsets.UTF_8) diff --git a/src/main/java/de/bixilon/minosoft/util/Util.java b/src/main/java/de/bixilon/minosoft/util/Util.java deleted file mode 100644 index afd4f8a58..000000000 --- a/src/main/java/de/bixilon/minosoft/util/Util.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Minosoft - * Copyright (C) 2020-2022 Moritz Zwerger - * - * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with this program. If not, see . - * - * This software is not affiliated with Mojang AB, the original developer of Minecraft. - */ - -package de.bixilon.minosoft.util; - -import com.google.gson.Gson; -import com.google.gson.stream.JsonReader; - -import java.io.StringReader; -import java.lang.reflect.Field; - -@Deprecated(forRemoval = true) -public final class Util { - public static final Gson GSON = new Gson(); - private static final Field JSON_READER_POS_FIELD; - private static final Field JSON_READER_LINE_START_FIELD; - - static { - new JsonReader(new StringReader("")); - Class jsonReadClass = JsonReader.class; - try { - JSON_READER_POS_FIELD = jsonReadClass.getDeclaredField("pos"); - JSON_READER_POS_FIELD.setAccessible(true); - JSON_READER_LINE_START_FIELD = jsonReadClass.getDeclaredField("lineStart"); - JSON_READER_LINE_START_FIELD.setAccessible(true); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - throw new RuntimeException(e); - } - } - - public static int getJsonReaderPosition(JsonReader jsonReader) { - try { - return JSON_READER_POS_FIELD.getInt(jsonReader) - JSON_READER_LINE_START_FIELD.getInt(jsonReader) + 1; - } catch (IllegalAccessException e) { - throw new IllegalStateException(); - } - } -} diff --git a/src/main/java/de/bixilon/minosoft/util/json/ResourceLocationJsonMap.kt b/src/main/java/de/bixilon/minosoft/util/json/ResourceLocationJsonMap.kt index 9ee6eef52..d993e452f 100644 --- a/src/main/java/de/bixilon/minosoft/util/json/ResourceLocationJsonMap.kt +++ b/src/main/java/de/bixilon/minosoft/util/json/ResourceLocationJsonMap.kt @@ -1,6 +1,6 @@ /* * Minosoft - * Copyright (C) 2021 Moritz Zwerger + * Copyright (C) 2020-2022 Moritz Zwerger * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * @@ -13,24 +13,11 @@ package de.bixilon.minosoft.util.json -import com.google.gson.JsonObject import de.bixilon.kutil.cast.CastUtil.unsafeCast import de.bixilon.minosoft.data.registries.ResourceLocation object ResourceLocationJsonMap { - fun JsonObject.toResourceLocationMap(): Map { - val ret: MutableMap = mutableMapOf() - - for ((key, value) in entrySet()) { - check(value is JsonObject) - - ret[ResourceLocation(key)] = value - } - - return ret - } - fun Map<*, *>.toResourceLocationMap(): Map { val ret: MutableMap = mutableMapOf()