From 343c12dbe3725ae0653070082289d32d8b04aaa1 Mon Sep 17 00:00:00 2001 From: XiaoMoMi <70987828+Xiao-MoMi@users.noreply.github.com> Date: Thu, 5 Sep 2024 00:22:47 +0800 Subject: [PATCH] improve farmland checks --- .../api/core/AbstractCustomEventListener.java | 16 +++++++++++++++- .../customcrops/api/core/CustomForm.java | 4 +++- .../api/core/mechanic/pot/PotConfigImpl.java | 12 ++++++++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java b/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java index 6294599..8fae423 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/AbstractCustomEventListener.java @@ -22,6 +22,7 @@ import net.momirealms.customcrops.api.action.ActionManager; import net.momirealms.customcrops.api.context.Context; import net.momirealms.customcrops.api.context.ContextKeys; import net.momirealms.customcrops.api.core.block.CropBlock; +import net.momirealms.customcrops.api.core.block.PotBlock; import net.momirealms.customcrops.api.core.mechanic.crop.BoneMeal; import net.momirealms.customcrops.api.core.mechanic.crop.CropConfig; import net.momirealms.customcrops.api.core.mechanic.crop.CropStageConfig; @@ -234,8 +235,21 @@ public abstract class AbstractCustomEventListener implements Listener { @EventHandler (ignoreCancelled = true, priority = EventPriority.HIGH) public void onMoistureChange(MoistureChangeEvent event) { - if (ConfigManager.disableMoistureMechanic()) + if (ConfigManager.disableMoistureMechanic()) { event.setCancelled(true); + return; + } +// Location location = event.getBlock().getLocation(); +// Optional> world = BukkitCustomCropsPlugin.getInstance().getWorldManager().getWorld(location.getWorld()); +// if (world.isEmpty()){ +// return; +// } +// CustomCropsWorld w = world.get(); +// w.getBlockState(Pos3.from(location)).ifPresent(state -> { +// if (state.type() instanceof PotBlock) { +// event.setCancelled(true); +// } +// }); } @EventHandler (ignoreCancelled = true, priority = EventPriority.HIGH) diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/CustomForm.java b/api/src/main/java/net/momirealms/customcrops/api/core/CustomForm.java index 622af3d..8de59d3 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/CustomForm.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/CustomForm.java @@ -25,7 +25,9 @@ public enum CustomForm { CHORUS(ExistenceForm.BLOCK), ITEM_FRAME(ExistenceForm.FURNITURE), ITEM_DISPLAY(ExistenceForm.FURNITURE), - ARMOR_STAND(ExistenceForm.FURNITURE); + ARMOR_STAND(ExistenceForm.FURNITURE), + BLOCK(ExistenceForm.BLOCK), + FURNITURE(ExistenceForm.FURNITURE); private final ExistenceForm form; diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/mechanic/pot/PotConfigImpl.java b/api/src/main/java/net/momirealms/customcrops/api/core/mechanic/pot/PotConfigImpl.java index 5958464..a854022 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/mechanic/pot/PotConfigImpl.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/mechanic/pot/PotConfigImpl.java @@ -24,6 +24,7 @@ import net.momirealms.customcrops.api.core.world.CustomCropsBlockState; import net.momirealms.customcrops.api.misc.water.WaterBar; import net.momirealms.customcrops.api.misc.water.WateringMethod; import net.momirealms.customcrops.api.requirement.Requirement; +import net.momirealms.customcrops.api.util.StringUtils; import net.momirealms.customcrops.common.util.Pair; import org.bukkit.entity.Player; @@ -100,14 +101,21 @@ public class PotConfigImpl implements PotConfig { this.maxFertilizerActions = maxFertilizerActions; this.blocks.add(basicAppearance.left()); this.blocks.add(basicAppearance.right()); - this.wetBlocks.add(basicAppearance.right()); + addToWet(basicAppearance.right()); for (Pair pair : potAppearanceMap.values()) { this.blocks.add(pair.left()); this.blocks.add(pair.right()); - this.wetBlocks.add(pair.right()); + addToWet(pair.right()); } } + private void addToWet(String id) { + if (StringUtils.isCapitalLetter(id)) { + return; + } + this.wetBlocks.add(id); + } + @Override public String id() { return id;