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);