From ea183139a71c55434c5862ab1ca470264ffc88d9 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Thu, 28 Sep 2023 13:43:21 +0200 Subject: [PATCH] block models: allow loading of models with broken block properties --- .../models/block/state/variant/VariantBlockModel.kt | 11 +++++++++-- .../bixilon/minosoft/data/text/ChatComponentTest.kt | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/variant/VariantBlockModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/variant/VariantBlockModel.kt index 44fb0fd43..9a66819c7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/variant/VariantBlockModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/models/block/state/variant/VariantBlockModel.kt @@ -18,6 +18,9 @@ import de.bixilon.minosoft.data.registries.blocks.properties.BlockProperties import de.bixilon.minosoft.gui.rendering.models.block.state.DirectBlockModel import de.bixilon.minosoft.gui.rendering.models.block.state.apply.BlockStateApply import de.bixilon.minosoft.gui.rendering.models.loader.BlockLoader +import de.bixilon.minosoft.util.logging.Log +import de.bixilon.minosoft.util.logging.LogLevels +import de.bixilon.minosoft.util.logging.LogMessageType interface VariantBlockModel : DirectBlockModel { @@ -28,8 +31,12 @@ interface VariantBlockModel : DirectBlockModel { for (pair in variant.split(',')) { val (key, rawValue) = pair.split('=', limit = 2) - val (property, value) = BlockProperties.parseProperty(key, rawValue) - properties[property] = value + try { + val (property, value) = BlockProperties.parseProperty(key, rawValue) + properties[property] = value + } catch (error: Throwable) { + Log.log(LogMessageType.LOADING, LogLevels.WARN) { error } + } } return properties diff --git a/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt b/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt index 422e952f0..ab6b49fb2 100644 --- a/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt +++ b/src/test/java/de/bixilon/minosoft/data/text/ChatComponentTest.kt @@ -201,7 +201,7 @@ internal class ChatComponentTest { } @Test - fun hypixelMotd() { + fun hypixelMotd() { // ↓ Note that extra paragraph val string = " §aHypixel Network §c[1.8-1.19]\n §c§lLUNAR MAPS §7§l§ §6§lCOSMETICS §7| §d§lSKYBLOCK 0.17.3" val component = ChatComponent.of(string)