summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrakenied <Krakenied1@gmail.com>2023-07-09 11:22:30 +0200
committerKrakenied <Krakenied1@gmail.com>2023-08-09 02:21:40 +0200
commit0d8165957cea3e8a15bd57b3e8f8bb9061cce2b0 (patch)
treed4fb9975f89ebf9e4b75c0d9638ecc6dc82cd60a
parentffa6b7dd4c35f406f2a676ce770aedda0f69401c (diff)
Some refactor
Use new constraints impl
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java12
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java30
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java9
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java34
4 files changed, 43 insertions, 42 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java
index 7415657f..dcca71de 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java
@@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
+import com.leonardobishop.quests.bukkit.util.constraint.TaskConstraintSet;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -23,13 +24,16 @@ public abstract class BucketInteractionTaskType extends BukkitTaskType {
}
public void onBucket(Player player, Material bucket, BukkitQuestsPlugin plugin) {
- if (!player.isOnline() || player.hasMetadata("NPC") || bucket == null) return;
+ if (player.hasMetadata("NPC")) {
+ return;
+ }
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
+ if (qPlayer == null) {
+ return;
+ }
- if (qPlayer == null) return;
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player.getPlayer(), qPlayer, this, TaskConstraintSet.ALL)) {
Quest quest = pendingTask.quest();
Task task = pendingTask.task();
TaskProgress taskProgress = pendingTask.taskProgress();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java
index d3ffe0a3..37019c8d 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java
@@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
+import com.leonardobishop.quests.bukkit.util.constraint.TaskConstraintSet;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -29,22 +30,24 @@ public final class DealDamageTaskType extends BukkitTaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onDamage(EntityDamageByEntityEvent event) {
- if (!(event.getDamager() instanceof Player)) {
+ final Entity damager = event.getDamager();
+ if (!(damager instanceof Player player)) {
return;
}
- Player player = (Player) event.getDamager();
- Entity entity = event.getEntity();
- double damage = event.getDamage();
-
- if (player.hasMetadata("NPC")) return;
+ if (player.hasMetadata("NPC")) {
+ return;
+ }
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
if (qPlayer == null) {
return;
}
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Entity entity = event.getEntity();
+ double damage = event.getDamage();
+
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this, TaskConstraintSet.ALL)) {
Quest quest = pendingTask.quest();
Task task = pendingTask.task();
TaskProgress taskProgress = pendingTask.taskProgress();
@@ -52,20 +55,19 @@ public final class DealDamageTaskType extends BukkitTaskType {
super.debug("Player damaged " + entity.getType() + " for " + damage, quest.getId(), task.getId(), player.getUniqueId());
boolean allowOnlyCreatures = TaskUtils.getConfigBoolean(task, "allow-only-creatures", true);
- if (allowOnlyCreatures && !(event.getEntity() instanceof Creature)) {
+ if (allowOnlyCreatures && !(entity instanceof Creature)) {
super.debug(entity.getType() + " is not a creature but allow-only-creatures is true, continuing...", quest.getId(), task.getId(), player.getUniqueId());
continue;
}
- double progressDamage = TaskUtils.getDecimalTaskProgress(taskProgress);
- int damageNeeded = (int) task.getConfigValue("amount");
+ int amount = (int) task.getConfigValue("amount");
+ double progress = Math.min(amount, TaskUtils.getDecimalTaskProgress(taskProgress) + damage);
- taskProgress.setProgress(progressDamage + damage);
- super.debug("Updating task progress (now " + (progressDamage + damage) + ")", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setProgress(progress);
+ super.debug("Updating task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
- if (((double) taskProgress.getProgress()) >= (double) damageNeeded) {
+ if (progress >= amount) {
super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setProgress(damageNeeded);
taskProgress.setCompleted(true);
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java
index b786906a..f150327d 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java
@@ -49,13 +49,15 @@ public final class DistancefromTaskType extends BukkitTaskType {
// }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onMove(PlayerMoveEvent event) {
- if (event.getFrom().getBlockX() == event.getTo().getBlockX() && event.getFrom().getBlockZ() == event.getTo().getBlockZ()) {
+ public void onPlayerMove(PlayerMoveEvent event) {
+ if (event.getFrom().getBlockX() == event.getTo().getBlockX() && event.getFrom().getBlockY() == event.getTo().getBlockY() && event.getFrom().getBlockZ() == event.getTo().getBlockZ()) {
return;
}
- if (event.getPlayer().hasMetadata("NPC")) return;
Player player = event.getPlayer();
+ if (player.hasMetadata("NPC")) {
+ return;
+ }
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
if (qPlayer == null) {
@@ -93,5 +95,4 @@ public final class DistancefromTaskType extends BukkitTaskType {
}
}
}
-
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java
index aa4709e9..a906298f 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java
@@ -3,11 +3,13 @@ package com.leonardobishop.quests.bukkit.tasktype.type;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
+import com.leonardobishop.quests.bukkit.util.constraint.TaskConstraintSet;
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.AnimalTamer;
+import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -28,39 +30,32 @@ public final class TamingTaskType extends BukkitTaskType {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityTame(EntityTameEvent event) {
- if (!(event.getOwner() instanceof Player)) {
+ final AnimalTamer tamer = event.getOwner();
+ if (!(tamer instanceof Player player)) {
return;
}
- Player player = (Player) event.getOwner();
-
- if (player.hasMetadata("NPC")) return;
+ if (player.hasMetadata("NPC")) {
+ return;
+ }
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
if (qPlayer == null) {
return;
}
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ final Entity entity = event.getEntity();
+
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player.getPlayer(), qPlayer, this, TaskConstraintSet.ALL)) {
Quest quest = pendingTask.quest();
Task task = pendingTask.task();
TaskProgress taskProgress = pendingTask.taskProgress();
super.debug("Played tamed entity", quest.getId(), task.getId(), player.getUniqueId());
- if (task.hasConfigKey("mob")) {
- EntityType entityType;
- try {
- entityType = EntityType.valueOf((String) task.getConfigValue("mob"));
- } catch (IllegalArgumentException ex) {
- super.debug("Invalid entity in configuration, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- continue;
- }
-
- if (event.getEntity().getType() != entityType) {
- super.debug("Tamed entity is not the correct type, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- continue;
- }
+ if (!TaskUtils.matchEntity(this, pendingTask, entity, player.getUniqueId())) {
+ super.debug("Continuing...", quest.getId(), task.getId(), player.getUniqueId());
+ continue;
}
int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
@@ -74,5 +69,4 @@ public final class TamingTaskType extends BukkitTaskType {
}
}
}
-
}