aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java/com/leonardobishop
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java/com/leonardobishop')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler21.java31
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java5
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java9
7 files changed, 55 insertions, 8 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 a08fb4f0..eb5a2cf0 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -42,6 +42,7 @@ import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHand
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler16;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler17;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler20;
+import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler21;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler8;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler9;
import com.leonardobishop.quests.bukkit.hook.wildstacker.AbstractWildStackerHook;
@@ -358,7 +359,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
case 12, 13, 14, 15 -> new VersionSpecificHandler12();
case 16 -> new VersionSpecificHandler16();
case 17, 18, 19 -> new VersionSpecificHandler17();
- default -> new VersionSpecificHandler20();
+ case 20 -> new VersionSpecificHandler20();
+ default -> new VersionSpecificHandler21();
};
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
index ec0142b2..7aba3481 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
@@ -46,10 +46,8 @@ import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
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 2f1cee23..f6f5b628 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
@@ -7,6 +7,7 @@ import org.bukkit.entity.Camel;
import org.bukkit.entity.Donkey;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Goat;
+import org.bukkit.entity.HappyGhast;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Llama;
import org.bukkit.entity.Mule;
@@ -66,6 +67,13 @@ public interface VersionSpecificHandler {
boolean isPlayerOnDonkey(Player player);
/**
+ * Happy Ghasts were introduced in {@code 1.21.6}.
+ *
+ * @see HappyGhast
+ */
+ boolean isPlayerOnHappyGhast(Player player);
+
+ /**
* Horses were introduced in {@code 1.6.1}.
*
* <p>
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 d4cb1350..b6cb6660 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
@@ -1,7 +1,7 @@
package com.leonardobishop.quests.bukkit.hook.versionspecific;
-import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
+import org.bukkit.entity.Strider;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.SmithItemEvent;
import org.bukkit.inventory.EquipmentSlot;
@@ -17,7 +17,7 @@ public class VersionSpecificHandler16 extends VersionSpecificHandler12 implement
@Override
public boolean isPlayerOnStrider(Player player) {
- return player.getVehicle() != null && player.getVehicle().getType() == EntityType.STRIDER;
+ return player.getVehicle() instanceof Strider;
}
@Override
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler21.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler21.java
new file mode 100644
index 00000000..ba9b47ce
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler21.java
@@ -0,0 +1,31 @@
+package com.leonardobishop.quests.bukkit.hook.versionspecific;
+
+import com.leonardobishop.quests.bukkit.util.CompatUtils;
+import org.bukkit.entity.HappyGhast;
+import org.bukkit.entity.Player;
+
+import java.util.function.Predicate;
+
+public class VersionSpecificHandler21 extends VersionSpecificHandler20 implements VersionSpecificHandler {
+
+ // Introduced in 1.21.6
+ private static final Predicate<Player> HAPPY_GHAST_PREDICATE;
+
+ static {
+ if (CompatUtils.classExists("org.bukkit.entity.HappyGhast")) {
+ HAPPY_GHAST_PREDICATE = player -> player.getVehicle() instanceof HappyGhast;
+ } else {
+ HAPPY_GHAST_PREDICATE = player -> Boolean.FALSE;
+ }
+ }
+
+ @Override
+ public int getMinecraftVersion() {
+ return 21;
+ }
+
+ @Override
+ public boolean isPlayerOnHappyGhast(Player player) {
+ return HAPPY_GHAST_PREDICATE.test(player);
+ }
+}
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 1ee9a989..74e7deb9 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
@@ -40,6 +40,11 @@ public class VersionSpecificHandler8 implements VersionSpecificHandler {
return player.getVehicle() instanceof Horse horse && horse.getVariant() == Horse.Variant.DONKEY;
}
+ @Override
+ public boolean isPlayerOnHappyGhast(Player player) {
+ return false;
+ }
+
@SuppressWarnings("deprecation")
@Override
public boolean isPlayerOnHorse(Player player) {
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 137189de..93191d71 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
@@ -9,7 +9,10 @@ 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.Location;
-import org.bukkit.entity.*;
+import org.bukkit.entity.Boat;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Pig;
+import org.bukkit.entity.Player;
import org.bukkit.entity.minecart.RideableMinecart;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -119,7 +122,7 @@ public final class WalkingTaskType extends BukkitTaskType {
case BOAT -> player.getVehicle() instanceof Boat;
case CAMEL -> this.plugin.getVersionSpecificHandler().isPlayerOnCamel(player);
case DONKEY -> this.plugin.getVersionSpecificHandler().isPlayerOnDonkey(player);
- case GHAST -> player.getVehicle() instanceof Ghast;
+ case HAPPY_GHAST -> this.plugin.getVersionSpecificHandler().isPlayerOnHappyGhast(player);
case HORSE -> this.plugin.getVersionSpecificHandler().isPlayerOnHorse(player);
case LLAMA -> this.plugin.getVersionSpecificHandler().isPlayerOnLlama(player);
case MINECART -> player.getVehicle() instanceof RideableMinecart;
@@ -171,7 +174,7 @@ public final class WalkingTaskType extends BukkitTaskType {
BOAT,
CAMEL,
DONKEY,
- GHAST,
+ HAPPY_GHAST,
HORSE,
LLAMA,
MINECART,