XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

chore: dont send messages with `completeQuest` (#2914)

Re #2754 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2914 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>

a0ce110e
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

2 个文件 +20 -9
Modified src/controllers/custom/manageQuestsController.ts +1 -1
@@ -136,7 +136,7 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
136 136
137 137 if (currentStage + 1 == questManifest.chainStages?.length) {
138 138 logger.debug(`Trying to complete last stage with nextStage, calling completeQuest instead`);
139 await completeQuest(inventory, questKey.ItemType);
139 await completeQuest(inventory, questKey.ItemType, true);
140 140 } else {
141 141 if (run > 0) {
142 142 questKey.Progress[currentStage + 1].c = run;
Modified src/services/questService.ts +19 -8
@@ -116,7 +116,11 @@ export const addQuestKey = (
116 116 return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
117 117 };
118 118
119 export const completeQuest = async (inventory: TInventoryDatabaseDocument, questKey: string): Promise<void> => {
119 export const completeQuest = async (
120 inventory: TInventoryDatabaseDocument,
121 questKey: string,
122 sendMessages: boolean = false
123 ): Promise<void> => {
120 124 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
121 125 const chainStages = ExportKeys[questKey]?.chainStages;
122 126
@@ -134,8 +138,8 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
134 138 unlock: true,
135 139 Progress: Array.from({ length: chainStageTotal }, () => ({
136 140 c: 0,
137 i: false,
138 m: false,
141 i: true,
142 m: true,
139 143 b: []
140 144 }))
141 145 };
@@ -162,7 +166,7 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
162 166 const stage = existingQuestKey.Progress[i];
163 167 if (stage.c <= run) {
164 168 stage.c = run;
165 await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i });
169 await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i }, sendMessages);
166 170 await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
167 171 }
168 172 }
@@ -328,7 +332,8 @@ export const giveKeyChainItem = async (
328 332 export const giveKeyChainMessage = async (
329 333 inventory: TInventoryDatabaseDocument,
330 334 keyChainInfo: IKeyChainRequest,
331 questKey: IQuestKeyDatabase
335 questKey: IQuestKeyDatabase,
336 sendMessage: boolean = true
332 337 ): Promise<void> => {
333 338 const keyChainMessage = getKeyChainMessage(keyChainInfo);
334 339
@@ -337,7 +342,12 @@ export const giveKeyChainMessage = async (
337 342 keyChainMessage.countedAtt = [];
338 343 }
339 344
340 await createMessage(inventory.accountOwnerId, [keyChainMessage]);
345 if (sendMessage) {
346 await createMessage(inventory.accountOwnerId, [keyChainMessage]);
347 } else {
348 if (keyChainMessage.countedAtt?.length) await addItems(inventory, keyChainMessage.countedAtt);
349 if (keyChainMessage.att?.length) await addItems(inventory, keyChainMessage.att);
350 }
341 351
342 352 updateQuestStage(inventory, keyChainInfo, { m: true });
343 353 };
@@ -385,7 +395,8 @@ export const giveKeyChainMissionReward = async (
385 395
386 396 export const giveKeyChainStageTriggered = async (
387 397 inventory: TInventoryDatabaseDocument,
388 keyChainInfo: IKeyChainRequest
398 keyChainInfo: IKeyChainRequest,
399 sendMessage: boolean = true
389 400 ): Promise<void> => {
390 401 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
391 402 const chainStages = ExportKeys[keyChainInfo.KeyChain]?.chainStages;
@@ -397,7 +408,7 @@ export const giveKeyChainStageTriggered = async (
397 408 }
398 409
399 410 if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) {
400 await giveKeyChainMessage(inventory, keyChainInfo, questKey);
411 await giveKeyChainMessage(inventory, keyChainInfo, questKey, sendMessage);
401 412 }
402 413 }
403 414 };