From 10fc3ae291ebc632edd0543121286b1bc80fa947 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Mon, 4 Mar 2024 13:26:11 +0100 Subject: Delay Legacy Material Support initialization Do not init it at all if not required --- .../quests/bukkit/util/TaskUtils.java | 25 +++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'bukkit/src/main/java') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java index 5444b03c..d4caf566 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java @@ -302,7 +302,8 @@ public class TaskUtils { Object configData = task.getConfigValue("data"); Material blockMaterial = state.getType(); - byte blockData = state.getRawData(); + // do not set block data here as it will initialize Legacy Material Support + Byte blockData = null; Material material; int comparableData; @@ -321,11 +322,25 @@ public class TaskUtils { type.debug("Checking against block " + material + ":" + comparableData, pendingTask.quest.getId(), task.getId(), player); - if (material == blockMaterial && ((parts.length == 1 && configData == null) || blockData == comparableData)) { - type.debug("Block match", pendingTask.quest.getId(), task.getId(), player); - return true; + if (material == blockMaterial) { + if (parts.length == 1 && configData == null) { + type.debug("Block match (modern)", pendingTask.quest.getId(), task.getId(), player); + return true; + } + + // delay legacy material support initialization + if (blockData == null) { + blockData = state.getRawData(); + } + + if (blockData == comparableData) { + type.debug("Block match (legacy)", pendingTask.quest.getId(), task.getId(), player); + return true; + } + + type.debug("Block mismatch (legacy)", pendingTask.quest.getId(), task.getId(), player); } else { - type.debug("Block mismatch", pendingTask.quest.getId(), task.getId(), player); + type.debug("Block mismatch (modern)", pendingTask.quest.getId(), task.getId(), player); } } -- cgit v1.2.3-70-g09d2