diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java index 78c917c1..7c4f8068 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/region/RegionListener.java @@ -183,11 +183,6 @@ public class RegionListener implements Listener { private static void tagChangedRegion(final Location location) { - new BukkitRunnable() { - @Override - public void run() { - Region.getRegion(location).getFlags().set(Flag.CHANGED, ChangedMode.HAS_CHANGE); - } - }.runTaskAsynchronously(BauSystem.getInstance()); + Region.getRegion(location).getFlags().set(Flag.CHANGED, ChangedMode.HAS_CHANGE); } } \ No newline at end of file diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java index 72e80301..3b2cdde3 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/region/FlagStorage.java @@ -29,6 +29,9 @@ public interface FlagStorage { @NonNull & Flag.Value> RegionFlagPolicy has(@NonNull Flag flag); + /** + * Returns true if the flag was changed and did not already contain the provided value + */ & Flag.Value> boolean set(@NonNull Flag flag, @NonNull T value); @NonNull diff --git a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java index c860f903..1b6f358b 100644 --- a/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java +++ b/BauSystem/BauSystem_RegionFixed/src/de/steamwar/bausystem/region/fixed/FixedFlagStorage.java @@ -66,9 +66,12 @@ public class FixedFlagStorage implements FlagStorage { @Override public & Flag.Value> boolean set(@NonNull Flag flag, @NonNull T value) { if (has(flag).isWritable()) { - data.put(flag.name(), value.name()); - WorldData.write(); - return flagMap.put(flag, value) != value; + boolean hasChanged = flagMap.put(flag, value) != value; + if (hasChanged) { + data.put(flag.name(), value.name()); + WorldData.write(); + } + return hasChanged; } else { return false; } diff --git a/buildSrc/src/steamwar.devserver.gradle b/buildSrc/src/steamwar.devserver.gradle index 8ce30df7..1ebf39a6 100644 --- a/buildSrc/src/steamwar.devserver.gradle +++ b/buildSrc/src/steamwar.devserver.gradle @@ -50,6 +50,14 @@ class DevServer extends DefaultTask { @Optional String checkpointFolder = null + @Input + @Optional + Boolean profile = null + + @Input + @Optional + Boolean forceUpgrade = null + DevServer() { super() doFirst { @@ -157,6 +165,8 @@ class DevServer extends DefaultTask { if (port != null) devPy.append(" --port $port") if (worldName != null) devPy.append(" -w $template/$worldName") if (plugins != null) devPy.append(" -p $plugins") + if (profile != null) devPy.append(" --profile") + if (forceUpgrade != null) devPy.append(" --forceUpgrade") if (jar != null) devPy.append(" --jar $jar") for (Map.Entry dParam : dParams.entrySet()) { devPy.append(" -D${dParam.key}=${dParam.value}")