diff --git a/build.gradle b/build.gradle index 7dfdd4a..46318bc 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '3.0.2-hotfix2' +version = '3.0.2-hotfix3' repositories { mavenCentral() diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java index c1ceae0..c8f4e61 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java @@ -18,7 +18,10 @@ package net.momirealms.customcrops.api.object.requirement; import net.momirealms.customcrops.CustomCrops; +import net.momirealms.customcrops.api.object.basic.ConfigManager; import net.momirealms.customcrops.api.object.season.CCSeason; +import net.momirealms.customcrops.api.object.world.SimpleLocation; +import net.momirealms.customcrops.api.object.world.WorldDataManager; import net.momirealms.customcrops.integration.SeasonInterface; import org.jetbrains.annotations.Nullable; @@ -36,11 +39,20 @@ public class SeasonImpl extends AbstractRequirement implements Requirement { @Override public boolean isConditionMet(CurrentState currentState) { SeasonInterface seasonInterface = CustomCrops.getInstance().getIntegrationManager().getSeasonInterface(); - if (seasonInterface == null) return true; CCSeason currentSeason = seasonInterface.getSeason(currentState.getLocation().getWorld().getName()); if (seasons.contains(currentSeason)) { return true; } + + SimpleLocation simpleLocation = SimpleLocation.getByBukkitLocation(currentState.getLocation()); + WorldDataManager worldDataManager = CustomCrops.getInstance().getWorldDataManager(); + if (ConfigManager.enableGreenhouse) { + for (int i = 0; i < ConfigManager.greenhouseRange; i++) { + if (worldDataManager.isGreenhouse(simpleLocation.add(0, i, 0))) { + return true; + } + } + } notMetMessage(currentState.getPlayer()); return false; } diff --git a/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java b/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java index 66998df..a2f28a9 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java +++ b/src/main/java/net/momirealms/customcrops/api/object/world/CCWorld.java @@ -134,6 +134,7 @@ public class CCWorld extends Function { public void disable() { closePool(); saveCache(); + CustomCrops.getInstance().getSeasonManager().unloadSeasonData(worldName); } @SuppressWarnings("ResultOfMethodCallIgnored") @@ -157,7 +158,7 @@ public class CCWorld extends Function { } YamlConfiguration dataFile = new YamlConfiguration(); if (ConfigManager.enableSeason && !ConfigManager.rsHook) { - SeasonData seasonData = CustomCrops.getInstance().getSeasonManager().unloadSeasonData(worldName); + SeasonData seasonData = CustomCrops.getInstance().getSeasonManager().getSeasonData(worldName); if (seasonData == null) { dataFile.set("season", "SPRING"); dataFile.set("date", 1);