From 34a84d74cb32ae9ec1f0a3e6c14a198d077844a3 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Fri, 24 Mar 2023 14:17:35 +0100 Subject: Fix CaveVinesPlant not being handled properly --- .../quests/bukkit/BukkitQuestsPlugin.java | 3 ++- .../hook/versionspecific/VersionSpecificHandler.java | 3 +++ .../hook/versionspecific/VersionSpecificHandler17.java | 17 +++++++++++++++++ .../hook/versionspecific/VersionSpecificHandler8.java | 6 ++++++ .../quests/bukkit/tasktype/type/FarmingTaskType.java | 2 +- 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler17.java (limited to 'bukkit/src/main') diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java index 0093e265..8146d177 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -224,7 +224,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { } else switch (version) { case 9, 10 -> versionSpecificHandler = new VersionSpecificHandler9(); case 11, 12, 13, 14, 15 -> versionSpecificHandler = new VersionSpecificHandler11(); - default -> versionSpecificHandler = new VersionSpecificHandler16(); + case 16 -> versionSpecificHandler = new VersionSpecificHandler16(); + default -> versionSpecificHandler = new VersionSpecificHandler17(); } questsConfig.setItemGetter(itemGetter); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java index ecd509b4..480d0d12 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java @@ -1,5 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.versionspecific; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; @@ -26,5 +27,7 @@ public interface VersionSpecificHandler { @SuppressWarnings("BooleanMethodIsAlwaysInverted") boolean isHotbarMoveAndReaddSupported(); + boolean isCaveVinesPlantWithBerries(BlockData blockData); + ItemStack getItemInMainHand(Player player); } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler17.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler17.java new file mode 100644 index 00000000..187f70af --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler17.java @@ -0,0 +1,17 @@ +package com.leonardobishop.quests.bukkit.hook.versionspecific; + +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.type.CaveVinesPlant; + +public class VersionSpecificHandler17 extends VersionSpecificHandler16 implements VersionSpecificHandler { + + @Override + public int getMinecraftVersion() { + return 17; + } + + @Override + public boolean isCaveVinesPlantWithBerries(BlockData blockData) { + return blockData instanceof CaveVinesPlant caveVinesPlant && caveVinesPlant.isBerries(); + } +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java index fbfc49c9..dc552ee6 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java @@ -1,5 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.versionspecific; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Horse; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; @@ -65,6 +66,11 @@ public class VersionSpecificHandler8 implements VersionSpecificHandler { return true; } + @Override + public boolean isCaveVinesPlantWithBerries(BlockData blockData) { + return false; + } + @SuppressWarnings("deprecation") @Override public ItemStack getItemInMainHand(Player player) { diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java index e636694d..bfe0457a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java @@ -50,7 +50,7 @@ public final class FarmingTaskType extends BukkitTaskType { } private void handle(Player player, Block block, BlockData blockData, String mode) { - if (!(blockData instanceof Ageable crop && crop.getAge() == crop.getMaximumAge())) { + if (!(blockData instanceof Ageable crop && crop.getAge() == crop.getMaximumAge() || plugin.getVersionSpecificHandler().isCaveVinesPlantWithBerries(blockData))) { return; } -- cgit v1.2.3-70-g09d2