diff --git a/src/tasks/base/ITask.ts b/src/tasks/base/ITask.ts index 8bf2726..cf9e6bc 100644 --- a/src/tasks/base/ITask.ts +++ b/src/tasks/base/ITask.ts @@ -32,12 +32,12 @@ export abstract class ITask { if (!cfg.score) { return } - let claimAmount = task.data.claimAmount || 0 + let claimAmount = task.data?.claimAmount || 0 let score = cfg.score if (user.boost > 1 && Date.now() < user.boostExpire.getTime()) { score = Math.floor(score * user.boost) } - let finishAmount = cfg.repeat > 1 ? task.data.finishAmount || 0 : 1 + let finishAmount = cfg.repeat > 1 ? task.data?.finishAmount || 0 : 1 for (let i = claimAmount; i < Math.min(cfg.repeat, finishAmount); i++) { await updateRankScore({ user: user.id, @@ -52,7 +52,7 @@ export abstract class ITask { }) claimAmount += 1 } - task.data.claimAmount = claimAmount + task.data = Object.assign(task.data || {}, { claimAmount }) task.markModified('data') if ((cfg.repeat > 1 && claimAmount >= cfg.repeat) || (cfg.repeat === 1 && claimAmount >= 1)) { task.status = TaskStatusEnum.CLAIMED