diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java index d3fdba0..83a153f 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java @@ -94,6 +94,8 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { protected boolean worldeditSupport = false; protected boolean interveneAntiGrief = false; + protected boolean asyncWorldSaving = true; + public ConfigManager(BukkitCustomCropsPlugin plugin) { this.plugin = plugin; instance = this; @@ -167,6 +169,10 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { return instance.doubleCheck; } + public static boolean asyncWorldSaving() { + return instance.asyncWorldSaving; + } + public static Set scarecrow() { return instance.scarecrow; } diff --git a/gradle.properties b/gradle.properties index cb58e68..e41dc18 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Project settings # Rule: [major update].[feature update].[bug fix] project_version=3.6.17 -config_version=41 +config_version=42 project_group=net.momirealms # Supported languages diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java index 1755a7b..aa9fd2e 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java @@ -146,6 +146,7 @@ public class BukkitConfigManager extends ConfigManager { worldeditSupport = config.getBoolean("other-settings.worldedit-support", false); interveneAntiGrief = config.getBoolean("other-settings.intervene-anti-grief", false); + asyncWorldSaving = config.getBoolean("other-settings.async-world-saving", true); offsets.clear(); Section section = config.getSection("mechanics.hologram-offset-correction"); diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/world/BukkitWorldManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/world/BukkitWorldManager.java index d286c2a..92c520d 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/world/BukkitWorldManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/world/BukkitWorldManager.java @@ -232,7 +232,7 @@ public class BukkitWorldManager implements WorldManager, Listener { @EventHandler public void onWorldSave(WorldSaveEvent event) { final World world = event.getWorld(); - getWorld(world).ifPresent(world1 -> world1.save(true, false)); + getWorld(world).ifPresent(world1 -> world1.save(ConfigManager.asyncWorldSaving(), false)); } @EventHandler (priority = EventPriority.HIGH) diff --git a/plugin/src/main/resources/config.yml b/plugin/src/main/resources/config.yml index 8e91cd3..b7bd65d 100644 --- a/plugin/src/main/resources/config.yml +++ b/plugin/src/main/resources/config.yml @@ -149,4 +149,6 @@ other-settings: # Sometimes some anti-grief plugins are not supported by custom item plugins, but they are supported by CustomCrops # If you enable this option, CustomCrops will also protect those unsupported anti-grief plugins # Supported plugins can be found on https://github.com/Xiao-MoMi/AntiGriefLib/blob/main/README.md - intervene-anti-grief: false \ No newline at end of file + intervene-anti-grief: false + # Decides whether the process of saving is async + async-world-saving: true \ No newline at end of file