From 7e65588f0c23194d1121a7a14d8ce4c520bd2525 Mon Sep 17 00:00:00 2001 From: GaLi <3096147684@qq.com> Date: Tue, 3 Mar 2026 19:56:19 +0800 Subject: [PATCH] =?UTF-8?q?CtrlQ=E4=B8=8A=E4=BC=A0=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A0=B7=E6=9D=BF=E5=86=99=E5=85=A5=E6=90=9C=E7=B4=A2=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../java/com/extendedae_plus/ExtendedAEPlus.java | 10 +++++++--- .../client/event/CtrlQPatternKeyHandler.java | 13 +++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 302dbe9..0a5d909 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G loom.platform = forge org.gradle.parallel=true -mod_version = 1.5.2 +mod_version = 1.5.2-fix maven_group = com.extendedae_plus archives_name = extendedae_plus diff --git a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java index 5f00366..b401061 100644 --- a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java +++ b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java @@ -4,6 +4,7 @@ import appeng.api.storage.StorageCells; import appeng.menu.locator.MenuLocators; import com.extendedae_plus.api.storage.InfinityBigIntegerCellHandler; import com.extendedae_plus.client.ClientRegistrar; +import com.extendedae_plus.client.ModKeybindings; import com.extendedae_plus.config.ModConfig; import com.extendedae_plus.content.matrix.CrafterCorePlusBlockEntity; import com.extendedae_plus.content.matrix.PatternCorePlusBlockEntity; @@ -14,6 +15,7 @@ import com.extendedae_plus.util.storage.InfinityStorageManager; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.client.event.ModelEvent; +import net.minecraftforge.client.event.RegisterKeyMappingsEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.TickEvent; @@ -42,9 +44,6 @@ public class ExtendedAEPlus { // 注册mod初始化事件 modEventBus.addListener(this::commonSetup); - // 注册按键绑定(客户端) - modEventBus.addListener(com.extendedae_plus.client.ModKeybindings::register); - // 注册方块与方块实体 ModBlocks.BLOCKS.register(modEventBus); ModBlockEntities.BLOCK_ENTITY_TYPES.register(modEventBus); @@ -148,6 +147,11 @@ public class ExtendedAEPlus { ModItems.registerPartModels(); } catch (Exception ignored) {} } + + @SubscribeEvent + public static void onRegisterKeyMappings(final RegisterKeyMappingsEvent event) { + ModKeybindings.register(event); + } } diff --git a/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java b/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java index ddbce6f..ff89301 100644 --- a/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java +++ b/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java @@ -458,6 +458,19 @@ public class CtrlQPatternKeyHandler { private static void setLastProcessingNameFromRecipe(Object recipeBase) { String name = null; + + // 处理 RecipeHolder 包装(Minecraft 1.20+) + if (recipeBase != null && "net.minecraft.world.item.crafting.RecipeHolder".equals(recipeBase.getClass().getName())) { + try { + var valueMethod = recipeBase.getClass().getMethod("value"); + Object actualRecipe = valueMethod.invoke(recipeBase); + if (actualRecipe != null) { + recipeBase = actualRecipe; + } + } catch (Throwable ignored) { + } + } + if (recipeBase instanceof Recipe recipe) { name = RecipeTypeNameConfig.mapRecipeTypeToSearchKey(recipe); } else if (recipeBase != null