From 88b7b74ca055472596f9518b2e149aeeb87c68ca Mon Sep 17 00:00:00 2001 From: Misode Date: Wed, 18 Sep 2024 17:38:31 +0200 Subject: [PATCH] Fix #599 catch invalid lore lines --- src/app/components/ItemTooltip.tsx | 2 +- src/app/services/ResolvedItem.ts | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/app/components/ItemTooltip.tsx b/src/app/components/ItemTooltip.tsx index 3fa6b666..20b9b9c4 100644 --- a/src/app/components/ItemTooltip.tsx +++ b/src/app/components/ItemTooltip.tsx @@ -115,7 +115,7 @@ export function ItemTooltip({ item, advanced, resolver }: Props) { : )} {item.getLore().map((component) => - + )} {item.showInTooltip('attribute_modifiers') && ( tag)} /> diff --git a/src/app/services/ResolvedItem.ts b/src/app/services/ResolvedItem.ts index 4363ac13..a11000d7 100644 --- a/src/app/services/ResolvedItem.ts +++ b/src/app/services/ResolvedItem.ts @@ -107,7 +107,13 @@ export class ResolvedItem extends ItemStack { public getLore() { return this.get('lore', tag => { - return tag.isList() ? tag.map(e => e.getAsString()) : [] + return tag.isList() ? tag.map(e => { + try { + return JSON.parse(e.getAsString()) + } catch (e) { + return { text: '(invalid lore line)' } + } + }) : [] }) ?? [] } @@ -160,11 +166,13 @@ export class ResolvedItem extends ItemStack { } const itemName = this.get('item_name', tag => tag.isString() ? tag.getAsString() : undefined) - try { - if (itemName) { + if (itemName) { + try { return JSON.parse(itemName) + } catch (e) { + return { text: '(invalid item name)' } } - } catch (e) {} + } const guess = this.id.path .replace(/[_\/]/g, ' ')