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 57d73f4..e99e203 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 @@ -176,10 +176,11 @@ public abstract class AbstractCustomEventListener implements Listener { if (ConfigManager.overriddenCrops().contains(block.getType())) { event.setDropItems(false); } + ItemStack itemStack = event.getPlayer().getInventory().getItemInMainHand(); this.itemManager.handlePlayerBreak( event.getPlayer(), block.getLocation(), - event.getPlayer().getInventory().getItemInMainHand(), + itemStack, block.getBlockData().getAsString(), event ); diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java b/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java index ac2d9c7..78c9cb5 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java @@ -204,7 +204,19 @@ public class CropBlock extends AbstractCustomCropsBlock { int point = point(state); CropStageConfig stageConfig = cropConfig.stageByID(event.relatedID()); - assert stageConfig != null; + if (stageConfig == null) { + // fix it if it's a wrong data + world.removeBlockState(pos3); + state = fixOrGetState(world, pos3, event.relatedID()); + if (state == null) { + return; + } + cropConfig = config(state); + stageConfig = cropConfig.stageByID(event.relatedID()); + if (stageConfig == null) { + return; + } + } if (!RequirementManager.isSatisfied(context, stageConfig.interactRequirements())) { return; } diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java b/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java index e040c33..95f9c04 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java @@ -83,7 +83,7 @@ public class WateringCanItem extends AbstractCustomCropsItem { wrapped.maxDamage().ifPresent(max -> { if (max <= 0) return; int damage = (int) (max * (((double) config.storage() - realWater) / config.storage())); - wrapped.damage(damage); + wrapped.damage(Math.min(Math.max(1, damage), max - 1)); }); // set appearance Optional.ofNullable(config.appearance(realWater)).ifPresent(wrapped::customModelData); diff --git a/gradle.properties b/gradle.properties index 494b154..39ee797 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.11 +project_version=3.6.12 config_version=41 project_group=net.momirealms