From 22d882e5ba4e2bb2b26660d19fd0c660959a712f Mon Sep 17 00:00:00 2001 From: Krakenied Date: Wed, 12 Jun 2024 00:00:49 +0200 Subject: Do not send track advancement for inventory task if progress didn't change --- .../quests/bukkit/tasktype/type/InventoryTaskType.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'bukkit/src/main/java/com') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java index 969c8c29..81ebf24e 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java @@ -151,6 +151,15 @@ public final class InventoryTaskType extends BukkitTaskType { } } else { int progress = Math.min(amountPerSlot[36], amount); + int oldProgress = TaskUtils.getIntegerTaskProgress(taskProgress); + + if (progress == oldProgress) { + // no need to update, also no need to check for progress >= amount + // as quest completer will handle that properly after some time + // we don't want to send track advancement for each inventory op too + continue; + } + taskProgress.setProgress(progress); super.debug("Updating task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId()); -- cgit v1.2.3-70-g09d2