aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2022-04-05 02:26:19 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2022-04-05 02:26:19 +0100
commit8182a7793f31cc7acde90dee2493a59da2577484 (patch)
tree8ed0a64d3b3f2c466d14e9af71d038f5f04e90cc /bukkit/src
parentc9d3f64619172d6fb34911b295b3ee611b298891 (diff)
Start work on version specific handlers (closes #340)
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java18
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java17
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java21
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler9.java21
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java6
6 files changed, 97 insertions, 0 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 b279cda8..50323255 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -17,6 +17,10 @@ import com.leonardobishop.quests.bukkit.hook.title.Title;
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.VersionSpecificHandler16;
+import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler8;
+import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler9;
import com.leonardobishop.quests.bukkit.item.ParsedQuestItem;
import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.item.QuestItemRegistry;
@@ -89,6 +93,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
private AbstractEssentialsHook essentialsHook;
private ItemGetter itemGetter;
private Title titleHandle;
+ private VersionSpecificHandler versionSpecificHandler;
private BukkitTask questAutoSaveTask;
private BukkitTask questQueuePollTask;
@@ -204,6 +209,15 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
} else {
itemGetter = new ItemGetterLatest();
}
+ // (version specific handler)
+ // TODO move above to version specific handlers
+ if (version <= 8) {
+ versionSpecificHandler = new VersionSpecificHandler8();
+ } else if (version <= 16) {
+ versionSpecificHandler = new VersionSpecificHandler9();
+ } else {
+ versionSpecificHandler = new VersionSpecificHandler16();
+ }
questsConfig.setItemGetter(itemGetter);
@@ -547,6 +561,10 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
return titleHandle;
}
+ public VersionSpecificHandler getVersionSpecificHandler() {
+ return versionSpecificHandler;
+ }
+
public QuestItemRegistry getQuestItemRegistry() {
return questItemRegistry;
}
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
new file mode 100644
index 00000000..4e3cdade
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler.java
@@ -0,0 +1,14 @@
+package com.leonardobishop.quests.bukkit.hook.versionspecific;
+
+import org.bukkit.entity.Player;
+
+//TODO move titles, itemgetter, other version specific shite in here
+public interface VersionSpecificHandler {
+
+ int getMinecraftVersion();
+
+ boolean isPlayerGliding(Player player);
+
+ boolean isPlayerOnStrider(Player player);
+
+}
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
new file mode 100644
index 00000000..b2b61070
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler16.java
@@ -0,0 +1,17 @@
+package com.leonardobishop.quests.bukkit.hook.versionspecific;
+
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Player;
+
+public class VersionSpecificHandler16 extends VersionSpecificHandler9 implements VersionSpecificHandler {
+
+ @Override
+ public int getMinecraftVersion() {
+ return 16;
+ }
+
+ @Override
+ public boolean isPlayerOnStrider(Player player) {
+ return player.getVehicle() != null && player.getVehicle().getType() == EntityType.STRIDER;
+ }
+}
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
new file mode 100644
index 00000000..7a094fbc
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler8.java
@@ -0,0 +1,21 @@
+package com.leonardobishop.quests.bukkit.hook.versionspecific;
+
+import org.bukkit.entity.Player;
+
+public class VersionSpecificHandler8 implements VersionSpecificHandler {
+
+ @Override
+ public int getMinecraftVersion() {
+ return 8;
+ }
+
+ @Override
+ public boolean isPlayerGliding(Player player) {
+ return false;
+ }
+
+ @Override
+ public boolean isPlayerOnStrider(Player player) {
+ return false;
+ }
+}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler9.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler9.java
new file mode 100644
index 00000000..8eff41f0
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/versionspecific/VersionSpecificHandler9.java
@@ -0,0 +1,21 @@
+package com.leonardobishop.quests.bukkit.hook.versionspecific;
+
+import org.bukkit.entity.Player;
+
+public class VersionSpecificHandler9 extends VersionSpecificHandler8 implements VersionSpecificHandler {
+
+ @Override
+ public int getMinecraftVersion() {
+ return 9;
+ }
+
+ @Override
+ public boolean isPlayerGliding(Player player) {
+ return player.isGliding();
+ }
+
+ @Override
+ public boolean isPlayerOnStrider(Player player) {
+ 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 20ec97f3..12efc322 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
@@ -98,6 +98,8 @@ public final class WalkingTaskType extends BukkitTaskType {
return player.getVehicle() != null && player.getVehicle().getType() == EntityType.HORSE;
case "pig":
return player.getVehicle() != null && player.getVehicle().getType() == EntityType.PIG;
+ case "minecard":
+ return player.getVehicle() != null && player.getVehicle().getType() == EntityType.MINECART;
case "sneaking":
return player.isSneaking();
case "walking":
@@ -106,6 +108,10 @@ public final class WalkingTaskType extends BukkitTaskType {
return player.isSprinting();
case "swimming":
return player.isSwimming();
+ case "elytra":
+ return plugin.getVersionSpecificHandler().isPlayerGliding(player);
+ case "strider":
+ return plugin.getVersionSpecificHandler().isPlayerOnStrider(player);
default:
return false;
}