diff --git a/src/main/java/com/extendedae_plus/client/InputEvents.java b/src/main/java/com/extendedae_plus/client/InputEvents.java index f99765f..86ae924 100644 --- a/src/main/java/com/extendedae_plus/client/InputEvents.java +++ b/src/main/java/com/extendedae_plus/client/InputEvents.java @@ -101,7 +101,10 @@ public final class InputEvents { return; } // 注意:不要在 try/catch 之外直接访问 JEI 运行时,避免类加载崩溃 - if (event.getKeyCode() != GLFW.GLFW_KEY_F) return; + // 检查是否按下了填充搜索框的快捷键 + if (!ModKeybindings.FILL_SEARCH_KEY.matches(event.getKeyCode(), event.getScanCode())) { + return; + } // 仅当鼠标确实悬停在 JEI 配料上时触发 try { diff --git a/src/main/java/com/extendedae_plus/client/ModKeybindings.java b/src/main/java/com/extendedae_plus/client/ModKeybindings.java index 5c4fce7..48547ab 100644 --- a/src/main/java/com/extendedae_plus/client/ModKeybindings.java +++ b/src/main/java/com/extendedae_plus/client/ModKeybindings.java @@ -24,6 +24,17 @@ public final class ModKeybindings { "key.categories.extendedae_plus" // 分类 ); + /** + * 填充JEI物品名称到搜索框快捷键 + */ + public static final KeyMapping FILL_SEARCH_KEY = new KeyMapping( + "key.extendedae_plus.fill_search", // 翻译键 + KeyConflictContext.GUI, // 仅在GUI中生效 + InputConstants.Type.KEYSYM, // 键盘按键类型 + GLFW.GLFW_KEY_F, // F 键(默认) + "key.categories.extendedae_plus" // 分类 + ); + /** * 注册所有快捷键 * @@ -31,5 +42,6 @@ public final class ModKeybindings { */ public static void register(net.minecraftforge.client.event.RegisterKeyMappingsEvent event) { event.register(CREATE_PATTERN_KEY); + event.register(FILL_SEARCH_KEY); } } diff --git a/src/main/java/com/extendedae_plus/util/TempPatternStorage.java b/src/main/java/com/extendedae_plus/util/TempPatternStorage.java new file mode 100644 index 0000000..1b2f957 --- /dev/null +++ b/src/main/java/com/extendedae_plus/util/TempPatternStorage.java @@ -0,0 +1,50 @@ +package com.extendedae_plus.util; + +import net.minecraft.world.item.ItemStack; + +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 临时样板存储 + * 用于在用户选择供应器之前临时保存创建的样板 + */ +public class TempPatternStorage { + private static final Map TEMP_PATTERNS = new ConcurrentHashMap<>(); + + /** + * 存储临时样板 + * @param playerId 玩家UUID + * @param pattern 样板物品 + */ + public static void store(UUID playerId, ItemStack pattern) { + TEMP_PATTERNS.put(playerId, pattern.copy()); + } + + /** + * 获取并移除临时样板 + * @param playerId 玩家UUID + * @return 样板物品,如果不存在返回空 + */ + public static ItemStack retrieve(UUID playerId) { + return TEMP_PATTERNS.remove(playerId); + } + + /** + * 检查是否有临时样板 + * @param playerId 玩家UUID + * @return 是否存在 + */ + public static boolean has(UUID playerId) { + return TEMP_PATTERNS.containsKey(playerId); + } + + /** + * 清除玩家的临时样板 + * @param playerId 玩家UUID + */ + public static void clear(UUID playerId) { + TEMP_PATTERNS.remove(playerId); + } +} diff --git a/src/main/resources/assets/extendedae_plus/lang/en_us.json b/src/main/resources/assets/extendedae_plus/lang/en_us.json index 54e4f2e..b630cd9 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -237,5 +237,6 @@ "message.extendedae_plus.pattern_created": "Created pattern: %s", "key.extendedae_plus.create_pattern": "Create Pattern from JEI", + "key.extendedae_plus.fill_search": "Fill Search Field from JEI", "key.categories.extendedae_plus": "ExtendedAE Plus" } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json index 1a9a7ee..059a056 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -236,5 +236,6 @@ "message.extendedae_plus.pattern_created": "已创建样板: %s", "key.extendedae_plus.create_pattern": "从JEI创建样板", + "key.extendedae_plus.fill_search": "从JEI填充搜索框", "key.categories.extendedae_plus": "ExtendedAE Plus" } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_tw.json b/src/main/resources/assets/extendedae_plus/lang/zh_tw.json index 9842b94..576537c 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_tw.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_tw.json @@ -226,5 +226,9 @@ "extendedae_plus.command.server_side_only": "此命令必須在伺服器端執行", "extendedae_plus.command.storage_manager_not_initialized": "InfinityStorageManager未初始化", "extendedae_plus.command.gave_infinity_disks": "已發放 %s 個無限磁碟", - "extendedae_plus.command.error": "錯誤: %s" + "extendedae_plus.command.error": "錯誤: %s", + + "key.extendedae_plus.create_pattern": "从JEI创建样板", + "key.extendedae_plus.fill_search": "从JEI填充搜索框", + "key.categories.extendedae_plus": "ExtendedAE Plus" }