From dcb0d8f24e64f97ed96b2bbeb61ae133eaba1ddd Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Sun, 17 Jan 2021 23:52:47 -0500 Subject: [PATCH] Iterate quests of fellow questers for edge case, per #1570 --- .../src/main/java/me/blackvein/quests/Quester.java | 11 ++++++----- .../blackvein/quests/listeners/BlockListener.java | 14 +++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/main/src/main/java/me/blackvein/quests/Quester.java b/main/src/main/java/me/blackvein/quests/Quester.java index 5bc306e04..dbcebe31b 100644 --- a/main/src/main/java/me/blackvein/quests/Quester.java +++ b/main/src/main/java/me/blackvein/quests/Quester.java @@ -4042,14 +4042,15 @@ public class Quester implements Comparable { fun.apply(q, quest); appliedQuestIDs.add(quest.getId()); } - } else { - q.getCurrentQuests().forEach((otherQuest, i) -> { - if (otherQuest.getStage(i).containsObjective(type)) { + } + q.getCurrentQuests().forEach((otherQuest, i) -> { + if (otherQuest.getStage(i).containsObjective(type)) { + if (!otherQuest.getOptions().canShareSameQuestOnly()) { fun.apply(q, otherQuest); appliedQuestIDs.add(otherQuest.getId()); } - }); - } + } + }); } } } catch (final Exception e) { diff --git a/main/src/main/java/me/blackvein/quests/listeners/BlockListener.java b/main/src/main/java/me/blackvein/quests/listeners/BlockListener.java index d9f93016e..919a7decf 100644 --- a/main/src/main/java/me/blackvein/quests/listeners/BlockListener.java +++ b/main/src/main/java/me/blackvein/quests/listeners/BlockListener.java @@ -76,13 +76,13 @@ public class BlockListener implements Listener { quester.breakBlock(quest, blockItemStack); // Multiplayer - if (!dispatchedQuestIDs.contains(quest.getId())) { - dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, breakType, - (final Quester q, final Quest cq) -> { - q.breakBlock(cq, blockItemStack); - return null; - })); - } + dispatchedQuestIDs.addAll(quester.dispatchMultiplayerEverything(quest, breakType, + (final Quester q, final Quest cq) -> { + if (!dispatchedQuestIDs.contains(cq.getId())) { + q.breakBlock(cq, blockItemStack); + } + return null; + })); } }