From 737766c01c5ba652550e42e1b5c8b2a029fa7bfa Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Wed, 25 Jun 2025 02:26:36 +0800 Subject: [PATCH] Update SNBTReader.java --- .../momirealms/craftengine/core/util/SNBTReader.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 e90ff7d67..10963176f 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 @@ -194,15 +194,15 @@ public final class SNBTReader extends DefaultStringReader { if ("1B".equals(fullContent) || (tokenLength == 4 && matchesAt(tokenStart, "true"))) return Boolean.TRUE; if ("0B".equals(fullContent) || (tokenLength == 5 && matchesAt(tokenStart, "false"))) return Boolean.FALSE; - // 无后缀数字处理 - if (isNumber(tokenStart, tokenStart + tokenLength) == 1) return Integer.parseInt(fullContent); - if (isNumber(tokenStart, tokenStart + tokenLength) == 2) return Double.parseDouble(fullContent); + int numberType = isNumber(tokenStart, tokenStart + tokenLength); // 返回0代表不是合法数字, 1代表整数, 2代表小数. + if (numberType == 1) return Integer.parseInt(fullContent); + if (numberType == 2) return Double.parseDouble(fullContent); // 带后缀的值处理 char lastChar = string.charAt(tokenStart + tokenLength - 1); if (tokenLength > 1 && // 要求: 长度>1 - isTypeSuffix(lastChar) && // 要求: 有效后缀 - isNumber(tokenStart, tokenStart + tokenLength - 1) > 0 // 要求: 除后缀外是合法数字 + isTypeSuffix(lastChar) && // 要求: 有效后缀 + numberType > 0 // 要求: 除后缀外是合法数字 ) { final String content = string.substring(tokenStart, tokenStart + tokenLength - 1); try {