diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-09-12 20:22:02 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-09-12 20:22:02 +0100 |
| commit | e0cee4cff980e27ae78089fe9e4271d3218670b9 (patch) | |
| tree | aab4a90a199c00ef2cf3ad04afc533258b59dbb2 /bukkit/src | |
| parent | df222745d02e26a0605fcf6191a0d16001d15c69 (diff) | |
Add modes of transport (closes #269)
Diffstat (limited to 'bukkit/src')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java | 28 |
1 files changed, 28 insertions, 0 deletions
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 0ba7bf74..20ec97f3 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,6 +9,8 @@ import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; 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.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -64,6 +66,11 @@ public final class WalkingTaskType extends BukkitTaskType { continue; } + if (task.getConfigValue("mode") != null + && !validateTransportMethod(player, task.getConfigValue("mode").toString())) { + continue; + } + int distanceNeeded = (int) task.getConfigValue("distance"); int progressDistance; @@ -83,4 +90,25 @@ public final class WalkingTaskType extends BukkitTaskType { } } + private boolean validateTransportMethod(Player player, String mode) { + switch (mode.toLowerCase()) { + case "boat": + return player.getVehicle() != null && player.getVehicle().getType() == EntityType.BOAT; + case "horse": + return player.getVehicle() != null && player.getVehicle().getType() == EntityType.HORSE; + case "pig": + return player.getVehicle() != null && player.getVehicle().getType() == EntityType.PIG; + case "sneaking": + return player.isSneaking(); + case "walking": + return !player.isSprinting(); + case "running": + return player.isSprinting(); + case "swimming": + return player.isSwimming(); + default: + return false; + } + } + } |
