diff options
Diffstat (limited to 'src/main/java')
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; } |
