chore: 将事件执行标记为 ignoreReplay

This commit is contained in:
unanmed 2026-09-13 20:52:42 +08:00
parent b623e8ac98
commit aa3c7296c7
2 changed files with 5 additions and 2 deletions

View File

@ -179,8 +179,9 @@ export function shouldReplay(message: string): ReplayDecorator {
/** /**
* 将一个类的方法标记为忽略录像安全检查,一般用于异步内容等不是立刻会触发状态修改的方法, * 将一个类的方法标记为忽略录像安全检查,一般用于异步内容等不是立刻会触发状态修改的方法,
* 不要使用此方法来规避控制台的录像错误警告,否则很可能导致录像出错。 * 不要使用此方法来规避控制台的录像错误警告,否则很可能导致录像出错。
* @param _msg 忽略录像记录的原因
*/ */
export function ignoreReplay(): ReplayDecorator { export function ignoreReplay(_msg: string): ReplayDecorator {
return function <This, Args extends unknown[], Return>( return function <This, Args extends unknown[], Return>(
this: This, this: This,
method: ReplayMethod<This, Args, Return> method: ReplayMethod<This, Args, Return>

View File

@ -1,5 +1,5 @@
import { logger } from '@motajs/common'; import { logger } from '@motajs/common';
import { IGameEventStore } from '@user/data-common'; import { IGameEventStore, ignoreReplay } from '@user/data-common';
import { AnonTokyoInterpreter } from '@motajs/anon-tokyo'; import { AnonTokyoInterpreter } from '@motajs/anon-tokyo';
import { import {
EventExecuteMode, EventExecuteMode,
@ -52,6 +52,8 @@ export class EventExecutor implements IGameEventExecutor {
} }
} }
// @ts-expect-error 泛型无法推导
@ignoreReplay('事件一般由其他动作被动触发,不应计入录像')
async execute<R = void>( async execute<R = void>(
events: IGameEventInvocation[], events: IGameEventInvocation[],
param: IBlockEventParam param: IBlockEventParam