diff options
Diffstat (limited to 'bukkit/src/main/java')
6 files changed, 36 insertions, 7 deletions
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 45e30454..f902395e 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -18,6 +18,7 @@ import com.leonardobishop.quests.bukkit.hook.title.Title_Bukkit; import com.leonardobishop.quests.bukkit.hook.title.Title_BukkitNoTimings; import com.leonardobishop.quests.bukkit.hook.title.Title_Other; import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler; +import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler11; import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler16; import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler8; import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler9; @@ -222,7 +223,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { if (version <= 8) { versionSpecificHandler = new VersionSpecificHandler8(); } else switch (version) { - case 9, 10, 11, 12, 13, 14, 15 -> versionSpecificHandler = new VersionSpecificHandler9(); + case 9, 10 -> versionSpecificHandler = new VersionSpecificHandler9(); + case 11, 12, 13, 14, 15 -> versionSpecificHandler = new VersionSpecificHandler11(); default -> versionSpecificHandler = new VersionSpecificHandler16(); } 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 f1b750cd..50d9b8c6 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 @@ -14,6 +14,8 @@ public interface VersionSpecificHandler { boolean isPlayerOnStrider(Player player); + boolean isPlayerOnHorse(Player player); + boolean isOffHandSwap(ClickType clickType); @SuppressWarnings("BooleanMethodIsAlwaysInverted") diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler11.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler11.java new file mode 100644 index 00000000..4772a521 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler11.java @@ -0,0 +1,17 @@ +package com.leonardobishop.quests.bukkit.hook.versionspecific; + +import org.bukkit.entity.AbstractHorse; +import org.bukkit.entity.Player; + +public class VersionSpecificHandler11 extends VersionSpecificHandler9 implements VersionSpecificHandler { + + @Override + public int getMinecraftVersion() { + return 11; + } + + @Override + public boolean isPlayerOnHorse(Player player) { + return player.getVehicle() instanceof AbstractHorse; + } +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java index 5e82a499..6a9a4e0d 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java @@ -4,7 +4,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; -public class VersionSpecificHandler16 extends VersionSpecificHandler9 implements VersionSpecificHandler { +public class VersionSpecificHandler16 extends VersionSpecificHandler11 implements VersionSpecificHandler { @Override public int getMinecraftVersion() { 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 386f692d..d3cc24c5 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.entity.Horse; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; @@ -25,6 +26,11 @@ public class VersionSpecificHandler8 implements VersionSpecificHandler { } @Override + public boolean isPlayerOnHorse(Player player) { + return player.getVehicle() instanceof Horse; + } + + @Override public boolean isOffHandSwap(ClickType clickType) { return false; } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java index f7bf0e42..3bcc5f56 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java @@ -7,7 +7,9 @@ import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; -import org.bukkit.entity.EntityType; +import org.bukkit.entity.Boat; +import org.bukkit.entity.Minecart; +import org.bukkit.entity.Pig; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -82,10 +84,10 @@ public final class WalkingTaskType extends BukkitTaskType { private boolean validateMode(Player player, String mode) { return switch (mode) { - case "boat" -> player.getVehicle() != null && player.getVehicle().getType() == EntityType.BOAT; - case "horse" -> player.getVehicle() != null && player.getVehicle().getType() == EntityType.HORSE; - case "pig" -> player.getVehicle() != null && player.getVehicle().getType() == EntityType.PIG; - case "minecart" -> player.getVehicle() != null && player.getVehicle().getType() == EntityType.MINECART; + case "boat" -> player.getVehicle() instanceof Boat; + case "horse" -> plugin.getVersionSpecificHandler().isPlayerOnHorse(player); + case "pig" -> player.getVehicle() instanceof Pig; + case "minecart" -> player.getVehicle() instanceof Minecart; case "strider" -> plugin.getVersionSpecificHandler().isPlayerOnStrider(player); case "sneaking" -> // sprinting does not matter player.isSneaking() && !player.isSwimming() && !player.isFlying() |
