diff --git a/build.gradle b/build.gradle index b39731d..5605107 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '2.0-r9' +version = '2.0.1' repositories { mavenCentral() diff --git a/src/main/java/net/momirealms/customcrops/api/crop/Crop.java b/src/main/java/net/momirealms/customcrops/api/crop/Crop.java index 54fdfc8..50d991c 100644 --- a/src/main/java/net/momirealms/customcrops/api/crop/Crop.java +++ b/src/main/java/net/momirealms/customcrops/api/crop/Crop.java @@ -17,7 +17,7 @@ package net.momirealms.customcrops.api.crop; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.objects.GiganticCrop; import net.momirealms.customcrops.objects.OtherLoot; import net.momirealms.customcrops.objects.QualityLoot; diff --git a/src/main/java/net/momirealms/customcrops/api/event/SeedPlantEvent.java b/src/main/java/net/momirealms/customcrops/api/event/SeedPlantEvent.java index d8ccc73..e2ca86d 100644 --- a/src/main/java/net/momirealms/customcrops/api/event/SeedPlantEvent.java +++ b/src/main/java/net/momirealms/customcrops/api/event/SeedPlantEvent.java @@ -22,19 +22,22 @@ import net.momirealms.customcrops.api.crop.Crop; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.bukkit.event.player.PlayerEvent; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; -public class SeedPlantEvent extends PlayerEvent implements Cancellable { +public class SeedPlantEvent extends Event implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancelled; private final Location seedLoc; private final Crop crop; + private final Player player; - public SeedPlantEvent(@NotNull Player who, Location seedLoc, Crop crop) { - super(who); + public SeedPlantEvent(@Nullable Player who, Location seedLoc, Crop crop) { + this.player = who; this.cancelled = false; this.seedLoc = seedLoc; this.crop = crop; @@ -62,4 +65,12 @@ public class SeedPlantEvent extends PlayerEvent implements Cancellable { public Crop getCrop() { return crop; } + + /** + * return null if this is not triggered by a player + */ + @Nullable + public Player getPlayer() { + return player; + } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/season/CCSeason.java b/src/main/java/net/momirealms/customcrops/api/utils/CCSeason.java similarity index 93% rename from src/main/java/net/momirealms/customcrops/integrations/season/CCSeason.java rename to src/main/java/net/momirealms/customcrops/api/utils/CCSeason.java index c0d6ea6..b62d981 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/season/CCSeason.java +++ b/src/main/java/net/momirealms/customcrops/api/utils/CCSeason.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package net.momirealms.customcrops.integrations.season; +package net.momirealms.customcrops.api.utils; public enum CCSeason { diff --git a/src/main/java/net/momirealms/customcrops/api/utils/CropUtils.java b/src/main/java/net/momirealms/customcrops/api/utils/CropUtils.java index ecf7227..f0464d5 100644 --- a/src/main/java/net/momirealms/customcrops/api/utils/CropUtils.java +++ b/src/main/java/net/momirealms/customcrops/api/utils/CropUtils.java @@ -17,8 +17,10 @@ package net.momirealms.customcrops.api.utils; +import net.momirealms.customcrops.CustomCrops; import net.momirealms.customcrops.api.crop.Crop; import net.momirealms.customcrops.config.CropConfig; +import org.bukkit.Location; import org.jetbrains.annotations.Nullable; public class CropUtils { @@ -32,4 +34,14 @@ public class CropUtils { public static Crop getCrop(String crop) { return CropConfig.CROPS.get(crop); } + + /** + * whether planting succeeds + * @param location location + * @param crop crop + * @return + */ + public static boolean plantCrop(Location location, String crop) { + return CustomCrops.plugin.getCropManager().getHandler().plantSeed(location, crop, null, null); + } } diff --git a/src/main/java/net/momirealms/customcrops/api/utils/SeasonUtils.java b/src/main/java/net/momirealms/customcrops/api/utils/SeasonUtils.java index 545c170..c2226eb 100644 --- a/src/main/java/net/momirealms/customcrops/api/utils/SeasonUtils.java +++ b/src/main/java/net/momirealms/customcrops/api/utils/SeasonUtils.java @@ -18,7 +18,7 @@ package net.momirealms.customcrops.api.utils; import net.momirealms.customcrops.CustomCrops; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.config.MessageConfig; import org.bukkit.World; import org.jetbrains.annotations.NotNull; @@ -50,4 +50,14 @@ public class SeasonUtils { public static void unloadSeason(World world) { CustomCrops.plugin.getCropManager().getSeasonAPI().unloadWorld(world); } + + public static String getSeasonText(CCSeason season) { + return switch (season) { + case SPRING -> MessageConfig.spring; + case SUMMER -> MessageConfig.summer; + case AUTUMN -> MessageConfig.autumn; + case WINTER -> MessageConfig.winter; + default -> throw new IllegalStateException("Unexpected value: " + season); + }; + } } diff --git a/src/main/java/net/momirealms/customcrops/commands/subcmd/SetSeasonCommand.java b/src/main/java/net/momirealms/customcrops/commands/subcmd/SetSeasonCommand.java index 35fc4e8..c8fdb47 100644 --- a/src/main/java/net/momirealms/customcrops/commands/subcmd/SetSeasonCommand.java +++ b/src/main/java/net/momirealms/customcrops/commands/subcmd/SetSeasonCommand.java @@ -22,7 +22,7 @@ import net.momirealms.customcrops.commands.AbstractSubCommand; import net.momirealms.customcrops.commands.SubCommand; import net.momirealms.customcrops.config.MessageConfig; import net.momirealms.customcrops.config.SeasonConfig; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.utils.AdventureUtil; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/src/main/java/net/momirealms/customcrops/config/CropConfig.java b/src/main/java/net/momirealms/customcrops/config/CropConfig.java index c341489..6c3542b 100644 --- a/src/main/java/net/momirealms/customcrops/config/CropConfig.java +++ b/src/main/java/net/momirealms/customcrops/config/CropConfig.java @@ -18,7 +18,7 @@ package net.momirealms.customcrops.config; import net.momirealms.customcrops.api.crop.Crop; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.objects.CCCrop; import net.momirealms.customcrops.objects.GiganticCrop; import net.momirealms.customcrops.objects.OtherLoot; diff --git a/src/main/java/net/momirealms/customcrops/integrations/customplugin/HandlerP.java b/src/main/java/net/momirealms/customcrops/integrations/customplugin/HandlerP.java index 48ac389..0311d50 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/customplugin/HandlerP.java +++ b/src/main/java/net/momirealms/customcrops/integrations/customplugin/HandlerP.java @@ -24,8 +24,9 @@ import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.momirealms.customcrops.CustomCrops; import net.momirealms.customcrops.api.crop.Crop; import net.momirealms.customcrops.api.event.*; +import net.momirealms.customcrops.api.utils.SeasonUtils; import net.momirealms.customcrops.config.*; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.managers.CropManager; import net.momirealms.customcrops.managers.CustomWorld; import net.momirealms.customcrops.managers.listener.InteractListener; @@ -535,53 +536,54 @@ public abstract class HandlerP extends Function { } } - protected void plantSeed(Location seedLoc, String cropName, Player player, ItemStack itemInHand, boolean isOraxen, boolean isWire) { + public boolean plantSeed(Location seedLoc, String cropName, @Nullable Player player, @Nullable ItemStack itemInHand) { Crop crop = CropConfig.CROPS.get(cropName); - if (crop == null) return; + if (crop == null) return false; CustomWorld customWorld = cropManager.getCustomWorld(seedLoc.getWorld()); - if (customWorld == null) return; + if (customWorld == null) return false; - if (!isOraxen && FurnitureUtil.hasFurniture(seedLoc.clone().add(0.5,0.5,0.5))) return; - if (isOraxen && FurnitureUtil.hasFurniture(seedLoc.clone().add(0.5,0.03125,0.5))) return; - if (seedLoc.getBlock().getType() != Material.AIR) return; - - PlantingCondition plantingCondition = new PlantingCondition(seedLoc, player); + if (!MainConfig.OraxenHook && FurnitureUtil.hasFurniture(seedLoc.clone().add(0.5,0.5,0.5))) return false; + if (MainConfig.OraxenHook && FurnitureUtil.hasFurniture(seedLoc.clone().add(0.5,0.03125,0.5))) return false; + if (seedLoc.getBlock().getType() != Material.AIR) return false; CCSeason[] seasons = crop.getSeasons(); if (SeasonConfig.enable && seasons != null) { if (cropManager.isWrongSeason(seedLoc, seasons)) { - if (MainConfig.notifyInWrongSeason) AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.wrongSeason); - if (MainConfig.preventInWrongSeason) return; + if (MainConfig.notifyInWrongSeason) AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.wrongSeason.replace("{season}", SeasonUtils.getSeasonText(SeasonUtils.getSeason(seedLoc.getWorld())))); + if (MainConfig.preventInWrongSeason) return false; } } - if (crop.getRequirements() != null) { - for (RequirementInterface requirement : crop.getRequirements()) { - if (!requirement.isConditionMet(plantingCondition)) { - return; + if (player != null) { + PlantingCondition plantingCondition = new PlantingCondition(seedLoc, player); + if (crop.getRequirements() != null) { + for (RequirementInterface requirement : crop.getRequirements()) { + if (!requirement.isConditionMet(plantingCondition)) { + return false; + } } } } - if (MainConfig.limitation ) { - if (isWire && LimitationUtil.reachWireLimit(seedLoc)) { - AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.limitWire.replace("{max}", String.valueOf(MainConfig.wireAmount))); - return; + if (MainConfig.limitation) { + if (MainConfig.cropMode && LimitationUtil.reachWireLimit(seedLoc)) { + if (player != null) AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.limitWire.replace("{max}", String.valueOf(MainConfig.wireAmount))); + return false; } - if (!isWire && LimitationUtil.reachFrameLimit(seedLoc)) { - AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.limitFrame.replace("{max}", String.valueOf(MainConfig.frameAmount))); - return; + if (!MainConfig.cropMode && LimitationUtil.reachFrameLimit(seedLoc)) { + if (player != null) AdventureUtil.playerMessage(player, MessageConfig.prefix + MessageConfig.limitFrame.replace("{max}", String.valueOf(MainConfig.frameAmount))); + return false; } } SeedPlantEvent seedPlantEvent = new SeedPlantEvent(player, seedLoc, crop); Bukkit.getPluginManager().callEvent(seedPlantEvent); if (seedPlantEvent.isCancelled()) { - return; + return false; } - if (SoundConfig.plantSeed.isEnable()) { + if (SoundConfig.plantSeed.isEnable() && player != null) { AdventureUtil.playerSound( player, SoundConfig.plantSeed.getSource(), @@ -590,13 +592,14 @@ public abstract class HandlerP extends Function { ); } - if (player.getGameMode() != GameMode.CREATIVE) itemInHand.setAmount(itemInHand.getAmount() - 1); - if (isWire) customInterface.placeWire(seedLoc, cropName + "_stage_1"); + if (itemInHand != null && player != null && player.getGameMode() != GameMode.CREATIVE) itemInHand.setAmount(itemInHand.getAmount() - 1); + if (MainConfig.cropMode) customInterface.placeWire(seedLoc, cropName + "_stage_1"); else { ItemFrame itemFrame = customInterface.placeFurniture(seedLoc, cropName + "_stage_1"); - if (itemFrame == null) return; + if (itemFrame == null) return false; itemFrame.setRotation(FurnitureUtil.getRandomRotation()); } customWorld.addCrop(seedLoc, cropName); + return true; } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderFrameHandler.java b/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderFrameHandler.java index 5419b9d..7849caa 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderFrameHandler.java +++ b/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderFrameHandler.java @@ -188,13 +188,13 @@ public class ItemsAdderFrameHandler extends ItemsAdderHandler { String namespacedID = customStack.getNamespacedID(); if (namespacedID.endsWith("_seeds")) { String cropName = customStack.getId().substring(0, customStack.getId().length() - 6); - plantSeed(seedLoc, cropName, player, itemInHand, false, false); + plantSeed(seedLoc, cropName, player, itemInHand); } } else if (MainConfig.enableConvert) { String cropName = MainConfig.vanilla2Crops.get(itemInHand.getType()); if (cropName == null) return; - plantSeed(seedLoc, cropName, player, itemInHand, false, false); + plantSeed(seedLoc, cropName, player, itemInHand); } } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderWireHandler.java b/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderWireHandler.java index fe6061c..c2f41c3 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderWireHandler.java +++ b/src/main/java/net/momirealms/customcrops/integrations/customplugin/itemsadder/ItemsAdderWireHandler.java @@ -163,13 +163,13 @@ public class ItemsAdderWireHandler extends ItemsAdderHandler { String namespacedID = customStack.getNamespacedID(); if (namespacedID.endsWith("_seeds")) { String cropName = customStack.getId().substring(0, customStack.getId().length() - 6); - plantSeed(seedLoc, cropName, player, itemInHand, false, true); + plantSeed(seedLoc, cropName, player, itemInHand); } } else if (MainConfig.enableConvert) { String cropName = MainConfig.vanilla2Crops.get(itemInHand.getType()); if (cropName == null) return; - plantSeed(seedLoc, cropName, player, itemInHand, false, true); + plantSeed(seedLoc, cropName, player, itemInHand); } } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenFrameHandler.java b/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenFrameHandler.java index 90f2283..fee34d6 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenFrameHandler.java +++ b/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenFrameHandler.java @@ -142,13 +142,13 @@ public class OraxenFrameHandler extends OraxenHandler { if (id != null) { if (id.endsWith("_seeds")) { String cropName = id.substring(0, id.length() - 6); - plantSeed(seedLoc, cropName, player, itemInHand, true, false); + plantSeed(seedLoc, cropName, player, itemInHand); } } else if (MainConfig.enableConvert) { String cropName = MainConfig.vanilla2Crops.get(itemInHand.getType()); if (cropName == null) return; - plantSeed(seedLoc, cropName, player, itemInHand, true, false); + plantSeed(seedLoc, cropName, player, itemInHand); } } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenWireHandler.java b/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenWireHandler.java index 80fcfed..977c0f1 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenWireHandler.java +++ b/src/main/java/net/momirealms/customcrops/integrations/customplugin/oraxen/OraxenWireHandler.java @@ -184,13 +184,13 @@ public class OraxenWireHandler extends OraxenHandler{ if (id != null) { if (id.endsWith("_seeds")) { String cropName = id.substring(0, id.length() - 6); - plantSeed(seedLoc, cropName, player, itemInHand, true, true); + plantSeed(seedLoc, cropName, player, itemInHand); } } else if (MainConfig.enableConvert) { String cropName = MainConfig.vanilla2Crops.get(itemInHand.getType()); if (cropName == null) return; - plantSeed(seedLoc, cropName, player, itemInHand, true, true); + plantSeed(seedLoc, cropName, player, itemInHand); } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/papi/SeasonPapi.java b/src/main/java/net/momirealms/customcrops/integrations/papi/SeasonPapi.java index 8d50b7e..95bba52 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/papi/SeasonPapi.java +++ b/src/main/java/net/momirealms/customcrops/integrations/papi/SeasonPapi.java @@ -22,7 +22,7 @@ import net.momirealms.customcrops.api.utils.SeasonUtils; import net.momirealms.customcrops.config.MainConfig; import net.momirealms.customcrops.config.MessageConfig; import net.momirealms.customcrops.config.SeasonConfig; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; @@ -97,12 +97,6 @@ public class SeasonPapi extends PlaceholderExpansion { private String getSeasonText(World world) { CCSeason season = SeasonUtils.getSeason(world); - return switch (season) { - case SPRING -> MessageConfig.spring; - case SUMMER -> MessageConfig.summer; - case AUTUMN -> MessageConfig.autumn; - case WINTER -> MessageConfig.winter; - default -> throw new IllegalStateException("Unexpected value: " + season); - }; + return SeasonUtils.getSeasonText(season); } } diff --git a/src/main/java/net/momirealms/customcrops/integrations/season/InternalSeason.java b/src/main/java/net/momirealms/customcrops/integrations/season/InternalSeason.java index 640630f..117850f 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/season/InternalSeason.java +++ b/src/main/java/net/momirealms/customcrops/integrations/season/InternalSeason.java @@ -18,6 +18,7 @@ package net.momirealms.customcrops.integrations.season; import net.momirealms.customcrops.CustomCrops; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.config.MainConfig; import net.momirealms.customcrops.config.SeasonConfig; import net.momirealms.customcrops.objects.Function; diff --git a/src/main/java/net/momirealms/customcrops/integrations/season/RealisticSeasonsHook.java b/src/main/java/net/momirealms/customcrops/integrations/season/RealisticSeasonsHook.java index b7c8476..f96bdef 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/season/RealisticSeasonsHook.java +++ b/src/main/java/net/momirealms/customcrops/integrations/season/RealisticSeasonsHook.java @@ -18,6 +18,7 @@ package net.momirealms.customcrops.integrations.season; import me.casperge.realisticseasons.api.SeasonsAPI; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.config.MainConfig; import net.momirealms.customcrops.objects.Function; import org.bukkit.World; @@ -28,6 +29,10 @@ public class RealisticSeasonsHook extends Function implements SeasonInterface { private SeasonsAPI api; + public RealisticSeasonsHook() { + load(); + } + @Override public void load() { super.load(); diff --git a/src/main/java/net/momirealms/customcrops/integrations/season/SeasonInterface.java b/src/main/java/net/momirealms/customcrops/integrations/season/SeasonInterface.java index a86b818..48df5e5 100644 --- a/src/main/java/net/momirealms/customcrops/integrations/season/SeasonInterface.java +++ b/src/main/java/net/momirealms/customcrops/integrations/season/SeasonInterface.java @@ -17,6 +17,7 @@ package net.momirealms.customcrops.integrations.season; +import net.momirealms.customcrops.api.utils.CCSeason; import org.bukkit.World; public interface SeasonInterface { diff --git a/src/main/java/net/momirealms/customcrops/managers/CropManager.java b/src/main/java/net/momirealms/customcrops/managers/CropManager.java index 14c417a..e96cf91 100644 --- a/src/main/java/net/momirealms/customcrops/managers/CropManager.java +++ b/src/main/java/net/momirealms/customcrops/managers/CropManager.java @@ -29,7 +29,7 @@ import net.momirealms.customcrops.integrations.customplugin.CustomInterface; import net.momirealms.customcrops.integrations.customplugin.HandlerP; import net.momirealms.customcrops.integrations.customplugin.itemsadder.*; import net.momirealms.customcrops.integrations.customplugin.oraxen.*; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.integrations.season.InternalSeason; import net.momirealms.customcrops.integrations.season.RealisticSeasonsHook; import net.momirealms.customcrops.integrations.season.SeasonInterface; @@ -57,7 +57,6 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Nullable; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Future; import java.util.concurrent.ThreadLocalRandom; public class CropManager extends Function { @@ -465,4 +464,8 @@ public class CropManager extends Function { public ArmorStandUtil getArmorStandUtil() { return armorStandUtil; } + + public HandlerP getHandler() { + return handler; + } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/managers/CustomWorld.java b/src/main/java/net/momirealms/customcrops/managers/CustomWorld.java index a6f297f..fdc6f01 100644 --- a/src/main/java/net/momirealms/customcrops/managers/CustomWorld.java +++ b/src/main/java/net/momirealms/customcrops/managers/CustomWorld.java @@ -22,7 +22,7 @@ import net.momirealms.customcrops.CustomCrops; import net.momirealms.customcrops.api.event.CustomWorldEvent; import net.momirealms.customcrops.api.utils.SeasonUtils; import net.momirealms.customcrops.config.*; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.objects.SimpleLocation; import net.momirealms.customcrops.objects.Sprinkler; import net.momirealms.customcrops.objects.WorldState; @@ -59,7 +59,6 @@ public class CustomWorld { private final BukkitScheduler bukkitScheduler; private final HashSet plantedToday; private final CropModeInterface cropMode; - private YamlConfiguration cropData; public CustomWorld(World world, CropManager cropManager) { @@ -332,6 +331,7 @@ public class CustomWorld { } public void growWire(int cropTime, int sprinklerTime, int dryTime, boolean compensation, boolean force) { + if (cropData == null) return; Random randomGenerator = new Random(); if (force) { diff --git a/src/main/java/net/momirealms/customcrops/objects/CCCrop.java b/src/main/java/net/momirealms/customcrops/objects/CCCrop.java index 38a860f..4e18db9 100644 --- a/src/main/java/net/momirealms/customcrops/objects/CCCrop.java +++ b/src/main/java/net/momirealms/customcrops/objects/CCCrop.java @@ -18,7 +18,7 @@ package net.momirealms.customcrops.objects; import net.momirealms.customcrops.api.crop.Crop; -import net.momirealms.customcrops.integrations.season.CCSeason; +import net.momirealms.customcrops.api.utils.CCSeason; import net.momirealms.customcrops.objects.actions.ActionInterface; import net.momirealms.customcrops.objects.requirements.RequirementInterface; diff --git a/src/main/resources/messages/messages_english.yml b/src/main/resources/messages/messages_english.yml index 716374e..c110ae9 100644 --- a/src/main/resources/messages/messages_english.yml +++ b/src/main/resources/messages/messages_english.yml @@ -17,7 +17,7 @@ messages: grow-simulation: 'Growing simulation has started' set-season: 'Successfully set {world}''s season to {season}!' before-plant: 'This fertilizer must be used before planting!' - wrong-season: 'Current season is not suitable for planting this seed' + wrong-season: 'Current season is not suitable for planting this seed. Suitable season: {season}' no-season: 'No season' season-disabled: 'Season is disabled'