forked from OpenWF/SpaceNinjaServer
chore: dont send messages with completeQuest (#2914)
Re #2754 Reviewed-on: OpenWF/SpaceNinjaServer#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>
This commit is contained in:
parent
7fe00da2a4
commit
a0ce110e7e
@ -136,7 +136,7 @@ export const manageQuestsController: RequestHandler = async (req, res) => {
|
||||
|
||||
if (currentStage + 1 == questManifest.chainStages?.length) {
|
||||
logger.debug(`Trying to complete last stage with nextStage, calling completeQuest instead`);
|
||||
await completeQuest(inventory, questKey.ItemType);
|
||||
await completeQuest(inventory, questKey.ItemType, true);
|
||||
} else {
|
||||
if (run > 0) {
|
||||
questKey.Progress[currentStage + 1].c = run;
|
||||
|
||||
@ -116,7 +116,11 @@ export const addQuestKey = (
|
||||
return inventory.QuestKeys[index - 1].toJSON<IQuestKeyClient>();
|
||||
};
|
||||
|
||||
export const completeQuest = async (inventory: TInventoryDatabaseDocument, questKey: string): Promise<void> => {
|
||||
export const completeQuest = async (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
questKey: string,
|
||||
sendMessages: boolean = false
|
||||
): Promise<void> => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
const chainStages = ExportKeys[questKey]?.chainStages;
|
||||
|
||||
@ -134,8 +138,8 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
|
||||
unlock: true,
|
||||
Progress: Array.from({ length: chainStageTotal }, () => ({
|
||||
c: 0,
|
||||
i: false,
|
||||
m: false,
|
||||
i: true,
|
||||
m: true,
|
||||
b: []
|
||||
}))
|
||||
};
|
||||
@ -162,7 +166,7 @@ export const completeQuest = async (inventory: TInventoryDatabaseDocument, quest
|
||||
const stage = existingQuestKey.Progress[i];
|
||||
if (stage.c <= run) {
|
||||
stage.c = run;
|
||||
await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i });
|
||||
await giveKeyChainStageTriggered(inventory, { KeyChain: questKey, ChainStage: i }, sendMessages);
|
||||
await giveKeyChainMissionReward(inventory, { KeyChain: questKey, ChainStage: i });
|
||||
}
|
||||
}
|
||||
@ -328,7 +332,8 @@ export const giveKeyChainItem = async (
|
||||
export const giveKeyChainMessage = async (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
keyChainInfo: IKeyChainRequest,
|
||||
questKey: IQuestKeyDatabase
|
||||
questKey: IQuestKeyDatabase,
|
||||
sendMessage: boolean = true
|
||||
): Promise<void> => {
|
||||
const keyChainMessage = getKeyChainMessage(keyChainInfo);
|
||||
|
||||
@ -337,7 +342,12 @@ export const giveKeyChainMessage = async (
|
||||
keyChainMessage.countedAtt = [];
|
||||
}
|
||||
|
||||
await createMessage(inventory.accountOwnerId, [keyChainMessage]);
|
||||
if (sendMessage) {
|
||||
await createMessage(inventory.accountOwnerId, [keyChainMessage]);
|
||||
} else {
|
||||
if (keyChainMessage.countedAtt?.length) await addItems(inventory, keyChainMessage.countedAtt);
|
||||
if (keyChainMessage.att?.length) await addItems(inventory, keyChainMessage.att);
|
||||
}
|
||||
|
||||
updateQuestStage(inventory, keyChainInfo, { m: true });
|
||||
};
|
||||
@ -385,7 +395,8 @@ export const giveKeyChainMissionReward = async (
|
||||
|
||||
export const giveKeyChainStageTriggered = async (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
keyChainInfo: IKeyChainRequest
|
||||
keyChainInfo: IKeyChainRequest,
|
||||
sendMessage: boolean = true
|
||||
): Promise<void> => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
const chainStages = ExportKeys[keyChainInfo.KeyChain]?.chainStages;
|
||||
@ -397,7 +408,7 @@ export const giveKeyChainStageTriggered = async (
|
||||
}
|
||||
|
||||
if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) {
|
||||
await giveKeyChainMessage(inventory, keyChainInfo, questKey);
|
||||
await giveKeyChainMessage(inventory, keyChainInfo, questKey, sendMessage);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user