From 31c1dc59e395932e04c9ea9b05c01d7071136e69 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Thu, 18 Dec 2025 19:26:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BF=BB=E8=AF=91=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bukkit/paper-loader/build.gradle.kts | 2 -- .../momirealms/craftengine/core/block/CustomBlock.java | 6 ++++++ .../core/entity/furniture/CustomFurniture.java | 5 +++++ .../momirealms/craftengine/core/item/CustomItem.java | 5 +++++ .../craftengine/core/pack/AbstractPackManager.java | 1 + .../core/pack/mcmeta/overlay/OverlayCombination.java | 1 - .../craftengine/core/plugin/locale/LangData.java | 10 +++++----- 7 files changed, 22 insertions(+), 8 deletions(-) diff --git a/bukkit/paper-loader/build.gradle.kts b/bukkit/paper-loader/build.gradle.kts index aea13160d..155a5e15b 100644 --- a/bukkit/paper-loader/build.gradle.kts +++ b/bukkit/paper-loader/build.gradle.kts @@ -1,7 +1,5 @@ import net.minecrell.pluginyml.paper.PaperPluginDescription import xyz.jpenilla.runpaper.task.RunServer -import xyz.jpenilla.runtask.pluginsapi.DownloadPluginsSpec -import java.net.URI plugins { id("com.gradleup.shadow") version "9.3.0" diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java b/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java index daa2ade2f..267f4a9c1 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/CustomBlock.java @@ -20,6 +20,12 @@ public interface CustomBlock { @Nullable LootTable lootTable(); + @NotNull + default String translationKey() { + Key id = id(); + return "block." + id.namespace() + "." + id.value(); + } + void execute(Context context, EventTrigger trigger); @NotNull diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/CustomFurniture.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/CustomFurniture.java index abfd362bf..3f3cf37a9 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/CustomFurniture.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/CustomFurniture.java @@ -22,6 +22,11 @@ public interface CustomFurniture { FurnitureSettings settings(); + default String translationKey() { + Key id = this.id(); + return "furniture." + id.namespace() + "." + id.value(); + } + @Nullable LootTable lootTable(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java b/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java index d367cf882..f5bbdb308 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/CustomItem.java @@ -26,6 +26,11 @@ public interface CustomItem extends BuildableItem { UniqueKey uniqueId(); + default String translationKey() { + Key id = this.id(); + return "item." + id.namespace() + "." + id.value(); + } + Key material(); Key clientBoundMaterial(); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index cc8d102dc..f7d6138dd 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -211,6 +211,7 @@ public abstract class AbstractPackManager implements PackManager { for (int i = 0; i < 256; i++) { VANILLA_TEXTURES.add(Key.of("minecraft", "font/unicode_page_" + String.format("%02x", i))); } + VANILLA_TEXTURES.add(Key.of("minecraft", "missingno")); loadInternalList("internal/textures/processed.json", VANILLA_TEXTURES::add); loadInternalList("internal/sounds/processed.json", VANILLA_SOUNDS::add); diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/mcmeta/overlay/OverlayCombination.java b/core/src/main/java/net/momirealms/craftengine/core/pack/mcmeta/overlay/OverlayCombination.java index 0c800cc74..a15bbb88a 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/mcmeta/overlay/OverlayCombination.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/mcmeta/overlay/OverlayCombination.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.pack.mcmeta.overlay; import net.momirealms.craftengine.core.pack.mcmeta.Overlay; -import net.momirealms.craftengine.core.util.MinecraftVersion; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java index fa6689ecd..5b41fa05b 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/locale/LangData.java @@ -19,18 +19,18 @@ public class LangData { if (id.contains("[") && id.contains("]")) { ImmutableBlockState parsed = BlockStateParser.deserialize(id); if (parsed == null) return List.of(id); - return List.of("block." + stateToRealBlockId(parsed)); + return List.of(translationKey(parsed)); } else { Key blockId = Key.of(id); Optional blockOptional = CraftEngine.instance().blockManager().blockById(blockId); if (blockOptional.isPresent()) { List states = blockOptional.get().variantProvider().states(); if (states.size() == 1) { - return List.of("block." + stateToRealBlockId(states.getFirst())); + return List.of(translationKey(states.getFirst())); } else { ArrayList processed = new ArrayList<>(); for (ImmutableBlockState state : states) { - processed.add("block." + stateToRealBlockId(state)); + processed.add(translationKey(state)); } return processed; } @@ -91,7 +91,7 @@ public class LangData { }); } - private static String stateToRealBlockId(ImmutableBlockState state) { + public static String translationKey(ImmutableBlockState state) { String id = state.customBlockState().literalObject().toString(); int first = -1, last = -1; for (int i = 0; i < id.length(); i++) { @@ -113,6 +113,6 @@ public class LangData { chars[i] = '.'; } } - return new String(chars); + return "block." + new String(chars); } }