From f7bb60f0b4bc30f76c51b100cefdbfbbc5bdeb3a Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 21 Feb 2024 16:42:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20getItemName=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/bukkit/util/CoreBukkitUtils.java | 84 ++++++++++++------- 1 file changed, 54 insertions(+), 30 deletions(-) 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 bebed26..d3db5dc 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 @@ -187,6 +187,60 @@ public final class CoreBukkitUtils { } } + /** + * 获取物品名称 + *
+ * 当物品拥有 displayName 时,返回 displayName 的普通文本 + *
+ * 否则返回物品的材质名称 + * + * @param stack 物品 + * @return 物品名称 + */ + public static String getItemName(@Nullable ItemStack stack) { + if (isEmptyItemStack(stack)) { + return "AIR"; + } + ItemMeta meta = stack.getItemMeta(); + if (meta != null) { + if (meta.hasDisplayName()) { + return meta.getDisplayName(); + } + } + return stack.getType().name(); + } + + /** + * 获取物品名称的 Component + *
+ * 当物品拥有 displayName 时,返回 displayName 的普通文本 + *
+ * 否则返回翻译文本,以显示客户端的不同语言中物品的原版名称 + *
+ * 当物品为 null 时,返回 block.minecraft.air 翻译文本 + * + * @param stack 物品 + * @return 物品名称的 Component + */ + @NotNull + public static Component getItemNameComponent(@Nullable ItemStack stack) { + if (isEmptyItemStack(stack)) { + return Component.translatable("block.minecraft.air"); + } + ItemMeta meta = stack.getItemMeta(); + if (meta != null) { + if (meta.hasDisplayName()) { + return Component.text(meta.getDisplayName()); + } + } + Material type = stack.getType(); + if (type.isBlock()) { + return Component.translatable("block.minecraft." + type.name().toLowerCase()); + } else { + return Component.translatable("item.minecraft." + type.name().toLowerCase()); + } + } + /** * 从 config 中加载 DisplayMessage 实例 * @@ -270,36 +324,6 @@ public final class CoreBukkitUtils { return config; } - /** - * 获取物品名称的 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"); - } - ItemMeta meta = stack.getItemMeta(); - if (meta != null) { - if (meta.hasDisplayName()) { - return Component.text(meta.getDisplayName()); - } - } - Material type = stack.getType(); - if (type.isBlock()) { - return Component.translatable("block.minecraft." + type.name().toLowerCase()); - } else { - return Component.translatable("item.minecraft." + type.name().toLowerCase()); - } - } - @NotNull public static YamlConfiguration getPluginConfig(@NotNull Plugin plugin, @NotNull String filename) { File file = new File(plugin.getDataFolder(), filename);