From 9fb66faa201a2415d44d5f911b6c3ea72c1a3387 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sat, 1 May 2021 18:04:59 +0200 Subject: [PATCH] Optimize AutostartListener --- .../features/autostart/AutostartListener.java | 3 +++ .../src/de/steamwar/bausystem/region/Region.java | 12 +++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/autostart/AutostartListener.java b/BauSystem_Main/src/de/steamwar/bausystem/features/autostart/AutostartListener.java index 0f58dfc0..4079ca4b 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/autostart/AutostartListener.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/autostart/AutostartListener.java @@ -79,6 +79,9 @@ public class AutostartListener implements Listener { @EventHandler public void onEntityExplode(EntityExplodeEvent event) { + if (regionStartTime.isEmpty()) { + return; + } event.blockList().forEach(block -> { Region region = Region.getRegion(block.getLocation()); if (!regionStartTime.containsKey(region)) return; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java b/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java index 8a174ba8..7ddb627e 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java @@ -37,10 +37,7 @@ import yapion.hierarchy.types.YAPIONValue; import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.function.Predicate; import static de.steamwar.bausystem.region.RegionUtils.paste; @@ -53,14 +50,15 @@ public class Region { public static Region getRegion(Location location) { String s = Thread.currentThread().getStackTrace()[2].toString(); if (!s.contains("sidebar")) { - System.out.println(s +" " + location); + System.out.println(s + " " + location); } - for (Region region : REGION_LIST) { + /*for (Region region : REGION_LIST) { if (region.inRegion(location, region.minPoint, region.maxPoint)) { return region; } } - return GlobalRegion.instance; + return GlobalRegion.instance;*/ + return REGION_LIST.stream().filter(r -> r.inRegion(location, r.minPoint, r.maxPoint)).findFirst().orElse(GlobalRegion.instance); } public static void setGlobal(Flag flagType, Flag.Value value) {