From 85db623bf2a8ba4530273080b963f4c5a98dad54 Mon Sep 17 00:00:00 2001 From: Catnies Date: Thu, 26 Jun 2025 07:16:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BSNBTReader,=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81null=E5=80=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/momirealms/craftengine/core/util/SNBTReader.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java b/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java index 802751f1a..d95bce0d7 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/SNBTReader.java @@ -149,12 +149,13 @@ public final class SNBTReader extends DefaultStringReader { } } int tokenLength = getCursor() - tokenStart - lastWhitespace; // 计算值长度需要再减去尾部空格. - if (tokenLength == 0) throw new IllegalArgumentException("Empty value at position " + tokenStart); + if (tokenLength == 0) return null; // 如果值长度为0则返回null. if (contentHasWhitespace) return substring(tokenStart, tokenStart + tokenLength); // 如果值的中间有空格, 一定是字符串, 可直接返回. // 布尔值检查 if (tokenLength == 4) { if (matchesAt(tokenStart, "true")) return Boolean.TRUE; + if (matchesAt(tokenStart, "null")) return null; // 支持 {key:null}. } else if (tokenLength == 5) { if (matchesAt(tokenStart, "false")) return Boolean.FALSE; }