删日志
This commit is contained in:
parent
9b2c214d82
commit
890a6c24ed
|
|
@ -155,7 +155,7 @@ dependencies {
|
|||
compileOnly "curse.maven:ae2-jei-integration-1074338:5748513"
|
||||
|
||||
// runtime test
|
||||
//runtimeOnly "curse.maven:applied-flux-965012:5614830"
|
||||
runtimeOnly "curse.maven:applied-flux-965012:5614830"
|
||||
runtimeOnly "de.mari_023:ae2wtlib:19.2.1"
|
||||
runtimeOnly "curse.maven:jade-324717:5427817"
|
||||
runtimeOnly "curse.maven:mega-cells-622112:6005043"
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@ public final class AppliedFluxCompat {
|
|||
return false;
|
||||
}
|
||||
|
||||
// 如果AppliedFlux加载了,假设它会添加升级面板
|
||||
// 如果 AppliedFlux 加载了,假设它会添加升级面板
|
||||
// 这是一个保守的假设,避免冲突
|
||||
ExtendedAELogger.LOGGER.debug("[AppliedFlux兼容] 检测到AppliedFlux已加载,假设存在升级面板");
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否应该跳过添加我们的升级面板
|
||||
* 主要用于检测 AppliedFlux 是否已经添加了升级面板
|
||||
*/
|
||||
public static boolean shouldSkipOurUpgradePanel(PatternProviderScreen<?> screen) {
|
||||
if (!UpgradeSlotCompat.shouldUseLowPriorityMode()) {
|
||||
|
|
|
|||
|
|
@ -75,10 +75,6 @@ public abstract class AEBaseScreenMixin {
|
|||
if (key == null) {
|
||||
return;
|
||||
}
|
||||
// Debug: 标记一次发送
|
||||
try {
|
||||
LogUtils.getLogger().info("EAP: Send CraftingMonitorJumpC2SPacket: {}", key);
|
||||
} catch (Throwable ignored2) {}
|
||||
PacketDistributor.sendToServer(new CraftingMonitorJumpC2SPacket(key));
|
||||
cir.setReturnValue(true);
|
||||
} catch (Throwable ignored) {
|
||||
|
|
@ -109,10 +105,6 @@ public abstract class AEBaseScreenMixin {
|
|||
if (key == null) {
|
||||
return;
|
||||
}
|
||||
// Debug: 标记一次发送(打开供应器UI)
|
||||
try {
|
||||
LogUtils.getLogger().info("EAP: Send CraftingMonitorOpenProviderC2SPacket: {}", key);
|
||||
} catch (Throwable ignored2) {}
|
||||
PacketDistributor.sendToServer(new CraftingMonitorOpenProviderC2SPacket(key));
|
||||
cir.setReturnValue(true);
|
||||
} catch (Throwable ignored) {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ public abstract class InterfaceScreenMixin<T extends AEBaseMenu> {
|
|||
if (!eap$isSupportedInterfaceScreen()) {
|
||||
return;
|
||||
}
|
||||
try { LogUtils.getLogger().info("[EAP][InterfaceMixin] init tail reached, preparing scale buttons."); } catch (Throwable ignored) {}
|
||||
if (eap$x2Button == null) {
|
||||
eap$x2Button = new ActionEPPButton((b) -> eap$sendAdjustForAllConfigs(false, 2), NewIcon.MULTIPLY2);
|
||||
eap$x2Button.setTooltip(null);
|
||||
|
|
@ -92,7 +91,6 @@ public abstract class InterfaceScreenMixin<T extends AEBaseMenu> {
|
|||
if (!accessor.eap$getChildren().contains(eap$x10Button)) accessor.eap$getChildren().add(eap$x10Button);
|
||||
|
||||
eap$relayoutButtons();
|
||||
try { LogUtils.getLogger().info("[EAP][InterfaceMixin] buttons added and laid out."); } catch (Throwable ignored) {}
|
||||
}
|
||||
|
||||
@Inject(method = "containerTick", at = @At("TAIL"))
|
||||
|
|
|
|||
|
|
@ -34,18 +34,13 @@ public abstract class PatternProviderScreenUpgradesMixin<C extends PatternProvid
|
|||
|
||||
@Inject(method = "<init>", at = @At("TAIL"), remap = false)
|
||||
private void eap$initUpgrades(PatternProviderMenu menu, Inventory playerInventory, Component title, ScreenStyle style, CallbackInfo ci) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 开始初始化升级面板");
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] shouldAddUpgradePanelToScreen: {}", UpgradeSlotCompat.shouldAddUpgradePanelToScreen());
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] shouldUseLowPriorityMode: {}", UpgradeSlotCompat.shouldUseLowPriorityMode());
|
||||
|
||||
if (!UpgradeSlotCompat.shouldAddUpgradePanelToScreen()) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 跳过添加升级面板:shouldAddUpgradePanelToScreen返回false");
|
||||
return;
|
||||
}
|
||||
|
||||
// 若已安装 AppliedFlux,则由 AE2/AppliedFlux 自己负责渲染升级面板,避免我们重复添加导致界面显示两个槽
|
||||
if (!UpgradeSlotCompat.shouldEnableUpgradeSlots()) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 跳过添加升级面板:已安装 appflux,由 AE2/AppliedFlux 负责渲染");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -54,18 +49,14 @@ public abstract class PatternProviderScreenUpgradesMixin<C extends PatternProvid
|
|||
PatternProviderScreen<PatternProviderMenu> screen = (PatternProviderScreen<PatternProviderMenu>) (Object) this;
|
||||
|
||||
boolean shouldSkip = AppliedFluxCompat.shouldSkipOurUpgradePanel(screen);
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] AppliedFlux兼容性检测结果: shouldSkip={}", shouldSkip);
|
||||
|
||||
if (shouldSkip) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 检测到AppliedFlux升级面板,跳过添加我们的面板");
|
||||
} else {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 开始添加升级面板");
|
||||
|
||||
// 检查是否已经存在upgrades widget
|
||||
try {
|
||||
// 尝试添加升级面板
|
||||
this.widgets.add("upgrades", new UpgradesPanel(menu.getSlots(SlotSemantics.UPGRADE), this::eap$getCompatibleUpgrades));
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 成功添加升级面板");
|
||||
} catch (IllegalStateException e) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.warn("[样板供应器][界面] 升级面板已存在,跳过添加: {}", e.getMessage());
|
||||
return; // 如果升级面板已存在,不继续添加其他内容
|
||||
|
|
@ -89,13 +80,11 @@ public abstract class PatternProviderScreenUpgradesMixin<C extends PatternProvid
|
|||
if (menu instanceof AEBaseMenu base && base instanceof com.extendedae_plus.bridge.IUpgradableMenu upg && upg.getToolbox() != null && upg.getToolbox().isPresent()) {
|
||||
try {
|
||||
this.widgets.add("toolbox", new ToolboxPanel(style, upg.getToolbox().getName()));
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 成功添加工具箱面板");
|
||||
} catch (IllegalStateException e) {
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.warn("[样板供应器][界面] 工具箱面板已存在,跳过添加: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
com.extendedae_plus.util.ExtendedAELogger.LOGGER.debug("[样板供应器][界面] 按照AppliedFlux方式完成升级面板和工具箱初始化");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,18 +68,14 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
at = @At("TAIL"))
|
||||
private void eap$compatInit(IManagedGridNode mainNode, PatternProviderLogicHost host, int size, CallbackInfo ci) {
|
||||
try {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 初始化兼容升级槽,shouldEnableUpgradeSlots: {}", UpgradeSlotCompat.shouldEnableUpgradeSlots());
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] this instanceof IUpgradeableObject: {}", this instanceof IUpgradeableObject);
|
||||
|
||||
if (UpgradeSlotCompat.shouldEnableUpgradeSlots()) {
|
||||
// 未安装AppliedFlux,我们需要提供升级槽
|
||||
this.eap$compatUpgrades = UpgradeInventories.forMachine(
|
||||
host.getTerminalIcon().getItem(), 1, this::eap$compatOnUpgradesChanged);
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 初始化自带升级槽 (未安装 appflux)");
|
||||
} else {
|
||||
// 安装了AppliedFlux,我们不提供升级槽,但保留空的兼容槽用于备用
|
||||
this.eap$compatUpgrades = UpgradeInventories.empty();
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 跳过初始化升级槽 (已安装 appflux)");
|
||||
|
||||
// 尝试监听AppliedFlux的升级变更
|
||||
eap$tryHookAppliedFluxUpgradeChanges();
|
||||
|
|
@ -95,7 +91,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
this.host.saveChanges();
|
||||
eap$compatLastChannel = -1;
|
||||
eap$compatHasInitialized = false;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 升级变更 -> 触发初始化");
|
||||
eap$compatInitializeChannelLink();
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器] 兼容升级变更处理失败", t);
|
||||
|
|
@ -111,13 +106,11 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
if (this instanceof IUpgradeableObject upgradeableObject) {
|
||||
IUpgradeInventory afUpgrades = upgradeableObject.getUpgrades();
|
||||
if (afUpgrades != null) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 尝试监听AppliedFlux升级变更");
|
||||
// 我们不能直接修改AppliedFlux的升级槽回调,但我们可以定期检查
|
||||
// 这里我们先记录一下,实际的检查会在tick中进行
|
||||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 监听AppliedFlux升级变更失败: {}", t.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +201,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
return;
|
||||
}
|
||||
if (mainNode == null || mainNode.getNode() == null) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 初始化跳过:mainNode 或 Node 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -224,7 +216,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
// 更安全的方式获取AppliedFlux升级槽
|
||||
upgrades = eap$getAppliedFluxUpgrades();
|
||||
if (upgrades != null) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 成功获取 appflux 升级槽,大小: {}", upgrades.size());
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.warn("[样板供应器] 无法获取 appflux 升级槽,回退到兼容槽");
|
||||
upgrades = this.eap$compatUpgrades;
|
||||
|
|
@ -236,12 +227,10 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
} else {
|
||||
// 未安装appflux:使用我们的兼容升级槽
|
||||
upgrades = this.eap$compatUpgrades;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 使用自带升级槽(未安装 appflux): {}", upgrades != null);
|
||||
}
|
||||
|
||||
// 双重保险:如果主要方式失败,尝试备用方式
|
||||
if (upgrades == null || !eap$hasChannelCard(upgrades)) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 主升级槽无频道卡,尝试备用方式");
|
||||
|
||||
if (UpgradeSlotCompat.shouldEnableUpgradeSlots()) {
|
||||
// 如果我们的槽无频道卡,尝试检查是否有AppliedFlux的槽
|
||||
|
|
@ -249,16 +238,13 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
IUpgradeInventory backupUpgrades = eap$getAppliedFluxUpgrades();
|
||||
if (backupUpgrades != null && eap$hasChannelCard(backupUpgrades)) {
|
||||
upgrades = backupUpgrades;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 使用备用 appflux 升级槽");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 备用升级槽检查失败: {}", t.getMessage());
|
||||
}
|
||||
} else {
|
||||
// 如果AppliedFlux的槽无频道卡,尝试我们的兼容槽
|
||||
if (this.eap$compatUpgrades != null && eap$hasChannelCard(this.eap$compatUpgrades)) {
|
||||
upgrades = this.eap$compatUpgrades;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 使用备用兼容升级槽");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -268,14 +254,12 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
if (!stack.isEmpty() && stack.getItem() == ModItems.CHANNEL_CARD.get()) {
|
||||
channel = ChannelCardItem.getChannel(stack);
|
||||
found = true;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 检测到频道卡,频道={} ", channel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 未发现频道卡 -> 断开无线");
|
||||
if (eap$compatLink != null) {
|
||||
eap$compatLink.setFrequency(0L);
|
||||
eap$compatLink.updateStatus();
|
||||
|
|
@ -292,7 +276,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
if (gc != null && !gc.isInWorld()) {
|
||||
var other = gc.getOtherSide(node);
|
||||
if (other != null && other.getOwner() instanceof com.extendedae_plus.wireless.IWirelessEndpoint) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 兜底销毁残留无线直连: {} -> {}", node, other);
|
||||
gc.destroy();
|
||||
try { grid.getTickManager().wakeDevice(node); } catch (Throwable ignored2) {}
|
||||
try { if (other.getGrid() != null) { other.getGrid().getTickManager().wakeDevice(other); } } catch (Throwable ignored2) {}
|
||||
|
|
@ -312,7 +295,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
eap$compatLink.setFrequency(channel);
|
||||
eap$compatLink.updateStatus();
|
||||
eap$compatLastChannel = channel; // 记录当前频道
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 设置频道={} 连接状态={}", channel, eap$compatLink.isConnected());
|
||||
try { host.saveChanges(); } catch (Throwable ignored) {}
|
||||
mainNode.ifPresent((grid, node) -> {
|
||||
try { grid.getTickManager().wakeDevice(node); } catch (Throwable ignored) {}
|
||||
|
|
@ -371,7 +353,6 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
if (!stack.isEmpty() && stack.getItem() == ModItems.CHANNEL_CARD.get()) {
|
||||
long newChannel = ChannelCardItem.getChannel(stack);
|
||||
if (newChannel != eap$compatLastChannel) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 检测到频道变化: {} -> {}", eap$compatLastChannel, newChannel);
|
||||
eap$compatLastChannel = -1; // 强制重新初始化
|
||||
eap$compatHasInitialized = false;
|
||||
eap$compatInitializeChannelLink();
|
||||
|
|
@ -381,13 +362,11 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
}
|
||||
} else if (eap$compatLastChannel != 0L) {
|
||||
// 频道卡被移除
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 频道卡被移除");
|
||||
eap$compatLastChannel = -1;
|
||||
eap$compatHasInitialized = false;
|
||||
eap$compatInitializeChannelLink();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 延迟初始化检查失败: {}", t.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -454,25 +433,17 @@ public abstract class PatternProviderLogicCompatMixin implements CompatUpgradePr
|
|||
@Unique
|
||||
private IUpgradeInventory eap$getAppliedFluxUpgrades() {
|
||||
try {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 尝试获取AppliedFlux升级槽");
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] this instanceof IUpgradeableObject: {}", this instanceof IUpgradeableObject);
|
||||
|
||||
// 检查当前对象是否实现了IUpgradeableObject接口
|
||||
if (this instanceof IUpgradeableObject upgradeableObject) {
|
||||
IUpgradeInventory upgrades = upgradeableObject.getUpgrades();
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] AppliedFlux升级槽: {}", upgrades);
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 兼容升级槽: {}", this.eap$compatUpgrades);
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 是否为同一对象: {}", upgrades == this.eap$compatUpgrades);
|
||||
|
||||
// 确保这不是我们自己的兼容升级槽
|
||||
if (upgrades != null && upgrades != this.eap$compatUpgrades) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 成功获取AppliedFlux升级槽,大小: {}", upgrades.size());
|
||||
return upgrades;
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] AppliedFlux升级槽无效或与兼容槽相同");
|
||||
}
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器] 当前对象未实现IUpgradeableObject接口");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器] 获取AppliedFlux升级槽时出错", t);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
@Inject(method = "onUpgradesChanged", at = @At("TAIL"), remap = false)
|
||||
private void eap$onUpgradesChangedTail(CallbackInfo ci) {
|
||||
// 升级变更时重置标志并尝试初始化
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface onUpgradesChanged -> 重置初始化状态");
|
||||
eap$lastChannel = -1;
|
||||
eap$hasInitialized = false;
|
||||
eap$initializeChannelLink();
|
||||
|
|
@ -60,7 +59,6 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
@Inject(method = "gridChanged", at = @At("TAIL"), remap = false)
|
||||
private void eap$afterGridChanged(CallbackInfo ci) {
|
||||
// 网格状态变化时重置标志并设置延迟初始化
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface gridChanged -> 延迟初始化计时开始");
|
||||
eap$lastChannel = -1;
|
||||
eap$hasInitialized = false;
|
||||
eap$delayedInitTicks = 10; // 适当增加延迟tick,等待网格完成引导
|
||||
|
|
@ -105,7 +103,6 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
|
||||
// 仅要求节点对象可用;不要依赖 isActive(无线连接本身会建立连接与激活节点)
|
||||
if (mainNode == null || mainNode.getNode() == null) {
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface 初始化频道链接跳过:mainNode 或其 Node 不可用");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +122,6 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
if (eap$link != null) {
|
||||
eap$link.setFrequency(0L);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface 无频道卡 -> 断开无线链接");
|
||||
}
|
||||
eap$hasInitialized = true;
|
||||
// 保存一次状态
|
||||
|
|
@ -142,12 +138,10 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
if (eap$link == null) {
|
||||
var endpoint = new InterfaceNodeEndpointImpl(host, () -> this.mainNode.getNode());
|
||||
eap$link = new WirelessSlaveLink(endpoint);
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface 创建新的无线链接实例");
|
||||
}
|
||||
|
||||
eap$link.setFrequency(channel);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface 设置频道: {} 连接状态: {}", channel, eap$link.isConnected());
|
||||
try { host.saveChanges(); } catch (Throwable ignored) {}
|
||||
// 唤醒设备,加速后续 tick 以完成连接
|
||||
try {
|
||||
|
|
@ -239,7 +233,6 @@ public abstract class InterfaceLogicChannelCardMixin implements InterfaceWireles
|
|||
}
|
||||
} else {
|
||||
// 网格已引导完成,执行初始化
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] Interface 延迟初始化触发 -> 开始初始化频道链接");
|
||||
eap$initializeChannelLink();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,17 +50,14 @@ public abstract class InterfaceLogicUpgradesMixin implements CompatUpgradeProvid
|
|||
if (hasAppliedFlux) {
|
||||
// AppliedFlux已经将升级槽从1增加到2,我们再增加1个变成3
|
||||
targetSlots = 3;
|
||||
ExtendedAELogger.LOGGER.debug("[ME接口] 检测到AppliedFlux,当前升级槽: {}, 目标升级槽: {}", currentSlots, targetSlots);
|
||||
} else {
|
||||
// 没有AppliedFlux,从原始的1增加到2
|
||||
targetSlots = 2;
|
||||
ExtendedAELogger.LOGGER.debug("[ME接口] 未检测到AppliedFlux,当前升级槽: {}, 目标升级槽: {}", currentSlots, targetSlots);
|
||||
}
|
||||
|
||||
// 只有当当前槽数小于目标槽数时才需要扩展
|
||||
if (currentSlots < targetSlots) {
|
||||
this.upgrades = UpgradeInventories.forMachine(is, targetSlots, this::eap$onUpgradesChanged);
|
||||
ExtendedAELogger.LOGGER.debug("[ME接口] 升级槽已扩展到: {}", targetSlots);
|
||||
|
||||
// 设置兼容升级槽
|
||||
if (UpgradeSlotCompat.shouldEnableUpgradeSlots()) {
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
try {
|
||||
// 检测是否安装了 AppliedFlux
|
||||
this.eap$hasAppliedFlux = ModList.get().isLoaded("appflux");
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] AppliedFlux 状态: {}", eap$hasAppliedFlux);
|
||||
|
||||
if (eap$hasAppliedFlux) {
|
||||
// AppliedFlux 已安装,尝试获取并扩展其升级槽
|
||||
|
|
@ -77,7 +76,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
f.setAccessible(true);
|
||||
existingUpgrades = (IUpgradeInventory) f.get(this);
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 读取 AF 升级槽字段失败: {}", t.getMessage());
|
||||
}
|
||||
|
||||
if (existingUpgrades != null && existingUpgrades != UpgradeInventories.empty()) {
|
||||
|
|
@ -85,8 +83,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
int currentSlots = existingUpgrades.size();
|
||||
int targetSlots = 2; // AppliedFlux 1个 + 我们 1个 = 2个
|
||||
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] AppliedFlux 升级槽数量: {}, 目标: {}",
|
||||
currentSlots, targetSlots);
|
||||
|
||||
if (currentSlots < targetSlots) {
|
||||
// 需要扩展升级槽
|
||||
|
|
@ -113,16 +109,13 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
f.setAccessible(true);
|
||||
f.set(this, this.eap$upgrades);
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 绑定 AF 升级槽字段失败: {}", t.getMessage());
|
||||
}
|
||||
|
||||
this.eap$upgradesInitialized = true;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 扩展到 {} 个升级槽", targetSlots);
|
||||
} else {
|
||||
// AppliedFlux 或其他模组已经提供了足够的槽位
|
||||
this.eap$upgrades = existingUpgrades;
|
||||
this.eap$upgradesInitialized = true;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 使用现有 {} 个升级槽", currentSlots);
|
||||
}
|
||||
} else {
|
||||
// AppliedFlux 还没初始化升级槽,或者出了问题,我们创建默认的
|
||||
|
|
@ -137,10 +130,8 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
f.setAccessible(true);
|
||||
f.set(this, this.eap$upgrades);
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 初始化时绑定 AF 升级槽字段失败: {}", t.getMessage());
|
||||
}
|
||||
this.eap$upgradesInitialized = true;
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 创建 2 个升级槽(AppliedFlux 未初始化)");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器][升级槽] 扩展 AppliedFlux 升级槽失败", t);
|
||||
|
|
@ -174,11 +165,9 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
} catch (NoSuchMethodException e) {
|
||||
// AppliedFlux 的方法不存在,这是正常的
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 调用 AppliedFlux onUpgradesChanged 失败: {}", t.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 升级槽内容已变更");
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器][升级槽] onUpgradesChanged 处理失败", t);
|
||||
}
|
||||
|
|
@ -202,7 +191,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
// 没有 AppliedFlux,使用标准键
|
||||
this.eap$upgrades.writeToNBT(tag, "upgrades", registries);
|
||||
}
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 保存升级槽到 NBT");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器][升级槽] 保存升级槽失败", t);
|
||||
|
|
@ -233,7 +221,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
if (!eap$hasAppliedFlux && this.eap$upgrades != null && this.eap$upgrades != UpgradeInventories.empty()) {
|
||||
if (tag.contains("upgrades")) {
|
||||
this.eap$upgrades.readFromNBT(tag, "upgrades", registries);
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 从 upgrades 加载升级槽");
|
||||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
|
|
@ -254,7 +241,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
drops.add(is);
|
||||
}
|
||||
}
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 添加升级槽物品到掉落列表");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器][升级槽] 添加掉落失败", t);
|
||||
|
|
@ -270,7 +256,6 @@ public abstract class PatternProviderLogicUpgradesMixin {
|
|||
}
|
||||
if (eap$upgradesInitialized && this.eap$upgrades != null) {
|
||||
this.eap$upgrades.clear();
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][升级槽] 清空升级槽");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[样板供应器][升级槽] 清空升级槽失败", t);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ public abstract class AEBaseMenuUpgradesDedupMixin {
|
|||
var self = (AEBaseMenu) (Object) this;
|
||||
var existing = self.getSlots(SlotSemantics.UPGRADE);
|
||||
if (existing != null && !existing.isEmpty()) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][菜单] 检测到升级槽已存在({}),取消重复注入", existing.size());
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,6 @@ public abstract class InterfaceMenuUpgradesMixin extends AEBaseMenu implements I
|
|||
this.eap$toolbox = new ToolboxMenu(this);
|
||||
|
||||
// InterfaceMenu已经继承自UpgradeableMenu,会自动处理升级槽
|
||||
// 这里只需要记录日志,不需要重复设置升级槽
|
||||
ExtendedAELogger.LOGGER.debug("[ME接口][菜单] 升级槽已由UpgradeableMenu自动处理,当前升级槽数量: {}",
|
||||
host.getInterfaceLogic().getUpgrades().size());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -36,10 +36,8 @@ public abstract class PatternProviderMenuUpgradesMixin extends AEBaseMenu implem
|
|||
|
||||
// 当未安装 AppliedFlux 时,我们负责注入升级槽;安装了 AF 则由 AF 的菜单 Mixin 负责,避免重复渲染
|
||||
if (UpgradeSlotCompat.shouldEnableUpgradeSlots()) {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][菜单] 注入升级槽: 使用自带 compat 槽");
|
||||
this.setupUpgrades(((CompatUpgradeProvider) this.logic).eap$getCompatUpgrades());
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.debug("[样板供应器][菜单] 跳过注入升级槽: 由 AE2/AppliedFlux 负责渲染");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,14 +88,12 @@ public abstract class IOBusPartChannelCardMixin implements InterfaceWirelessLink
|
|||
}
|
||||
eap$lastChannel = channel;
|
||||
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] IOBus 初始化频道链接: found={}, channel={}", found, channel);
|
||||
|
||||
if (!found) {
|
||||
// 无频道卡则断开
|
||||
if (eap$link != null) {
|
||||
eap$link.setFrequency(0L);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] IOBus 断开频道链接");
|
||||
// 立即通知客户端状态变化(断开连接无需延迟)
|
||||
((appeng.parts.AEBasePart)(Object)this).getHost().markForUpdate();
|
||||
}
|
||||
|
|
@ -108,12 +106,10 @@ public abstract class IOBusPartChannelCardMixin implements InterfaceWirelessLink
|
|||
() -> ((IActionHost)(Object)this).getActionableNode()
|
||||
);
|
||||
eap$link = new WirelessSlaveLink(endpoint);
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] IOBus 创建新的无线链接");
|
||||
}
|
||||
|
||||
eap$link.setFrequency(channel);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] IOBus 设置频道: {}, 连接状态: {}", channel, eap$link.isConnected());
|
||||
|
||||
// 通知客户端状态变化
|
||||
((appeng.parts.AEBasePart)(Object)this).getHost().markForUpdate();
|
||||
|
|
|
|||
|
|
@ -85,13 +85,11 @@ public abstract class StorageBusPartChannelCardMixin implements InterfaceWireles
|
|||
}
|
||||
eap$lastChannel = channel;
|
||||
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] StorageBus 初始化频道链接: found={}, channel={}", found, channel);
|
||||
|
||||
if (!found) {
|
||||
if (eap$link != null) {
|
||||
eap$link.setFrequency(0L);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] StorageBus 断开频道链接");
|
||||
// 通知客户端状态变化
|
||||
((appeng.parts.AEBasePart)(Object)this).getHost().markForUpdate();
|
||||
}
|
||||
|
|
@ -104,12 +102,10 @@ public abstract class StorageBusPartChannelCardMixin implements InterfaceWireles
|
|||
() -> ((IActionHost)(Object)this).getActionableNode()
|
||||
);
|
||||
eap$link = new WirelessSlaveLink(endpoint);
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] StorageBus 创建新的无线链接");
|
||||
}
|
||||
|
||||
eap$link.setFrequency(channel);
|
||||
eap$link.updateStatus();
|
||||
ExtendedAELogger.LOGGER.debug("[服务端] StorageBus 设置频道: {}, 连接状态: {}", channel, eap$link.isConnected());
|
||||
|
||||
// 通知客户端状态变化
|
||||
((appeng.parts.AEBasePart)(Object)this).getHost().markForUpdate();
|
||||
|
|
|
|||
|
|
@ -55,11 +55,9 @@ public class CraftingMonitorJumpC2SPacket implements CustomPacketPayload {
|
|||
public static void handle(final CraftingMonitorJumpC2SPacket msg, final IPayloadContext ctx) {
|
||||
ctx.enqueueWork(() -> {
|
||||
if (!(ctx.player() instanceof ServerPlayer player)) return;
|
||||
LogUtils.getLogger().info("EAP[S]: recv CraftingMonitorJumpC2SPacket key={} from {}", msg.what, player.getGameProfile().getName());
|
||||
|
||||
// 必须在 CraftingCPU 界面内
|
||||
if (!(player.containerMenu instanceof appeng.menu.me.crafting.CraftingCPUMenu menu)) {
|
||||
LogUtils.getLogger().info("EAP[S]: not in CraftingCPUMenu, abort");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -70,19 +68,16 @@ public class CraftingMonitorJumpC2SPacket implements CustomPacketPayload {
|
|||
grid = host.getActionableNode().getGrid();
|
||||
}
|
||||
if (grid == null) {
|
||||
LogUtils.getLogger().info("EAP[S]: grid is null, abort");
|
||||
return;
|
||||
}
|
||||
|
||||
var cs = grid.getCraftingService();
|
||||
if (!(cs instanceof CraftingService craftingService)) {
|
||||
LogUtils.getLogger().info("EAP[S]: craftingService is null/unsupported, abort");
|
||||
return;
|
||||
}
|
||||
|
||||
// 1) 根据 AEKey 找到可能的样板(pattern)
|
||||
Collection<IPatternDetails> patterns = craftingService.getCraftingFor(msg.what);
|
||||
LogUtils.getLogger().info("EAP[S]: patterns found={} for key={}", patterns.size(), msg.what);
|
||||
if (patterns.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -93,9 +88,6 @@ public class CraftingMonitorJumpC2SPacket implements CustomPacketPayload {
|
|||
int providerCount = 0;
|
||||
for (var provider : providers) {
|
||||
providerCount++;
|
||||
try {
|
||||
LogUtils.getLogger().info("EAP[S]: provider class={}", provider.getClass().getName());
|
||||
} catch (Throwable ignored) {}
|
||||
if (provider instanceof PatternProviderLogic ppl) {
|
||||
// 使用 accessor 获取 host(受保护字段通过 accessor 访问)
|
||||
PatternProviderLogicHost host = ((PatternProviderLogicAccessor) ppl).eap$host();
|
||||
|
|
@ -108,14 +100,12 @@ public class CraftingMonitorJumpC2SPacket implements CustomPacketPayload {
|
|||
BlockPos targetPos = pbe.getBlockPos().relative(dir);
|
||||
var tbe = serverLevel.getBlockEntity(targetPos);
|
||||
if (tbe instanceof MenuProvider provider1) {
|
||||
LogUtils.getLogger().info("EAP[S]: open screen via MenuProvider at {}", targetPos);
|
||||
player.openMenu(provider1, targetPos);
|
||||
return;
|
||||
}
|
||||
var tstate = serverLevel.getBlockState(targetPos);
|
||||
var provider2 = tstate.getMenuProvider(serverLevel, targetPos);
|
||||
if (provider2 != null) {
|
||||
LogUtils.getLogger().info("EAP[S]: open screen via state.getMenuProvider at {}", targetPos);
|
||||
player.openMenu(provider2, targetPos);
|
||||
return;
|
||||
}
|
||||
|
|
@ -124,9 +114,7 @@ public class CraftingMonitorJumpC2SPacket implements CustomPacketPayload {
|
|||
// 兜底:若无 MenuProvider,则跳过(不再模拟右键以确保兼容性)
|
||||
}
|
||||
}
|
||||
LogUtils.getLogger().info("EAP[S]: providers count for one pattern: {}", providerCount);
|
||||
}
|
||||
LogUtils.getLogger().info("EAP[S]: no target opened for key={}", msg.what);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,9 +80,6 @@ public class ScalePatternsC2SPacket implements CustomPacketPayload {
|
|||
factor, result.getTotalPatterns(), result.getScaledPatterns(), result.getFailedPatterns());
|
||||
player.displayClientMessage(net.minecraft.network.chat.Component.literal("[EAP] " + summary), true);
|
||||
|
||||
for (String err : result.getErrors()) {
|
||||
ExtendedAELogger.LOGGER.debug("[EAP] scale error: {}", err);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExtendedAELogger.LOGGER.error("[EAP] Handle ScalePatternsC2SPacket failed", t);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -251,7 +251,6 @@ public class PatternProviderDataUtil {
|
|||
patternDataList.add(new PatternData(patternDetails, patternStack, i));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (DEBUG) LogUtils.getLogger().debug("Pattern decode failed at slot {}: {}", i, e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -572,7 +571,6 @@ public class PatternProviderDataUtil {
|
|||
return i;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (DEBUG) LogUtils.getLogger().debug("findSlotForPattern decode failed at {}: {}", i, e.toString());
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
|
|
|
|||
|
|
@ -53,19 +53,16 @@ public class WirelessSlaveLink {
|
|||
*/
|
||||
public void updateStatus() {
|
||||
if (host.isEndpointRemoved()) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 端点已移除或无效,销毁连接");
|
||||
destroyConnection();
|
||||
return;
|
||||
}
|
||||
final ServerLevel level = host.getServerLevel();
|
||||
if (level == null || frequency == 0L) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 环境不满足:level={}, freq={}", level, frequency);
|
||||
destroyConnection();
|
||||
return;
|
||||
}
|
||||
|
||||
IWirelessEndpoint master = WirelessMasterRegistry.get(level, frequency);
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 查找主站: level={}, freq={} -> {}", level.dimension(), frequency, master);
|
||||
shutdown = false;
|
||||
distance = 0.0D;
|
||||
|
||||
|
|
@ -73,7 +70,6 @@ public class WirelessSlaveLink {
|
|||
if (master != null && !master.isEndpointRemoved() && (crossDim || master.getServerLevel() == level)) {
|
||||
if (!crossDim) {
|
||||
distance = Math.sqrt(master.getBlockPos().distSqr(host.getBlockPos()));
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 同维度距离={}, 最大距离={}", distance, ModConfigs.WIRELESS_MAX_RANGE.get());
|
||||
}
|
||||
double maxRange = ModConfigs.WIRELESS_MAX_RANGE.get();
|
||||
if (crossDim || distance <= maxRange) {
|
||||
|
|
@ -82,8 +78,6 @@ public class WirelessSlaveLink {
|
|||
var current = connection.getConnection();
|
||||
IGridNode a = host.getGridNode(); // 从端
|
||||
IGridNode b = master.getGridNode(); // 主端
|
||||
if (a == null) { ExtendedAELogger.LOGGER.debug("[无线] 从端节点为 null,无法连接"); }
|
||||
if (b == null) { ExtendedAELogger.LOGGER.debug("[无线] 主端节点为 null,无法连接"); }
|
||||
if (a == null || b == null) {
|
||||
shutdown = true;
|
||||
} else {
|
||||
|
|
@ -92,36 +86,28 @@ public class WirelessSlaveLink {
|
|||
var ca = current.a();
|
||||
var cb = current.b();
|
||||
if ((ca == a || cb == a) && (ca == b || cb == b)) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 连接已存在且目标一致,保持");
|
||||
return; // 连接已正确
|
||||
}
|
||||
// 否则先断开,再重建
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 连接目标变化,先销毁再重建");
|
||||
current.destroy();
|
||||
connection = new ConnectionWrapper(null);
|
||||
}
|
||||
// AE2 侧是否已经存在连接(例如此前创建但 wrapper 丢失)
|
||||
IGridConnection existing = findExistingConnection(a, b);
|
||||
if (existing != null) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 复用已存在的连接: {}", existing);
|
||||
connection = new ConnectionWrapper(existing);
|
||||
return;
|
||||
}
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 创建连接: a={}, b={}", a, b);
|
||||
connection = new ConnectionWrapper(GridHelper.createConnection(a, b));
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 连接创建完成: {}", connection.getConnection());
|
||||
return;
|
||||
}
|
||||
} catch (IllegalStateException ex) {
|
||||
// 连接非法(如重复连接等)——落入重建/关闭逻辑
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 连接创建异常: {}", ex.toString());
|
||||
}
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 超出范围:{} > {},关闭连接", distance, maxRange);
|
||||
shutdown = true; // 超出范围
|
||||
}
|
||||
} else {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 无可用主站或跨维度不允许,关闭连接");
|
||||
shutdown = true; // 无主或主端不可用
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +122,6 @@ public class WirelessSlaveLink {
|
|||
private void destroyConnection() {
|
||||
var current = connection.getConnection();
|
||||
if (current != null) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 销毁连接: {}", current);
|
||||
var a = current.a();
|
||||
var b = current.b();
|
||||
// 先销毁连接,再唤醒两端节点,使其尽快感知到状态变化
|
||||
|
|
@ -163,7 +148,6 @@ public class WirelessSlaveLink {
|
|||
IGridNode other = gc.getOtherSide(a);
|
||||
Object owner = other != null ? other.getOwner() : null;
|
||||
if (owner instanceof IWirelessEndpoint) {
|
||||
ExtendedAELogger.LOGGER.debug("[无线] 兜底销毁直连: {} -> {}", a, other);
|
||||
gc.destroy();
|
||||
try { if (a.getGrid() != null) { a.getGrid().getTickManager().wakeDevice(a); } } catch (Throwable ignored) {}
|
||||
try { if (other != null && other.getGrid() != null) { other.getGrid().getTickManager().wakeDevice(other); } } catch (Throwable ignored) {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user