From 25cd14cdb6ada2dc3fe4f26483b60fd955412f9d Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sun, 5 Nov 2023 17:42:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(core-bukkit):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=90=8D=E7=A7=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/bukkit/constant/CoreMessage.java | 4 +- .../core/bukkit/util/CoreBukkitUtils.java | 42 +++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java index 45ad087..794e5b2 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java @@ -79,11 +79,11 @@ public enum CoreMessage { ConfigurationSection section = config.getConfigurationSection(value.name()); if (section == null) { plugin.getLogger().info("生成消息设置: " + value.name()); - config.set(value.name(), CoreBukkitUtils.toDisplayMessage(value.message)); + config.set(value.name(), CoreBukkitUtils.saveDisplayMessage(value.message)); continue; } try { - value.message = CoreBukkitUtils.getDisplayMessage(section); + value.message = CoreBukkitUtils.loadDisplayMessage(section); } catch (Exception e) { plugin.getLogger().warning("加载消息设置 " + value.name() + " 时遇到了一个异常: "); e.printStackTrace(); diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java index 346475c..2f9d365 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java @@ -186,8 +186,27 @@ public final class CoreBukkitUtils { } } + /** + * 从 config 中加载 DisplayMessage 实例 + * + * @param config 配置 + * @return DisplayMessage 实例 + * @deprecated 使用 {@link #loadDisplayMessage(ConfigurationSection)} + */ + @Deprecated @NotNull public static DisplayMessage getDisplayMessage(@NotNull ConfigurationSection config) { + return loadDisplayMessage(config); + } + + /** + * 从 config 中加载 DisplayMessage 实例 + * + * @param config 配置 + * @return DisplayMessage 实例 + */ + @NotNull + public static DisplayMessage loadDisplayMessage(@NotNull ConfigurationSection config) { DisplayMessage displayMessage = new DisplayMessage(); String message = config.getString("message"); if (message != null) { @@ -218,8 +237,14 @@ public final class CoreBukkitUtils { return displayMessage; } + /** + * 将 DisplayMessage 实例保存到 config 中 + * + * @param message DisplayMessage 实例 + * @return config 节点 + */ @NotNull - public static ConfigurationSection toDisplayMessage(@NotNull DisplayMessage message) { + public static ConfigurationSection saveDisplayMessage(@NotNull DisplayMessage message) { YamlConfiguration config = new YamlConfiguration(); if (message.getMessage() != null) { config.set("message", LegacyComponentSerializer.legacySection().serialize(message.getMessage())); @@ -245,8 +270,19 @@ public final class CoreBukkitUtils { return config; } - - public static Component getItemNameComponent(ItemStack stack) { + /** + * 获取物品名称的 Component + *

+ * 当物品拥有 displayName 时,返回 displayName 的普通文本 + *

+ * 否则返回翻译文本,以显示客户端的不同语言中物品的原版名称 + *

+ * 当物品为 null 时,返回 block.minecraft.air 翻译文本 + * + * @param stack 物品 + * @return 物品名称的 Component + */ + public static Component getItemNameComponent(@Nullable ItemStack stack) { if (isEmptyItemStack(stack)) { return Component.translatable("block.minecraft.air"); }