From b4902559ac23b9c3d6c28d9bec17d53a08349aa3 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 22 May 2024 18:59:02 +0700 Subject: [PATCH] Fix crash related to starbound data structure being dumb --- .../ru/dbotthepony/kstarbound/util/Utils.kt | 6 ++++++ .../kstarbound/world/entities/ProjectileEntity.kt | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/util/Utils.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/util/Utils.kt index 6758050b..9566b875 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/util/Utils.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/util/Utils.kt @@ -19,6 +19,12 @@ fun String.sbIntern(): String { val JsonElement.asStringOrNull: String? get() = if (isJsonNull) null else asString +val JsonElement.asDoubleOrNull: Double? + get() = if (isJsonNull) null else asDouble + +val JsonElement.asBooleanOrNull: Boolean? + get() = if (isJsonNull) null else asBoolean + val JsonElement.coalesceNull: JsonElement? get() = if (isJsonNull) null else this diff --git a/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ProjectileEntity.kt b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ProjectileEntity.kt index fee1ab5e..64045023 100644 --- a/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ProjectileEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/kstarbound/world/entities/ProjectileEntity.kt @@ -29,6 +29,9 @@ import ru.dbotthepony.kstarbound.network.syncher.networkedBoolean import ru.dbotthepony.kstarbound.network.syncher.networkedEventCounter import ru.dbotthepony.kstarbound.util.AssetPathStack import ru.dbotthepony.kstarbound.util.Directives +import ru.dbotthepony.kstarbound.util.asBooleanOrNull +import ru.dbotthepony.kstarbound.util.asDoubleOrNull +import ru.dbotthepony.kstarbound.util.asStringOrNull import ru.dbotthepony.kstarbound.util.valueOf import java.io.DataInputStream import java.io.DataOutputStream @@ -80,11 +83,11 @@ class ProjectileEntity private constructor(val config: Registry.Entry