diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-04-05 02:26:19 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-04-05 02:26:19 +0100 |
| commit | 8182a7793f31cc7acde90dee2493a59da2577484 (patch) | |
| tree | 8ed0a64d3b3f2c466d14e9af71d038f5f04e90cc /bukkit | |
| parent | c9d3f64619172d6fb34911b295b3ee611b298891 (diff) | |
Start work on version specific handlers (closes #340)
Diffstat (limited to 'bukkit')
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; } |
