summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/leonardobishop/quests/quest/tasktype/type/MobkillingCertainTaskType.java24
-rw-r--r--src/main/java/com/leonardobishop/quests/quest/tasktype/type/dependent/MythicMobsKillingType.java6
2 files changed, 25 insertions, 5 deletions
diff --git a/src/main/java/com/leonardobishop/quests/quest/tasktype/type/MobkillingCertainTaskType.java b/src/main/java/com/leonardobishop/quests/quest/tasktype/type/MobkillingCertainTaskType.java
index 7919cc75..da7bd5cb 100644
--- a/src/main/java/com/leonardobishop/quests/quest/tasktype/type/MobkillingCertainTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quest/tasktype/type/MobkillingCertainTaskType.java
@@ -11,6 +11,8 @@ import com.leonardobishop.quests.quest.tasktype.ConfigValue;
import com.leonardobishop.quests.quest.tasktype.TaskType;
import com.leonardobishop.quests.quest.tasktype.TaskUtils;
import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@@ -89,7 +91,6 @@ public final class MobkillingCertainTaskType extends TaskType {
}
String configEntity = (String) task.getConfigValue("mob");
- String configName = (String) task.getConfigValue("name");
EntityType entity;
try {
@@ -98,11 +99,26 @@ public final class MobkillingCertainTaskType extends TaskType {
continue;
}
+ Object configName = task.getConfigValues().containsKey("name") ? task.getConfigValue("name") : task.getConfigValue("names");
+
if (configName != null) {
- configName = ChatColor.translateAlternateColorCodes('&', configName);
- if (mob.getCustomName() == null || !mob.getCustomName().equals(configName)) {
- continue;
+ List<String> configNames = new ArrayList<>();
+ if (configName instanceof List) {
+ configNames.addAll((List) configName);
+ } else {
+ configNames.add(String.valueOf(configName));
+ }
+
+ boolean validName = false;
+ for (String name : configNames) {
+ name = ChatColor.translateAlternateColorCodes('&', name);
+ if (mob.getCustomName() == null || !mob.getCustomName().equals(name)) {
+ validName = true;
+ break;
+ }
}
+
+ if (!validName) continue;
}
if (mob.getType() != entity) {
diff --git a/src/main/java/com/leonardobishop/quests/quest/tasktype/type/dependent/MythicMobsKillingType.java b/src/main/java/com/leonardobishop/quests/quest/tasktype/type/dependent/MythicMobsKillingType.java
index 74b870d9..995a1345 100644
--- a/src/main/java/com/leonardobishop/quests/quest/tasktype/type/dependent/MythicMobsKillingType.java
+++ b/src/main/java/com/leonardobishop/quests/quest/tasktype/type/dependent/MythicMobsKillingType.java
@@ -28,6 +28,7 @@ public final class MythicMobsKillingType extends TaskType {
super("mythicmobs_killing", TaskUtils.TASK_ATTRIBUTION_STRING, "Kill a set amount of a MythicMobs entity.");
this.creatorConfigValues.add(new ConfigValue("amount", true, "Amount of mobs to be killed."));
this.creatorConfigValues.add(new ConfigValue("name", true, "The 'internal name' of the MythicMob."));
+ this.creatorConfigValues.add(new ConfigValue("min-level", true, "The minimum level for the MythicMob."));
}
@Override
@@ -36,6 +37,7 @@ public final class MythicMobsKillingType extends TaskType {
TaskUtils.configValidateExists(root + ".name", config.get("name"), problems, "name", super.getType());
if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
TaskUtils.configValidateInt(root + ".amount", config.get("amount"), problems, false, true, "amount");
+ TaskUtils.configValidateInt(root + ".min-level", config.get("min-level"), problems, true, true, "min-level");
return problems;
}
@@ -58,6 +60,7 @@ public final class MythicMobsKillingType extends TaskType {
}
String mobName = event.getMobType().getInternalName();
+ double level = event.getMobLevel();
QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(killer.getUniqueId());
if (qPlayer == null) {
@@ -78,8 +81,9 @@ public final class MythicMobsKillingType extends TaskType {
}
String configName = (String) task.getConfigValue("name");
+ int minMobLevel = (int) task.getConfigValue("min-level", -1);
- if (!mobName.equals(configName)) {
+ if (!mobName.equals(configName) || level < minMobLevel) {
return;
}