mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-21 21:18:02 +00:00
Fix issues with regions (#2177)
Luckily, SceneRegion and TriggerExcelConfigData both have group numbers, so we can use those to differentiate regions!
This commit is contained in:
parent
19fa9deae7
commit
50db3a20f5
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user