API 参考 / spi 包:游戏模式、谱面扩展与内容
TimeoutStrategy
自定义音符类型(NoteTypeDefinition.overridesJudgment() 返回 true 的接管类型)的超时兜底策略。接管类型由模组在 onJudgeTick 中自主产出判定,宿主不再按普通 missWindow 兜底;本枚举声明「超期不判」由谁兜底,防止模组漏判导致音符永远悬置。仅对接管类型消费,非接管类型声明不会被读取。
常量
| 常量 | 宿主行为 |
|---|---|
HOST_FALLBACK | 默认。超期后按普通期限(音符 time + missWindow)由宿主补 MISS |
MOD_HANDLED | 把宿主兜底期限延后 modHandledTimeoutCapMs();宽限期内不强制 MISS,由模组自行判定或保留音符 |
方法速览
| 方法 | 用途 |
|---|---|
values() | 按声明顺序返回全部常量 |
valueOf(String) | 按名称取常量,名称非法时抛 IllegalArgumentException |
values()
签名:
java
public static TimeoutStrategy[] values();行为:返回 {HOST_FALLBACK, MOD_HANDLED},每次调用返回新数组。
valueOf(String name)
签名:
java
public static TimeoutStrategy valueOf(String name);行为:按名称精确匹配(区分大小写);null 或未知名称抛 IllegalArgumentException。
示例
java
@Override
public boolean overridesJudgment() {
return true;
}
@Override
public TimeoutStrategy timeoutStrategy() {
return TimeoutStrategy.MOD_HANDLED; // 宿主兜底期限 = missWindow + 下方宽限
}
@Override
public long modHandledTimeoutCapMs() {
return 5000L; // ≤ 0 视为不延长
}完整签名
java
public enum TimeoutStrategy {
HOST_FALLBACK,
MOD_HANDLED
}线程:源码未声明额外线程约束;宿主在判定管线中按需读取,不缓存。
生命周期阶段:注册窗口内由音符类型声明,运行期判定管线读取。
稳定性: 新增:2.0 内只增不破。