From ac6d39b371d368118df2ffe775382fde68658681 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Fri, 25 Apr 2025 23:55:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E4=BF=AE=E5=A4=8D=E5=AD=97?= =?UTF-8?q?=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/font/AbstractFontManager.java | 4 ++++ .../core/util/FriendlyByteBuf.java | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/core/src/main/java/net/momirealms/craftengine/core/font/AbstractFontManager.java b/core/src/main/java/net/momirealms/craftengine/core/font/AbstractFontManager.java index 072010f25..35678b59d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/font/AbstractFontManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/font/AbstractFontManager.java @@ -492,6 +492,10 @@ public abstract class AbstractFontManager implements FontManager { return; } } + if (codepoints.length == 0) { + TranslationManager.instance().log("warning.config.image.lack_char", path.toString(), id.toString()); + return; + } codepointGrid[i] = codepoints; if (size == -1) size = codepoints.length; if (size != codepoints.length) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/util/FriendlyByteBuf.java b/core/src/main/java/net/momirealms/craftengine/core/util/FriendlyByteBuf.java index 81ceb9719..5219bb4b4 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/util/FriendlyByteBuf.java +++ b/core/src/main/java/net/momirealms/craftengine/core/util/FriendlyByteBuf.java @@ -101,6 +101,29 @@ public class FriendlyByteBuf extends ByteBuf { idList.forEach(this::writeVarInt); } + public List readByteArrayList() { + int listSize = this.readVarInt(); + List bytes = new ArrayList<>(); + for (int i = 0; i < listSize; ++i) { + bytes.add(this.readByteArray()); + } + return bytes; + } + + public List readByteArrayList(int maxSize) { + int listSize = this.readVarInt(); + List bytes = new ArrayList<>(); + for (int i = 0; i < listSize; ++i) { + bytes.add(this.readByteArray(maxSize)); + } + return bytes; + } + + public void writeByteArrayList(List bytes) { + this.writeVarInt(bytes.size()); + bytes.forEach(this::writeByteArray); + } + public > M readMap(IntFunction mapFactory, FriendlyByteBuf.Reader keyReader, FriendlyByteBuf.Reader valueReader) { int mapSize = this.readVarInt(); M map = mapFactory.apply(mapSize);