From 228fc7d54aaf1512489b4ade9f41c6b63f4697e2 Mon Sep 17 00:00:00 2001 From: Sakura Knoll Date: Sat, 22 Jan 2022 21:55:31 +0900 Subject: [PATCH] Improve battlesuit translated data load error handling --- src/server/data/honkai3rd/battlesuits.ts | 42 +++++++++++++++++------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/server/data/honkai3rd/battlesuits.ts b/src/server/data/honkai3rd/battlesuits.ts index b7cf7ef3..21e64759 100644 --- a/src/server/data/honkai3rd/battlesuits.ts +++ b/src/server/data/honkai3rd/battlesuits.ts @@ -26,8 +26,8 @@ const battlesuitDataList = battlesuitsFileNameList assignKrDataToSkill(data.sp, krData.sp) } } catch (error) { - // console.warn('Failed to read', krDataFilePath) - // console.warn(error) + console.warn('Failed to read', krDataFilePath) + console.warn(error) } return data }) @@ -108,15 +108,35 @@ function assignKrDataToSkill( skillGroup: BattlesuitSkillGroup, krDataSkillGroup: BattlesuitSkillGroup ) { - skillGroup.core.krName = krDataSkillGroup.core.name - skillGroup.core.krDescription = krDataSkillGroup.core.description.replace( - /\\\*/g, - '*' - ) + if (krDataSkillGroup == null || krDataSkillGroup.core == null) { + throw new Error(`No translation for ${skillGroup.core.name}`) + } + try { + skillGroup.core.krName = krDataSkillGroup.core.name + skillGroup.core.krDescription = krDataSkillGroup.core.description.replace( + /\\\*/g, + '*' + ) + } catch (error) { + throw new Error( + `Failed to assign ${skillGroup.core.name}(${(error as Error).message})` + ) + } skillGroup.subskills.forEach((subskill, index) => { - subskill.krName = krDataSkillGroup.subskills[index].name - subskill.krDescription = krDataSkillGroup.subskills[ - index - ].description.replace(/\\\*/g, '*') + try { + subskill.krName = krDataSkillGroup.subskills[index].name + subskill.krDescription = krDataSkillGroup.subskills[ + index + ].description.replace(/\\\*/g, '*') + } catch (error) { + if (krDataSkillGroup.subskills[index] == null) { + throw new Error( + `No translation for ${skillGroup.core.name} / ${subskill.name}` + ) + } + throw new Error( + `Failed to assign ${skillGroup.core.name}(${(error as Error).message})` + ) + } }) }