From 411a8b9c1fc49ec9a53f77e90d26cf06d85b0524 Mon Sep 17 00:00:00 2001 From: GaLicn <3096147684@qq.com> Date: Sat, 16 Aug 2025 10:01:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E6=98=A0=E5=B0=84=E8=A1=A8=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=B7=BB=E5=8A=A0=E7=83=AD=E9=87=8D=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/ui/ProviderSelectScreen.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/main/java/com/extendedae_plus/client/ui/ProviderSelectScreen.java b/src/main/java/com/extendedae_plus/client/ui/ProviderSelectScreen.java index 3ab550a..f14cd57 100644 --- a/src/main/java/com/extendedae_plus/client/ui/ProviderSelectScreen.java +++ b/src/main/java/com/extendedae_plus/client/ui/ProviderSelectScreen.java @@ -125,6 +125,12 @@ public class ProviderSelectScreen extends Screen { this.addRenderableWidget(prev); this.addRenderableWidget(next); + // 重载映射按钮(热重载 recipe_type_names.json)——移至下一行,与关闭按钮并排 + Button reload = Button.builder(Component.translatable("extendedae_plus.screen.reload_mapping"), b -> reloadMapping()) + .bounds(centerX - 130, navY + 30, 80, 20) + .build(); + this.addRenderableWidget(reload); + // 关闭按钮 Button close = Button.builder(Component.translatable("gui.cancel"), b -> onClose()) .bounds(centerX - 40, navY + 30, 80, 20) @@ -141,6 +147,22 @@ public class ProviderSelectScreen extends Screen { needsRefresh = true; } + private void reloadMapping() { + try { + com.extendedae_plus.util.ExtendedAEPatternUploadUtil.loadRecipeTypeNames(); + var player = Minecraft.getInstance().player; + if (player != null) { + player.sendSystemMessage(Component.literal("ExtendedAE Plus: 已重载映射表")); + } + // 重载后不强制刷新筛选,但如需立即应用到名称匹配,可手动编辑搜索框或翻页 + } catch (Throwable t) { + var player = Minecraft.getInstance().player; + if (player != null) { + player.sendSystemMessage(Component.literal("ExtendedAE Plus: 重载映射表失败: " + t.getClass().getSimpleName())); + } + } + } + private String buildLabel(int idx) { String name = fNames.get(idx); int totalSlots = fTotalSlots.get(idx);