fix: look ahead for key chain messages (#1603)
Some checks failed
Build Docker image / docker (push) Has been cancelled
Build / build (push) Has been cancelled

This is required for the railjack quest:
- request has ChainStage 1 when it wants message from index 3
- request has ChainStage 4 when it wants message from index 6
- ...

Reviewed-on: #1603
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-04-13 05:51:27 -07:00 committed by OrdisPrime
parent a75e0c59af
commit 729ea0abff

View File

@ -185,14 +185,15 @@ export const getKeyChainMessage = ({ KeyChain, ChainStage }: IKeyChainRequest):
throw new Error(`KeyChain ${KeyChain} does not contain chain stages`); throw new Error(`KeyChain ${KeyChain} does not contain chain stages`);
} }
const keyChainStage = chainStages[ChainStage]; let i = ChainStage;
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition let chainStageMessage = chainStages[i].messageToSendWhenTriggered;
if (!keyChainStage) { while (!chainStageMessage) {
throw new Error(`KeyChainStage ${ChainStage} not found`); if (++i >= chainStages.length) {
break;
}
chainStageMessage = chainStages[i].messageToSendWhenTriggered;
} }
const chainStageMessage = keyChainStage.messageToSendWhenTriggered;
if (!chainStageMessage) { if (!chainStageMessage) {
throw new Error( throw new Error(
`client requested key chain message in keychain ${KeyChain} at stage ${ChainStage} but they did not exist` `client requested key chain message in keychain ${KeyChain} at stage ${ChainStage} but they did not exist`