diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/world/CustomCropsWorldImpl.java b/api/src/main/java/net/momirealms/customcrops/api/core/world/CustomCropsWorldImpl.java index d42f564..6c06d70 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/world/CustomCropsWorldImpl.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/world/CustomCropsWorldImpl.java @@ -91,10 +91,8 @@ public class CustomCropsWorldImpl implements CustomCropsWorld { } } } - return false; - } else { - return true; } + return false; } @Override diff --git a/api/src/main/java/net/momirealms/customcrops/api/event/CropBreakEvent.java b/api/src/main/java/net/momirealms/customcrops/api/event/CropBreakEvent.java index 3fae114..c068aa4 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/event/CropBreakEvent.java +++ b/api/src/main/java/net/momirealms/customcrops/api/event/CropBreakEvent.java @@ -17,7 +17,9 @@ package net.momirealms.customcrops.api.event; +import net.momirealms.customcrops.api.core.BuiltInBlockMechanics; import net.momirealms.customcrops.api.core.block.BreakReason; +import net.momirealms.customcrops.api.core.block.CropBlock; import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig; import net.momirealms.customcrops.api.core.world.CustomCropsBlockState; import org.bukkit.Location; diff --git a/api/src/main/java/net/momirealms/customcrops/api/requirement/AbstractRequirementManager.java b/api/src/main/java/net/momirealms/customcrops/api/requirement/AbstractRequirementManager.java index 837f020..e50ffdf 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/requirement/AbstractRequirementManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/requirement/AbstractRequirementManager.java @@ -426,6 +426,7 @@ public abstract class AbstractRequirementManager implements RequirementManage return context -> { Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Season season = plugin.getWorldManager().getSeason(location.getWorld()); + if (season == Season.DISABLE) return true; if (!seasons.contains(season.name())) return true; if (runActions) ActionManager.trigger(context, actions); return false; diff --git a/compatibility/src/main/java/net/momirealms/customcrops/bukkit/integration/season/RealisticSeasonsProvider.java b/compatibility/src/main/java/net/momirealms/customcrops/bukkit/integration/season/RealisticSeasonsProvider.java index b43ee39..f95cdcc 100644 --- a/compatibility/src/main/java/net/momirealms/customcrops/bukkit/integration/season/RealisticSeasonsProvider.java +++ b/compatibility/src/main/java/net/momirealms/customcrops/bukkit/integration/season/RealisticSeasonsProvider.java @@ -28,13 +28,17 @@ public class RealisticSeasonsProvider implements SeasonProvider { @NotNull @Override public Season getSeason(@NotNull World world) { - return switch (SeasonsAPI.getInstance().getSeason(world)) { - case WINTER -> Season.WINTER; - case SPRING -> Season.SPRING; - case SUMMER -> Season.SUMMER; - case FALL -> Season.AUTUMN; - case DISABLED, RESTORE -> Season.DISABLE; - }; + try { + return switch (SeasonsAPI.getInstance().getSeason(world)) { + case WINTER -> Season.WINTER; + case SPRING -> Season.SPRING; + case SUMMER -> Season.SUMMER; + case FALL -> Season.AUTUMN; + case DISABLED, RESTORE -> Season.DISABLE; + }; + } catch (NullPointerException e) { + return Season.DISABLE; + } } @Override diff --git a/gradle.properties b/gradle.properties index b625b8d..9b7ff6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.6 +project_version=3.6.7 config_version=39 project_group=net.momirealms diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java index 4615650..416114c 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/BukkitCustomCropsPluginImpl.java @@ -39,7 +39,6 @@ import net.momirealms.customcrops.bukkit.action.PlayerActionManager; import net.momirealms.customcrops.bukkit.command.BukkitCommandManager; import net.momirealms.customcrops.bukkit.config.BukkitConfigManager; import net.momirealms.customcrops.bukkit.integration.BukkitIntegrationManager; -import net.momirealms.customcrops.bukkit.integration.worldedit.CustomCropsDelegateExtent; import net.momirealms.customcrops.bukkit.integration.worldedit.WorldEditHook; import net.momirealms.customcrops.bukkit.item.BukkitItemManager; import net.momirealms.customcrops.bukkit.requirement.BlockRequirementManager; @@ -197,8 +196,8 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin { Runnable delayedInitTask = () -> { ((SimpleRegistryAccess) registryAccess).freeze(); logger.info("Registry access has been frozen"); - ((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBoostrap()).silentLogs(true).ignoreOP(true).build()); EventUtils.fireAndForget(new CustomCropsReloadEvent(this)); + ((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBoostrap()).silentLogs(true).ignoreOP(true).build()); }; // delayed init task @@ -225,10 +224,10 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin { this.worldManager.unload(); + this.placeholderManager.reload(); this.configManager.reload(); this.debugger = ConfigManager.debug() ? (s) -> logger.info("[DEBUG] " + s.toString()) : (s) -> {}; this.coolDownManager.reload(); - this.placeholderManager.reload(); this.translationManager.reload(); this.hologramManager.reload(); 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 322d59c..e6367f8 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 @@ -152,6 +152,15 @@ public class BukkitConfigManager extends ConfigManager { } } + Section placeholderSection = config.getSection("other-settings.placeholder-register"); + if (placeholderSection != null) { + for (Map.Entry entry : placeholderSection.getStringRouteMappedValues(false).entrySet()) { + if (entry.getValue() instanceof String original) { + plugin.getPlaceholderManager().registerCustomPlaceholder(entry.getKey(), original); + } + } + } + for (String id : scarecrow) { Registries.BLOCKS.register(id, BuiltInBlockMechanics.SCARECROW.mechanic()); }