aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java/com')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java16
1 files changed, 12 insertions, 4 deletions
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 9a711ce9..b49d2908 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
@@ -9,6 +9,7 @@ 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.Creature;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -33,17 +34,18 @@ public final class DealDamageTaskType extends BukkitTaskType {
ArrayList<ConfigProblem> problems = new ArrayList<>();
if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
TaskUtils.configValidateInt(root + ".amount", config.get("amount"), problems, false, true, "amount");
+ TaskUtils.configValidateBoolean(root + ".allow-only-creatures", config.get("allow-only-creatures"), problems, true, "allow-only-creatures");
return problems;
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onDamage(EntityDamageByEntityEvent e) {
- if (!(e.getDamager() instanceof Player)) {
+ public void onDamage(EntityDamageByEntityEvent event) {
+ if (!(event.getDamager() instanceof Player)) {
return;
}
- Player player = (Player) e.getDamager();
- double damage = e.getDamage();
+ Player player = (Player) event.getDamager();
+ double damage = event.getDamage();
if (player.hasMetadata("NPC")) return;
@@ -65,6 +67,12 @@ public final class DealDamageTaskType extends BukkitTaskType {
continue;
}
+ // Do not count non-creatures damage (e.g. ArmorStands)
+ boolean allowOnlyCreatures = (boolean) task.getConfigValue("allow-only-creatures", true);
+ if (allowOnlyCreatures && !(event.getEntity() instanceof Creature)) {
+ continue;
+ }
+
double progressDamage;
int damageNeeded = (int) task.getConfigValue("amount");