修修修

This commit is contained in:
GaLicn 2025-08-18 00:13:57 +08:00
parent 03398381c8
commit 624d5c67cd

View File

@ -1000,14 +1000,28 @@ public class ExtendedAEPatternUploadUtil {
if (accessMenu == null) { if (accessMenu == null) {
return false; return false;
} }
PatternContainer container = getPatternContainerById(accessMenu, providerId); // 先确定目标容器名称用于同名回退
if (container == null || !container.isVisibleInTerminal()) { String targetName = getProviderDisplayName(providerId, accessMenu);
return false; // 构建尝试顺序先指定ID其次同名的其他ID
java.util.List<Long> tryIds = new java.util.ArrayList<>();
tryIds.add(providerId);
try {
java.util.List<Long> all = getAllProviderIds(accessMenu);
for (Long id : all) {
if (id == null || id == providerId) continue;
String name = getProviderDisplayName(id, accessMenu);
if (name != null && name.equals(targetName)) {
tryIds.add(id);
} }
InternalInventory inv = container.getTerminalPatternInventory();
if (inv == null || inv.size() <= 0) {
return false;
} }
} catch (Throwable ignored) {}
// 按顺序逐个尝试插入
for (Long id : tryIds) {
PatternContainer c = getPatternContainerById(accessMenu, id);
if (c == null || !c.isVisibleInTerminal()) continue;
InternalInventory inv = c.getTerminalPatternInventory();
if (inv == null || inv.size() <= 0) continue;
var filtered = new FilteredInternalInventory(inv, new ExtendedAEPatternFilter()); var filtered = new FilteredInternalInventory(inv, new ExtendedAEPatternFilter());
ItemStack toInsert = stack.copy(); ItemStack toInsert = stack.copy();
@ -1022,6 +1036,7 @@ public class ExtendedAEPatternUploadUtil {
} }
return true; return true;
} }
}
return false; return false;
} }
@ -1119,8 +1134,23 @@ public class ExtendedAEPatternUploadUtil {
return false; return false;
} }
InternalInventory inv = container.getTerminalPatternInventory(); // 以名称为键同名供应器依次尝试 index 指定的再同名的其他
if (inv == null || inv.size() <= 0) return false; String targetName = getProviderDisplayName(container);
java.util.List<PatternContainer> tryList = new java.util.ArrayList<>();
tryList.add(container);
try {
for (PatternContainer c : list) {
if (c == null || c == container) continue;
String name = getProviderDisplayName(c);
if (name != null && name.equals(targetName)) {
tryList.add(c);
}
}
} catch (Throwable ignored) {}
for (PatternContainer c : tryList) {
InternalInventory inv = c.getTerminalPatternInventory();
if (inv == null || inv.size() <= 0) continue;
var filtered = new FilteredInternalInventory(inv, new ExtendedAEPatternFilter()); var filtered = new FilteredInternalInventory(inv, new ExtendedAEPatternFilter());
ItemStack toInsert = stack.copy(); ItemStack toInsert = stack.copy();
ItemStack remain = filtered.addItems(toInsert); ItemStack remain = filtered.addItems(toInsert);
@ -1134,6 +1164,7 @@ public class ExtendedAEPatternUploadUtil {
} }
return true; return true;
} }
}
return false; return false;
} }
} }