diff --git a/src/main/java/dev/modzuozhi/core/compat/MainThreadPhaseCoordinator.java b/src/main/java/dev/modzuozhi/core/compat/MainThreadPhaseCoordinator.java index d692ceb..c78db58 100644 --- a/src/main/java/dev/modzuozhi/core/compat/MainThreadPhaseCoordinator.java +++ b/src/main/java/dev/modzuozhi/core/compat/MainThreadPhaseCoordinator.java @@ -97,6 +97,13 @@ public final class MainThreadPhaseCoordinator { throw new IllegalStateException("Scoped phase inside synchronous Sable handoff would deadlock: " + reason); List affected = loops(server).stream() .filter(l -> scopeDimensions.contains(l.getLevel().dimension())).toList(); + // 快速路径:涉及维度当前都没在 tick -> 无需挂起/等待,直接执行。 + // 多玩家时绝大多数 payload 落在「维度空闲窗口」,此路径避免每次 drain 的 + // hold/cancel/schedule 开销与 managedBlock 往返。 + if (affected.stream().noneMatch(LevelTickLoop::isTicking)) { + action.run(); + return; + } affected.forEach(loop -> loop.holdForMainThread(true)); long began = System.nanoTime(); try {