diff --git a/src/main/java/emu/grasscutter/game/player/Player.java b/src/main/java/emu/grasscutter/game/player/Player.java index df03e8d65..bda5a2f1d 100644 --- a/src/main/java/emu/grasscutter/game/player/Player.java +++ b/src/main/java/emu/grasscutter/game/player/Player.java @@ -709,7 +709,8 @@ public class Player implements PlayerHook, FieldFetch { public void onEnterRegion(SceneRegion region) { this.getQuestManager().forEachActiveQuest(quest -> { if (quest.getTriggerData() != null && - quest.getTriggers().containsKey("ENTER_REGION_"+ region.config_id)) { + quest.getTriggers().containsKey("ENTER_REGION_"+ region.config_id) && + region.getGroupId() == quest.getTriggerData().get("ENTER_REGION_" + region.config_id).getGroupId()) { // If trigger hasn't been fired yet if (!Boolean.TRUE.equals(quest.getTriggers().put("ENTER_REGION_" + region.config_id, true))) { this.getSession().send(new PacketServerCondMeetQuestListUpdateNotify()); @@ -723,7 +724,8 @@ public class Player implements PlayerHook, FieldFetch { public void onLeaveRegion(SceneRegion region) { this.getQuestManager().forEachActiveQuest(quest -> { - if (quest.getTriggers().containsKey("LEAVE_REGION_" + region.config_id)) { + if (quest.getTriggers().containsKey("LEAVE_REGION_" + region.config_id) && + region.getGroupId() == quest.getTriggerData().get("ENTER_REGION_" + region.config_id).getGroupId()) { // If trigger hasn't been fired yet if (!Boolean.TRUE.equals(quest.getTriggers().put("LEAVE_REGION_" + region.config_id, true))) { this.getSession().send(new PacketServerCondMeetQuestListUpdateNotify());