From 68c27395702bbcc08dee5a81a08b638bfcbef76c Mon Sep 17 00:00:00 2001 From: Krakenied Date: Thu, 29 Feb 2024 20:44:40 +0100 Subject: Ignore ZNPCsPlus hologram serialization errors Closes https://github.com/LMBishop/Quests/issues/618 --- .../tasktype/type/dependent/ZNPCsPlusDeliverTaskType.java | 15 +++++++++++++-- .../type/dependent/ZNPCsPlusInteractTaskType.java | 15 +++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'bukkit') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusDeliverTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusDeliverTaskType.java index 2a1e6e96..6c0ed18f 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusDeliverTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusDeliverTaskType.java @@ -33,10 +33,21 @@ public final class ZNPCsPlusDeliverTaskType extends DeliverTaskType { if (lineCount > 0) { StringBuilder nameBuilder = new StringBuilder(); for (int i = 0; i < lineCount; i++) { - String line = hologram.getLine(i); + boolean lastLine = (i == lineCount - 1); + + String line; + try { + line = hologram.getLine(i); + } catch (Throwable ignored) { + if (lastLine) { + nameBuilder.deleteCharAt(nameBuilder.length() - 1); + } + continue; + } + nameBuilder.append(line); - if (i != lineCount - 1) { + if (!lastLine) { nameBuilder.append('\n'); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusInteractTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusInteractTaskType.java index ec6816f6..7afb5d4a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusInteractTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ZNPCsPlusInteractTaskType.java @@ -33,10 +33,21 @@ public final class ZNPCsPlusInteractTaskType extends InteractTaskType { if (lineCount > 0) { StringBuilder nameBuilder = new StringBuilder(); for (int i = 0; i < lineCount; i++) { - String line = hologram.getLine(i); + boolean lastLine = (i == lineCount - 1); + + String line; + try { + line = hologram.getLine(i); + } catch (Throwable ignored) { + if (lastLine) { + nameBuilder.deleteCharAt(nameBuilder.length() - 1); + } + continue; + } + nameBuilder.append(line); - if (i != lineCount - 1) { + if (!lastLine) { nameBuilder.append('\n'); } } -- cgit v1.2.3-70-g09d2