aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java12
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/BukkitTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java12
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java12
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BucketInteractionTaskType.java27
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingCertainTaskType.java146
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java73
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CommandTaskType.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java17
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java20
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DealDamageTaskType.java16
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/DistancefromTaskType.java23
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingCertainTaskType.java155
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java84
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingCertainTaskType.java114
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java77
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java25
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java16
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningCertainTaskType.java161
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java86
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java158
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java117
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PositionTaskType.java21
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingCertainTaskType.java131
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java87
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/TamingTaskType.java25
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/WalkingTaskType.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java27
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java18
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java12
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java17
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlaceholderAPIEvaluateTaskType.java39
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyTaskType.java (renamed from bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyCertainTaskType.java)28
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellTaskType.java (renamed from bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellCertainTaskType.java)28
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java15
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java16
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java124
51 files changed, 333 insertions, 1835 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index 37735054..48a137cb 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -290,21 +290,15 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
taskTypeManager.registerTaskType(new MiningTaskType(this));
- taskTypeManager.registerTaskType(new MiningCertainTaskType(this));
taskTypeManager.registerTaskType(new BuildingTaskType(this));
- taskTypeManager.registerTaskType(new BuildingCertainTaskType(this));
taskTypeManager.registerTaskType(new MobkillingTaskType(this));
- taskTypeManager.registerTaskType(new MobkillingCertainTaskType(this));
taskTypeManager.registerTaskType(new PlayerkillingTaskType(this));
taskTypeManager.registerTaskType(new FishingTaskType(this));
- taskTypeManager.registerTaskType(new FishingCertainTaskType(this));
taskTypeManager.registerTaskType(new SmeltingTaskType(this));
- taskTypeManager.registerTaskType(new SmeltingCertainTaskType(this));
taskTypeManager.registerTaskType(new InventoryTaskType(this));
taskTypeManager.registerTaskType(new ConsumeTaskType(this));
taskTypeManager.registerTaskType(new WalkingTaskType(this));
taskTypeManager.registerTaskType(new TamingTaskType(this));
- taskTypeManager.registerTaskType(new TamingTaskType(this));
taskTypeManager.registerTaskType(new MilkingTaskType(this));
taskTypeManager.registerTaskType(new ShearingTaskType(this));
taskTypeManager.registerTaskType(new PositionTaskType(this));
@@ -325,7 +319,6 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
try {
Class.forName("org.bukkit.block.data.Ageable");
taskTypeManager.registerTaskType(new FarmingTaskType(this));
- taskTypeManager.registerTaskType(new FarmingCertainTaskType(this));
} catch (ClassNotFoundException ignored) { } // server version cannot support task type
if (Bukkit.getPluginManager().isPluginEnabled("ASkyBlock")) {
taskTypeManager.registerTaskType(new ASkyBlockLevelTaskType(this));
@@ -360,8 +353,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
if (Bukkit.getPluginManager().isPluginEnabled("ShopGUIPlus")) {
// not tested
- taskTypeManager.registerTaskType(new ShopGUIPlusBuyCertainTaskType(this));
- taskTypeManager.registerTaskType(new ShopGUIPlusSellCertainTaskType(this));
+ taskTypeManager.registerTaskType(new ShopGUIPlusBuyTaskType(this));
+ taskTypeManager.registerTaskType(new ShopGUIPlusSellTaskType(this));
}
if (Bukkit.getPluginManager().isPluginEnabled("FabledSkyblock")) {
// not tested
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
index ba23d9c8..efd4f7f0 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java
@@ -199,8 +199,9 @@ public class BukkitQuestsLoader implements QuestsLoader {
}
// check the tasks
- TaskType t = taskTypeManager.getTaskType(taskType);
- if (t != null) {
+ String resolvedTaskTypeName = taskTypeManager.resolveTaskTypeName(taskType);
+ if (resolvedTaskTypeName != null) {
+ TaskType t = taskTypeManager.getTaskType(resolvedTaskTypeName);
HashMap<String, Object> configValues = new HashMap<>();
for (String key : config.getConfigurationSection(taskRoot).getKeys(false)) {
configValues.put(key, config.get(taskRoot + "." + key));
@@ -310,8 +311,9 @@ public class BukkitQuestsLoader implements QuestsLoader {
for (String taskId : config.getConfigurationSection("tasks").getKeys(false)) {
String taskRoot = "tasks." + taskId;
String taskType = config.getString(taskRoot + ".type");
+ String resolvedTaskTypeName = taskTypeManager.resolveTaskTypeName(taskType);
- Task task = new Task(taskId, taskType);
+ Task task = new Task(taskId, resolvedTaskTypeName);
for (String key : config.getConfigurationSection(taskRoot).getKeys(false)) {
task.addConfigValue(key, config.get(taskRoot + "." + key));
@@ -490,7 +492,9 @@ public class BukkitQuestsLoader implements QuestsLoader {
}
if (!match)
configProblems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_TASK_REFERENCE.getDescription(parts[0]), location));
+ ConfigProblemDescriptions.UNKNOWN_TASK_REFERENCE.getDescription(parts[0]),
+ ConfigProblemDescriptions.UNKNOWN_TASK_REFERENCE.getExtendedDescription(parts[0]),
+ location));
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/BukkitTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/BukkitTaskType.java
index 8f4078a2..179b39ac 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/BukkitTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/BukkitTaskType.java
@@ -10,6 +10,10 @@ public abstract class BukkitTaskType extends TaskType implements Listener {
protected BukkitTaskTypeManager taskTypeManager;
+ public BukkitTaskType(@NotNull String type, String author, String description, String... aliases) {
+ super(type, author, description, aliases);
+ }
+
public BukkitTaskType(@NotNull String type, String author, String description) {
super(type, author, description);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java
index 3a91ffb1..cbafca32 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BreedingTaskType.java
@@ -3,7 +3,6 @@ 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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -14,10 +13,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
public final class BreedingTaskType extends BukkitTaskType {
@@ -32,14 +28,6 @@ public final class BreedingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBreed(CreatureSpawnEvent e) {
if (!e.getSpawnReason().equals(SpawnReason.BREEDING)) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java
index 03550421..3939b09b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BrewingTaskType.java
@@ -3,7 +3,6 @@ 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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -17,11 +16,8 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.BrewEvent;
import org.bukkit.event.player.PlayerInteractEvent;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.UUID;
public final class BrewingTaskType extends BukkitTaskType {
@@ -37,14 +33,6 @@ public final class BrewingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
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 05b2ccd6..afb7e71e 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,8 +3,6 @@ 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.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -13,10 +11,6 @@ import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
public abstract class BucketInteractionTaskType extends BukkitTaskType {
public BucketInteractionTaskType(@NotNull String type, String author, String description) {
@@ -28,27 +22,6 @@ public abstract class BucketInteractionTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "bucket"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (config.get("bucket") == null) {
-// TaskUtils.configValidateExists(root + ".bucket", config.get("bucket"), problems, "bucket", super.getType());
-// } else {
-// String configBlock = config.get("bucket").toString();
-//
-// String[] split = configBlock.split(":");
-// if (Material.getMaterial(String.valueOf(split[0])) == null) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(configBlock),
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(configBlock),
-// root + ".bucket"));
-// }
-// }
-// if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
-// TaskUtils.configValidateInt(root + ".amount", config.get("amount"), problems, false, true, "amount");
- return problems;
- }
-
public void onBucket(Player player, Material bucket, BukkitQuestsPlugin plugin) {
if (!player.isOnline() || player.hasMetadata("NPC") || bucket == null) return;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingCertainTaskType.java
deleted file mode 100644
index 9fab306c..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingCertainTaskType.java
+++ /dev/null
@@ -1,146 +0,0 @@
-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.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
-import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.block.BlockPlaceEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class BuildingCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
-
- public BuildingCertainTaskType(BukkitQuestsPlugin plugin) {
- super("blockplacecertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Place a set amount of a specific block.");
- this.plugin = plugin;
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "block", "blocks"));
- super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "reverse-if-broken"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "use-similar-blocks"));
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
-// if (config.get("block") == null && config.get("blocks") == null) {
-// TaskUtils.configValidateExists(root + ".block", config.get("block"), problems, "block", super.getType());
-// } else {
-// Object configBlock;
-// String source;
-// if (config.containsKey("block")) {
-// source = "block";
-// } else {
-// source = "blocks";
-// }
-// configBlock = config.get(source);
-// List<String> checkBlocks = new ArrayList<>();
-// if (configBlock instanceof List) {
-// checkBlocks.addAll((List) configBlock);
-// } else {
-// checkBlocks.add(String.valueOf(configBlock));
-// }
-//
-// for (String materialName : checkBlocks) {
-// String[] split = materialName.split(":");
-// if (Material.getMaterial(String.valueOf(split[0])) == null) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(materialName),
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(materialName),
-// root + "." + source));
-// }
-// }
-// }
-// TaskUtils.configValidateBoolean(root + ".reverse-if-broken", config.get("reverse-if-broken"), problems, true,"reverse-if-broken");
-// TaskUtils.configValidateBoolean(root + ".use-similar-blocks", config.get("use-similar-blocks"), problems, true,"use-similar-blocks");
-// TaskUtils.configValidateInt(root + ".data", config.get("data"), problems, true,true, "data");
- return problems;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onBlockPlace(BlockPlaceEvent event) {
- if (event.getPlayer().hasMetadata("NPC")) return;
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- Player player = event.getPlayer();
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player placed block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
-
- if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- int blocksNeeded = (int) task.getConfigValue("amount");
-
- if (progress >= blocksNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setCompleted(true);
- }
- }
- }
- }
-
- // subtract if enabled
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onBlockBreak(BlockBreakEvent event) {
- if (event.getPlayer().hasMetadata("NPC")) return;
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- Player player = event.getPlayer();
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player mined block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
-
-
- if (task.getConfigValue("reverse-if-broken") != null && ((boolean) task.getConfigValue("reverse-if-placed"))) {
- super.debug("reverse-if-broken is enabled, checking block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
- int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
- taskProgress.setProgress(--progress);
- super.debug("Decrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
- }
- }
- }
- }
-
-
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java
index 192d53be..2fc5798b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/BuildingTaskType.java
@@ -3,35 +3,30 @@ 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.common.config.ConfigProblem;
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.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
+import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class BuildingTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
public BuildingTaskType(BukkitQuestsPlugin plugin) {
- super("blockplace", TaskUtils.TASK_ATTRIBUTION_STRING, "Place a set amount of blocks.");
+ super("blockplace", TaskUtils.TASK_ATTRIBUTION_STRING, "Place a set amount of a block.", "blockplacecertain");
this.plugin = plugin;
- }
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
+ super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
+ super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "reverse-if-broken"));
+ super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "use-similar-blocks"));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -43,23 +38,59 @@ public final class BuildingTaskType extends BukkitTaskType {
return;
}
+ Player player = event.getPlayer();
+
for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
Quest quest = pendingTask.quest();
Task task = pendingTask.task();
TaskProgress taskProgress = pendingTask.taskProgress();
- super.debug("Player placed block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+ super.debug("Player placed block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+
+ if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
+ int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
+ super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
+
+ int blocksNeeded = (int) task.getConfigValue("amount");
+
+ if (progress >= blocksNeeded) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setCompleted(true);
+ }
+ }
+ }
+ }
+
+ // subtract if enabled
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onBlockBreak(BlockBreakEvent event) {
+ if (event.getPlayer().hasMetadata("NPC")) return;
+
+ QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ if (qPlayer == null) {
+ return;
+ }
+
+ Player player = event.getPlayer();
- int brokenBlocksNeeded = (int) task.getConfigValue("amount");
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
+
+ super.debug("Player mined block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- if (progress >= brokenBlocksNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- taskProgress.setCompleted(true);
+ if (task.getConfigValue("reverse-if-broken") != null && ((boolean) task.getConfigValue("reverse-if-placed"))) {
+ super.debug("reverse-if-broken is enabled, checking block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+ if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
+ int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
+ taskProgress.setProgress(--progress);
+ super.debug("Decrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
+ }
}
}
}
+
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CommandTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CommandTaskType.java
index 19ac6af7..616d88d2 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CommandTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CommandTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,10 +11,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
public final class CommandTaskType extends BukkitTaskType {
@@ -31,14 +26,6 @@ public final class CommandTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "ignore-case"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// TaskUtils.configValidateExists(root + ".command", config.get("command"), problems, "command", super.getType());
-// TaskUtils.configValidateBoolean(root + ".ignore-case", config.get("ignore-case"), problems, true, "ignore-case", super.getType());
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR)
public void onCommand(PlayerCommandPreprocessEvent e) {
if (e.getPlayer().hasMetadata("NPC")) return;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java
index eb5aa5d0..a2359e36 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ConsumeTaskType.java
@@ -6,7 +6,6 @@ import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -15,11 +14,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerItemConsumeEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class ConsumeTaskType extends BukkitTaskType {
@@ -38,17 +32,6 @@ public final class ConsumeTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType()))
-// TaskUtils.configValidateItemStack(root + ".item", config.get("item"), problems, false, "item");
-// 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 + ".data", config.get("data"), problems, true, false, "data");
- return problems;
- }
-
- @Override
public void onReady() {
fixedQuestItemCache.clear();
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java
index 8c773db1..3076bf2a 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/CraftingTaskType.java
@@ -3,18 +3,14 @@ package com.leonardobishop.quests.bukkit.tasktype.type;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.bukkit.item.ParsedQuestItem;
import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -23,11 +19,6 @@ import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class CraftingTaskType extends BukkitTaskType {
@@ -47,17 +38,6 @@ public final class CraftingTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType()))
-// TaskUtils.configValidateItemStack(root + ".item", config.get("item"), problems, false, "item");
-// 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 + ".data", config.get("data"), problems, true, false, "data");
- return problems;
- }
-
- @Override
public void onReady() {
fixedQuestItemCache.clear();
}
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 4d2b7e89..d3ffe0a3 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,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,11 +13,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class DealDamageTaskType extends BukkitTaskType {
@@ -34,15 +27,6 @@ public final class DealDamageTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "allow-only-creatures"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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 event) {
if (!(event.getDamager() instanceof Player)) {
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 15f35a66..11529c84 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
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -16,11 +14,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerMoveEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class DistancefromTaskType extends BukkitTaskType {
@@ -40,21 +33,7 @@ public final class DistancefromTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "distance"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".x", config.get("x"), problems, "x", super.getType()))
-// TaskUtils.configValidateInt(root + ".x", config.get("x"), problems, false, false, "x");
-// if (TaskUtils.configValidateExists(root + ".y", config.get("y"), problems, "y", super.getType()))
-// TaskUtils.configValidateInt(root + ".y", config.get("y"), problems, false, false, "y");
-// if (TaskUtils.configValidateExists(root + ".z", config.get("z"), problems, "z", super.getType()))
-// TaskUtils.configValidateInt(root + ".z", config.get("z"), problems, false, false, "z");
-// if (TaskUtils.configValidateExists(root + ".distance", config.get("distance"), problems, "distance", super.getType()))
-// TaskUtils.configValidateInt(root + ".distance", config.get("distance"), problems, false, true, "distance");
- return problems;
- }
-
-// private HashMap<String, HashMap<String, Integer>> distanceSquaredCache = new HashMap<>();
+ // private HashMap<String, HashMap<String, Integer>> distanceSquaredCache = new HashMap<>();
//
// @Override
// public void onReady() {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java
index 975fe0b2..a9def444 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/EnchantingTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,11 +11,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.enchantment.EnchantItemEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class EnchantingTaskType extends BukkitTaskType {
@@ -31,14 +24,6 @@ public final class EnchantingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEnchant(EnchantItemEvent e) {
if (e.getEnchanter().hasMetadata("NPC")) return;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java
index 63867b26..63d5ea8b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ExpEarnTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,11 +11,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerExpChangeEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class ExpEarnTaskType extends BukkitTaskType {
@@ -31,14 +24,6 @@ public final class ExpEarnTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onExpEarn(PlayerExpChangeEvent e) {
Player player = e.getPlayer();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingCertainTaskType.java
deleted file mode 100644
index 282dc1ba..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingCertainTaskType.java
+++ /dev/null
@@ -1,155 +0,0 @@
-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.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
-import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.block.Block;
-import org.bukkit.block.data.Ageable;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class FarmingCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
-
- public FarmingCertainTaskType(BukkitQuestsPlugin plugin) {
- super("farmingcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Break or harvest a set amount of a certain crop.");
- this.plugin = plugin;
-
- try {
- Class.forName("org.bukkit.event.player.PlayerHarvestBlockEvent");
- plugin.getServer().getPluginManager().registerEvents(new FarmingCertainTaskType.HarvestBlockListener(), plugin);
- } catch (ClassNotFoundException ignored) { } // server version cannot support event
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "block", "blocks"));
- super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
-// if (config.get("block") == null && config.get("blocks") == null) {
-// TaskUtils.configValidateExists(root + ".block", config.get("block"), problems, "block", super.getType());
-// } else {
-// Object configBlock;
-// String source;
-// if (config.containsKey("block")) {
-// source = "block";
-// } else {
-// source = "blocks";
-// }
-// configBlock = config.get(source);
-// List<String> checkBlocks = new ArrayList<>();
-// if (configBlock instanceof List) {
-// checkBlocks.addAll((List) configBlock);
-// } else {
-// checkBlocks.add(String.valueOf(configBlock));
-// }
-//
-// for (String materialName : checkBlocks) {
-// if (Material.getMaterial(String.valueOf(materialName)) == null) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(materialName),
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(materialName),
-// root + "." + source));
-// }
-// }
-// }
- return problems;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onBlockBreak(BlockBreakEvent event) {
- handle(event.getPlayer(), event.getBlock(), "break");
- }
-
- private final class HarvestBlockListener implements Listener {
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onHarvestBlock(org.bukkit.event.player.PlayerHarvestBlockEvent event) {
- handle(event.getPlayer(), event.getHarvestedBlock(), "harvest");
- }
- }
-
- private void handle(Player player, Block block, String mode) {
- if (!(block.getState().getBlockData() instanceof Ageable)) {
- return;
- }
-
- Ageable crop = (Ageable) block.getState().getBlockData();
- if (crop.getAge() != crop.getMaximumAge()) {
- return;
- }
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player farmed crop " + crop.getMaterial() + " (mode = " + mode + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- if (task.getConfigValue("mode") != null
- && !mode.equalsIgnoreCase(task.getConfigValue("mode").toString())) {
- super.debug("Mode does not match required mode, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- continue;
- }
-
- if (matchBlock(task, quest, player, block)) {
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- int amount = (int) task.getConfigValue("amount");
-
- if (progress >= amount) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setCompleted(true);
- }
- }
- }
- }
-
- private boolean matchBlock(Task task, Quest quest, Player player, Block block) {
- Material material;
-
- List<String> checkBlocks = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("block") ? "block" : "blocks");
-
- for (String materialName : checkBlocks) {
- super.debug("Checking against '" + materialName + "'", quest.getId(), task.getId(), player.getUniqueId());
- material = Material.getMaterial(String.valueOf(materialName));
- Material blockType = block.getType();
-
- if (blockType == material) {
- super.debug("Type match", quest.getId(), task.getId(), player.getUniqueId());
- return true;
- } else {
- super.debug("Type mismatch", quest.getId(), task.getId(), player.getUniqueId());
- }
- }
- return false;
- }
-
-} \ No newline at end of file
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java
index 9b852439..ad8ac269 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FarmingTaskType.java
@@ -3,12 +3,11 @@ 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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
import org.bukkit.block.Block;
import org.bukkit.block.data.Ageable;
import org.bukkit.entity.Player;
@@ -16,10 +15,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
public final class FarmingTaskType extends BukkitTaskType {
@@ -27,24 +23,17 @@ public final class FarmingTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
public FarmingTaskType(BukkitQuestsPlugin plugin) {
- super("farming", TaskUtils.TASK_ATTRIBUTION_STRING, "Break or harvest a set amount of any crop.");
+ super("farming", TaskUtils.TASK_ATTRIBUTION_STRING, "Break or harvest a set amount of a crop.", "farmingcertain");
this.plugin = plugin;
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
-
try {
Class.forName("org.bukkit.event.player.PlayerHarvestBlockEvent");
plugin.getServer().getPluginManager().registerEvents(new FarmingTaskType.HarvestBlockListener(), plugin);
} catch (ClassNotFoundException ignored) { } // server version cannot support event
- }
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
+ super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -74,41 +63,54 @@ public final class FarmingTaskType extends BukkitTaskType {
return;
}
- for (Quest quest : super.getRegisteredQuests()) {
- if (qPlayer.hasStartedQuest(quest)) {
- QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
+
+ super.debug("Player farmed crop " + crop.getMaterial() + " (mode = " + mode + ")", quest.getId(), task.getId(), player.getUniqueId());
- for (Task task : quest.getTasksOfType(super.getType())) {
- if (!TaskUtils.validateWorld(player, task)) continue;
+ if (task.getConfigValue("mode") != null
+ && !mode.equalsIgnoreCase(task.getConfigValue("mode").toString())) {
+ super.debug("Mode does not match required mode, continuing...", quest.getId(), task.getId(), player.getUniqueId());
+ continue;
+ }
- TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
+ if (matchBlock(task, quest, player, block)) {
+ int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
+ super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
- if (taskProgress.isCompleted()) {
- continue;
- }
+ int amount = (int) task.getConfigValue("amount");
- if (task.getConfigValue("mode") != null
- && !mode.equalsIgnoreCase(task.getConfigValue("mode").toString())) {
- continue;
- }
+ if (progress >= amount) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setCompleted(true);
+ }
+ }
+ }
+ }
- int blocksNeeded = (int) task.getConfigValue("amount");
+ private boolean matchBlock(Task task, Quest quest, Player player, Block block) {
+ Material material;
- int progressBlocks;
- if (taskProgress.getProgress() == null) {
- progressBlocks = 0;
- } else {
- progressBlocks = (int) taskProgress.getProgress();
- }
+ List<String> checkBlocks = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("block") ? "block" : "blocks");
+ if (checkBlocks.isEmpty()) {
+ return true;
+ }
- taskProgress.setProgress(progressBlocks + 1);
+ for (String materialName : checkBlocks) {
+ super.debug("Checking against '" + materialName + "'", quest.getId(), task.getId(), player.getUniqueId());
+ material = Material.getMaterial(String.valueOf(materialName));
+ Material blockType = block.getType();
- if (((int) taskProgress.getProgress()) >= blocksNeeded) {
- taskProgress.setCompleted(true);
- }
- }
+ if (blockType == material) {
+ super.debug("Type match", quest.getId(), task.getId(), player.getUniqueId());
+ return true;
+ } else {
+ super.debug("Type mismatch", quest.getId(), task.getId(), player.getUniqueId());
}
}
+ return false;
}
} \ No newline at end of file
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingCertainTaskType.java
deleted file mode 100644
index 6c53899c..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingCertainTaskType.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package com.leonardobishop.quests.bukkit.tasktype.type;
-
-import com.google.common.collect.HashBasedTable;
-import com.google.common.collect.Table;
-import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.bukkit.item.QuestItem;
-import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
-import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
-import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.entity.Item;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerFishEvent;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class FishingCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
- private final Table<String, String, QuestItem> fixedQuestItemCache = HashBasedTable.create();
-
- public FishingCertainTaskType(BukkitQuestsPlugin plugin) {
- super("fishingcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Catch a set amount of a specific item from the sea.");
- this.plugin = plugin;
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "item"));
- super.addConfigValidator(TaskUtils.useItemStackConfigValidator(this, "item"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
- }
-
- @Override
- public void onReady() {
- fixedQuestItemCache.clear();
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType())) {
-// if (Material.getMaterial(String.valueOf(config.get("item"))) == null) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(config.get("item"))),
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(String.valueOf(config.get("item"))),
-// root + ".item.item"));
-// }
-// }
-// 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 + ".data", config.get("data"), problems, true, false, "data");
- return problems;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onFishCaught(PlayerFishEvent event) {
- if (event.getPlayer().hasMetadata("NPC")) return;
-
- if (event.getState() != PlayerFishEvent.State.CAUGHT_FISH) {
- return;
- }
-
- Player player = event.getPlayer();
- if (!(event.getCaught() instanceof Item caught)) {
- return;
- }
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- QuestItem qi;
- if ((qi = fixedQuestItemCache.get(quest.getId(), task.getId())) == null) {
- QuestItem fetchedItem = TaskUtils.getConfigQuestItem(task, "item", "data");
- fixedQuestItemCache.put(quest.getId(), task.getId(), fetchedItem);
- qi = fetchedItem;
- }
-
- super.debug("Player fished item of type " + caught.getItemStack().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- if (!qi.compareItemStack(caught.getItemStack())) {
- super.debug("Item does not match required item, continuing...", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- continue;
- }
-
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- int catchesNeeded = (int) task.getConfigValue("amount");
-
- if (progress >= catchesNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setCompleted(true);
- }
- }
- }
-
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java
index b2e7f861..81a8de07 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/FishingTaskType.java
@@ -1,42 +1,39 @@
package com.leonardobishop.quests.bukkit.tasktype.type;
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.Table;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
+import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerFishEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class FishingTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
+ private final Table<String, String, QuestItem> fixedQuestItemCache = HashBasedTable.create();
public FishingTaskType(BukkitQuestsPlugin plugin) {
- super("fishing", TaskUtils.TASK_ATTRIBUTION_STRING, "Catch a set amount of items from the sea.");
+ super("fishing", TaskUtils.TASK_ATTRIBUTION_STRING, "Catch a set amount of an item from the sea.", "fishingcertain");
this.plugin = plugin;
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useItemStackConfigValidator(this, "item"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
+ public void onReady() {
+ fixedQuestItemCache.clear();
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -46,47 +43,45 @@ public final class FishingTaskType extends BukkitTaskType {
if (event.getState() != PlayerFishEvent.State.CAUGHT_FISH) {
return;
}
-
-// Location hookLocation = event.getHook().getLocation().add(0, -1, 0);
-// if (!(hookLocation.getBlock().getType() == Material.WATER)) {
-// return;
-// }
Player player = event.getPlayer();
-
+ if (!(event.getCaught() instanceof Item caught)) {
+ return;
+ }
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(player.getUniqueId());
if (qPlayer == null) {
return;
}
- for (Quest quest : super.getRegisteredQuests()) {
- if (qPlayer.hasStartedQuest(quest)) {
- QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player, qPlayer, this)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
- for (Task task : quest.getTasksOfType(super.getType())) {
- if (!TaskUtils.validateWorld(player, task)) continue;
+ super.debug("Player fished item of type " + caught.getItemStack().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
-
- if (taskProgress.isCompleted()) {
- continue;
- }
+ if (task.hasConfigKey("item")) {
+ QuestItem qi;
+ if ((qi = fixedQuestItemCache.get(quest.getId(), task.getId())) == null) {
+ QuestItem fetchedItem = TaskUtils.getConfigQuestItem(task, "item", "data");
+ fixedQuestItemCache.put(quest.getId(), task.getId(), fetchedItem);
+ qi = fetchedItem;
+ }
- int catchesNeeded = (int) task.getConfigValue("amount");
+ if (!qi.compareItemStack(caught.getItemStack())) {
+ super.debug("Item does not match required item, continuing...", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+ continue;
+ }
+ }
- int progressCatches;
- if (taskProgress.getProgress() == null) {
- progressCatches = 0;
- } else {
- progressCatches = (int) taskProgress.getProgress();
- }
+ int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
+ super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setProgress(progressCatches + 1);
+ int catchesNeeded = (int) task.getConfigValue("amount");
- if (((int) taskProgress.getProgress()) >= catchesNeeded) {
- taskProgress.setCompleted(true);
- }
- }
+ if (progress >= catchesNeeded) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setCompleted(true);
}
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java
index 9fd9d38d..04de9ed6 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/InventoryTaskType.java
@@ -3,19 +3,14 @@ package com.leonardobishop.quests.bukkit.tasktype.type;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.bukkit.item.ParsedQuestItem;
import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -24,12 +19,6 @@ import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerBucketFillEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class InventoryTaskType extends BukkitTaskType {
@@ -55,20 +44,6 @@ public final class InventoryTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType()))
-// TaskUtils.configValidateItemStack(root + ".item", config.get("item"), problems, false, "item");
-// 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 + ".data", config.get("data"), problems, true, false, "data");
-// TaskUtils.configValidateBoolean(root + ".remove-items-when-complete", config.get("remove-items-when-complete"), problems, true, "remove-items-when-complete", super.getType());
-// TaskUtils.configValidateBoolean(root + ".update-progress", config.get("update-progress"), problems, true, "update-progress", super.getType());
-// TaskUtils.configValidateBoolean(root + ".allow-partial-completion", config.get("allow-partial-completion"), problems, true, "allow-partial-completion", super.getType());
- return problems;
- }
-
- @Override
public void onReady() {
fixedQuestItemCache.clear();
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java
index e9bb4b60..776f0878 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MilkingTaskType.java
@@ -3,10 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
import com.leonardobishop.quests.common.quest.Task;
@@ -16,11 +13,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerInteractEntityEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class MilkingTaskType extends BukkitTaskType {
@@ -34,14 +26,6 @@ public final class MilkingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMilk(PlayerInteractEntityEvent event) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningCertainTaskType.java
deleted file mode 100644
index 65089acd..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningCertainTaskType.java
+++ /dev/null
@@ -1,161 +0,0 @@
-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.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
-import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.block.BlockPlaceEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class MiningCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
-
- public MiningCertainTaskType(BukkitQuestsPlugin plugin) {
- super("blockbreakcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Break a set amount of a specific block.");
- this.plugin = plugin;
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "block", "blocks"));
- super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "check-coreprotect"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "check-coreprotect-time"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "reverse-if-placed"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "use-similar-blocks"));
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
-// if (config.get("block") == null && config.get("blocks") == null) {
-// TaskUtils.configValidateExists(root + ".block", config.get("block"), problems, "block", super.getType());
-// } else {
-// Object configBlock;
-// String source;
-// if (config.containsKey("block")) {
-// source = "block";
-// } else {
-// source = "blocks";
-// }
-// configBlock = config.get(source);
-// List<String> checkBlocks = new ArrayList<>();
-// if (configBlock instanceof List) {
-// checkBlocks.addAll((List) configBlock);
-// } else {
-// checkBlocks.add(String.valueOf(configBlock));
-// }
-//
-// for (String materialName : checkBlocks) {
-// String[] split = materialName.split(":");
-// if (Material.getMaterial(String.valueOf(split[0])) == null) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(materialName),
-// ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(materialName),
-// root + "." + source));
-// }
-// }
-// }
-// TaskUtils.configValidateBoolean(root + ".reverse-if-placed", config.get("reverse-if-placed"), problems, true,"reverse-if-placed");
-// TaskUtils.configValidateBoolean(root + ".check-coreprotect", config.get("check-coreprotect"), problems, true,"check-coreprotect");
-// TaskUtils.configValidateInt(root + ".check-coreprotect-time", config.get("check-coreprotect-time"), problems, true,true, "check-coreprotect-time");
-// TaskUtils.configValidateBoolean(root + ".use-similar-blocks", config.get("use-similar-blocks"), problems, true,"use-similar-blocks");
-// TaskUtils.configValidateInt(root + ".data", config.get("data"), problems, true,true, "data");
- return problems;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onBlockBreak(BlockBreakEvent event) {
- if (event.getPlayer().hasMetadata("NPC")) return;
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- Player player = event.getPlayer();
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player mined block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
-
- if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
- boolean coreProtectEnabled = (boolean) task.getConfigValue("check-coreprotect", false);
- int coreProtectTime = (int) task.getConfigValue("check-coreprotect-time", 3600);
-
- if (coreProtectEnabled && plugin.getCoreProtectHook() == null) {
- super.debug("check-coreprotect is enabled, but CoreProtect is not detected on the server", quest.getId(), task.getId(), player.getUniqueId());
- }
-
- if (plugin.getCoreProtectHook() != null && plugin.getCoreProtectHook().checkBlock(event.getBlock(), coreProtectTime)) {
- super.debug("CoreProtect indicates blocks was recently placed, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- continue;
- }
-
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- int blocksNeeded = (int) task.getConfigValue("amount");
-
- if (progress >= blocksNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setCompleted(true);
- }
- }
- }
- }
-
- // subtract if enabled
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onBlockPlace(BlockPlaceEvent event) {
- if (event.getPlayer().hasMetadata("NPC")) return;
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- Player player = event.getPlayer();
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player placed block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
-
-
- if (task.getConfigValue("reverse-if-placed") != null && ((boolean) task.getConfigValue("reverse-if-placed"))) {
- super.debug("reverse-if-placed is enabled, checking block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
- int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
- taskProgress.setProgress(--progress);
- super.debug("Decrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
- }
- }
- }
- }
-
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java
index 35a7b174..037db1c7 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MiningTaskType.java
@@ -3,35 +3,32 @@ 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.common.config.ConfigProblem;
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.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.BlockBreakEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+import org.bukkit.event.block.BlockPlaceEvent;
public final class MiningTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
public MiningTaskType(BukkitQuestsPlugin plugin) {
- super("blockbreak", TaskUtils.TASK_ATTRIBUTION_STRING, "Break a set amount of blocks.");
+ super("blockbreak", TaskUtils.TASK_ATTRIBUTION_STRING, "Break a set amount of a block.", "blockbreakcertain");
this.plugin = plugin;
- }
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
+ super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useMaterialListConfigValidator(this, "block", "blocks"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
+ super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "check-coreprotect"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "check-coreprotect-time"));
+ super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "reverse-if-placed"));
+ super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "use-similar-blocks"));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
@@ -43,21 +40,68 @@ public final class MiningTaskType extends BukkitTaskType {
return;
}
+ Player player = event.getPlayer();
+
for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
Quest quest = pendingTask.quest();
Task task = pendingTask.task();
TaskProgress taskProgress = pendingTask.taskProgress();
- super.debug("Player mined block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+ super.debug("Player mined block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+
+ if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
+ boolean coreProtectEnabled = (boolean) task.getConfigValue("check-coreprotect", false);
+ int coreProtectTime = (int) task.getConfigValue("check-coreprotect-time", 3600);
+
+ if (coreProtectEnabled && plugin.getCoreProtectHook() == null) {
+ super.debug("check-coreprotect is enabled, but CoreProtect is not detected on the server", quest.getId(), task.getId(), player.getUniqueId());
+ }
+
+ if (plugin.getCoreProtectHook() != null && plugin.getCoreProtectHook().checkBlock(event.getBlock(), coreProtectTime)) {
+ super.debug("CoreProtect indicates blocks was recently placed, continuing...", quest.getId(), task.getId(), player.getUniqueId());
+ continue;
+ }
+
+ int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
+ super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
+
+ int blocksNeeded = (int) task.getConfigValue("amount");
+
+ if (progress >= blocksNeeded) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setCompleted(true);
+ }
+ }
+ }
+ }
+
+ // subtract if enabled
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onBlockPlace(BlockPlaceEvent event) {
+ if (event.getPlayer().hasMetadata("NPC")) return;
+
+ QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
+ if (qPlayer == null) {
+ return;
+ }
+
+ Player player = event.getPlayer();
+
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(event.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
- int brokenBlocksNeeded = (int) task.getConfigValue("amount");
+ super.debug("Player placed block " + event.getBlock().getType(), quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- if (progress >= brokenBlocksNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
- taskProgress.setCompleted(true);
+ if (task.getConfigValue("reverse-if-placed") != null && ((boolean) task.getConfigValue("reverse-if-placed"))) {
+ super.debug("reverse-if-placed is enabled, checking block", quest.getId(), task.getId(), event.getPlayer().getUniqueId());
+ if (TaskUtils.matchBlock(this, pendingTask, event.getBlock(), player.getUniqueId())) {
+ int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
+ taskProgress.setProgress(--progress);
+ super.debug("Decrementing task progress (now " + progress + ")", quest.getId(), task.getId(), player.getUniqueId());
+ }
}
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java
deleted file mode 100644
index 3284859f..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java
+++ /dev/null
@@ -1,158 +0,0 @@
-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.chat.Chat;
-import com.leonardobishop.quests.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
-import com.leonardobishop.quests.common.player.QPlayer;
-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;
-import org.bukkit.event.entity.EntityDeathEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class MobkillingCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
-
- public MobkillingCertainTaskType(BukkitQuestsPlugin plugin) {
- super("mobkillingcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Kill a set amount of a specific entity type.");
- this.plugin = plugin;
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useEntityListConfigValidator(this, "mob", "mobs"));
- super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "hostile"));
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
- if (config.get("mob") == null && config.get("mobs") == null) {
- TaskUtils.configValidateExists(root + ".mob", config.get("mob"), problems, "mob", super.getType());
- } else {
- Object configMob;
- String source;
- if (config.containsKey("mob")) {
- source = "mob";
- } else {
- source = "mobs";
- }
- configMob = config.get(source);
- List<String> checkBlocks = new ArrayList<>();
- if (configMob instanceof List) {
- checkBlocks.addAll((List) configMob);
- } else {
- checkBlocks.add(String.valueOf(configMob));
- }
- for (String mobName : checkBlocks) {
- try {
- EntityType.valueOf(mobName);
- } catch (IllegalArgumentException ex) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_ENTITY_TYPE.getDescription(mobName),
- ConfigProblemDescriptions.UNKNOWN_ENTITY_TYPE.getExtendedDescription(mobName),
- root + "." + source));
- }
- }
-
- }
- if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
- TaskUtils.configValidateInt(root + ".amount", config.get("amount"), problems, false, true, "amount");
- return problems;
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onMobKill(EntityDeathEvent event) {
- Player killer = event.getEntity().getKiller();
- Entity mob = event.getEntity();
-
- if (mob == null || mob instanceof Player) {
- return;
- }
-
- if (killer == null) {
- return;
- }
-
- if (killer.hasMetadata("NPC")) return;
-
- QPlayer qPlayer = plugin.getPlayerManager().getPlayer(killer.getUniqueId());
- if (qPlayer == null) {
- return;
- }
-
- for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(killer, qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- List<String> configEntities = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("mob") ? "mob" : "mobs");
-
- super.debug("Player killed " + mob.getType(), quest.getId(), task.getId(), killer.getUniqueId());
-
- boolean validMob = false;
- for (String entry : configEntities) {
- super.debug("Checking against mob '" + entry + "'", quest.getId(), task.getId(), killer.getUniqueId());
- try {
- EntityType entity = EntityType.valueOf(entry);
- if (mob.getType() == entity) {
- super.debug("Mob is valid", quest.getId(), task.getId(), killer.getUniqueId());
- validMob = true;
- break;
- }
- } catch (IllegalArgumentException ignored) { }
- }
-
- if (!validMob) {
- super.debug("Mob is not in list of required mobs, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
- continue;
- }
-
- List<String> configNames = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("name") ? "name" : "names");
-
- if (!configNames.isEmpty()) {
- super.debug("List of required names exists; mob name is '" + Chat.legacyStrip(mob.getCustomName()) + "'", quest.getId(), task.getId(), killer.getUniqueId());
-
- boolean validName = false;
- for (String name : configNames) {
- super.debug("Checking against name '" + name + "'", quest.getId(), task.getId(), killer.getUniqueId());
- name = Chat.legacyColor(name);
- if (mob.getCustomName() != null && !mob.getCustomName().equals(name)) {
- super.debug("Mob has valid name", quest.getId(), task.getId(), killer.getUniqueId());
- validName = true;
- break;
- }
- }
-
- if (!validName) {
- super.debug("Mob name is not in list of valid name, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
- continue;
- }
- }
-
- int mobKillsNeeded = (int) task.getConfigValue("amount");
-
- int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
- super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), killer.getUniqueId());
-
- if (progress >= mobKillsNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), killer.getUniqueId());
- taskProgress.setCompleted(true);
- }
- }
- }
-
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java
index 90a55f65..f8952675 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingTaskType.java
@@ -3,23 +3,16 @@ 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.common.config.ConfigProblem;
+import com.leonardobishop.quests.bukkit.util.chat.Chat;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Animals;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.Monster;
-import org.bukkit.entity.Player;
+import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
public final class MobkillingTaskType extends BukkitTaskType {
@@ -27,26 +20,18 @@ public final class MobkillingTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
public MobkillingTaskType(BukkitQuestsPlugin plugin) {
- super("mobkilling", TaskUtils.TASK_ATTRIBUTION_STRING, "Kill a set amount of entities.");
+ super("mobkilling", TaskUtils.TASK_ATTRIBUTION_STRING, "Kill a set amount of a entity type.", "mobkillingcertain");
this.plugin = plugin;
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useEntityListConfigValidator(this, "mob", "mobs"));
super.addConfigValidator(TaskUtils.useBooleanConfigValidator(this, "hostile"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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 + ".hostile", config.get("hostile"), problems, true, "hostile");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMobKill(EntityDeathEvent event) {
- Player killer = event.getEntity().getKiller(); //The killer is a player
+ Player killer = event.getEntity().getKiller();
Entity mob = event.getEntity();
if (mob == null || mob instanceof Player) {
@@ -64,49 +49,81 @@ public final class MobkillingTaskType extends BukkitTaskType {
return;
}
- for (Quest quest : super.getRegisteredQuests()) {
- if (qPlayer.hasStartedQuest(quest)) {
- QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(killer, qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
- for (Task task : quest.getTasksOfType(super.getType())) {
- if (!TaskUtils.validateWorld(killer, task)) continue;
+ super.debug("Player killed " + mob.getType(), quest.getId(), task.getId(), killer.getUniqueId());
- TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
+ List<String> configEntities = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("mob") ? "mob" : "mobs");
- if (taskProgress.isCompleted()) {
- continue;
- }
+ if (task.hasConfigKey("hostile")) {
+ boolean hostile = TaskUtils.getConfigBoolean(task, "hostile");
- boolean hostilitySpecified = false;
- boolean hostile = false;
- if (task.getConfigValue("hostile") != null) {
- hostilitySpecified = true;
- hostile = (boolean) task.getConfigValue("hostile");
- }
+ if (!hostile && !(mob instanceof Animals)) {
+ super.debug("Mob must be passive, but is hostile, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
+ continue;
+ } else if (hostile && !(mob instanceof Monster)) {
+ super.debug("Mob must be hostile, but is passive, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
+ continue;
+ }
- if (hostilitySpecified) {
- if (!hostile && !(mob instanceof Animals)) {
- continue;
- } else if (hostile && !(mob instanceof Monster)) {
- continue;
+ }
+
+ if (!configEntities.isEmpty()) {
+ super.debug("List of required names entities; mob type is " + mob.getType(), quest.getId(), task.getId(), killer.getUniqueId());
+
+ boolean validMob = false;
+ for (String entry : configEntities) {
+ super.debug("Checking against mob '" + entry + "'", quest.getId(), task.getId(), killer.getUniqueId());
+ try {
+ EntityType entity = EntityType.valueOf(entry);
+ if (mob.getType() == entity) {
+ super.debug("Mob is valid", quest.getId(), task.getId(), killer.getUniqueId());
+ validMob = true;
+ break;
}
+ } catch (IllegalArgumentException ignored) {
}
+ }
- int mobKillsNeeded = (int) task.getConfigValue("amount");
+ if (!validMob) {
+ super.debug("Mob is not in list of required mobs, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
+ continue;
+ }
+ }
- int progressKills;
- if (taskProgress.getProgress() == null) {
- progressKills = 0;
- } else {
- progressKills = (int) taskProgress.getProgress();
- }
+ List<String> configNames = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("name") ? "name" : "names");
- taskProgress.setProgress(progressKills + 1);
+ if (!configNames.isEmpty()) {
+ super.debug("List of required names exists; mob name is '" + Chat.legacyStrip(mob.getCustomName()) + "'", quest.getId(), task.getId(), killer.getUniqueId());
- if (((int) taskProgress.getProgress()) >= mobKillsNeeded) {
- taskProgress.setCompleted(true);
+ boolean validName = false;
+ for (String name : configNames) {
+ super.debug("Checking against name '" + name + "'", quest.getId(), task.getId(), killer.getUniqueId());
+ name = Chat.legacyColor(name);
+ if (mob.getCustomName() != null && !mob.getCustomName().equals(name)) {
+ super.debug("Mob has valid name", quest.getId(), task.getId(), killer.getUniqueId());
+ validName = true;
+ break;
}
}
+
+ if (!validName) {
+ super.debug("Mob name is not in list of valid name, continuing...", quest.getId(), task.getId(), killer.getUniqueId());
+ continue;
+ }
+ }
+
+ int mobKillsNeeded = (int) task.getConfigValue("amount");
+
+ int progress = TaskUtils.incrementIntegerTaskProgress(taskProgress);
+ super.debug("Incrementing task progress (now " + progress + ")", quest.getId(), task.getId(), killer.getUniqueId());
+
+ if (progress >= mobKillsNeeded) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), killer.getUniqueId());
+ taskProgress.setCompleted(true);
}
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java
index 58467a34..f3c2c4d8 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlayerkillingTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,11 +12,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityDeathEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class PlayerkillingTaskType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class PlayerkillingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMobKill(EntityDeathEvent event) {
Player killer = event.getEntity().getKiller();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java
index 3a12c090..19c517cb 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PlaytimeTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,11 +11,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class PlaytimeTaskType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class PlaytimeTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "minutes"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
- if (TaskUtils.configValidateExists(root + ".minutes", config.get("minutes"), problems, "minutes", super.getType()))
- TaskUtils.configValidateInt(root + ".minutes", config.get("minutes"), problems, false, true, "minutes");
- return problems;
- }
-
@Override
public void onReady() {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PositionTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PositionTaskType.java
index e58142a1..62916c2b 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PositionTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/PositionTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -16,11 +14,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerMoveEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class PositionTaskType extends BukkitTaskType {
@@ -41,20 +34,6 @@ public final class PositionTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "distance-padding"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
- TaskUtils.configValidateExists(root + ".world", config.get("world"), problems, "world", super.getType());
- if (TaskUtils.configValidateExists(root + ".x", config.get("x"), problems, "x", super.getType()))
- TaskUtils.configValidateInt(root + ".x", config.get("x"), problems, false, false, "x");
- if (TaskUtils.configValidateExists(root + ".y", config.get("y"), problems, "y", super.getType()))
- TaskUtils.configValidateInt(root + ".y", config.get("y"), problems, false, false, "y");
- if (TaskUtils.configValidateExists(root + ".z", config.get("z"), problems, "z", super.getType()))
- TaskUtils.configValidateInt(root + ".z", config.get("z"), problems, false, false, "z");
- TaskUtils.configValidateInt(root + ".distance-padding", config.get("distance-padding"), problems, true, true, "distance-padding");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMove(PlayerMoveEvent event) {
if (event.getFrom().getBlockX() == event.getTo().getBlockX() && event.getFrom().getBlockZ() == event.getTo().getBlockZ()) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java
index 4d02e336..bf39899c 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/ShearingTaskType.java
@@ -3,9 +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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,11 +12,6 @@ import org.bukkit.entity.Sheep;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerShearEntityEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class ShearingTaskType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class ShearingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onShear(PlayerShearEntityEvent event) {
if (!(event.getEntity() instanceof Sheep)) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingCertainTaskType.java
deleted file mode 100644
index 5f8ad8dd..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingCertainTaskType.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package com.leonardobishop.quests.bukkit.tasktype.type;
-
-import com.google.common.collect.HashBasedTable;
-import com.google.common.collect.Table;
-import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.bukkit.item.ParsedQuestItem;
-import com.leonardobishop.quests.bukkit.item.QuestItem;
-import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
-import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.player.QPlayer;
-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.Material;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.inventory.ClickType;
-import org.bukkit.event.inventory.InventoryAction;
-import org.bukkit.event.inventory.InventoryClickEvent;
-import org.bukkit.event.inventory.InventoryType;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class SmeltingCertainTaskType extends BukkitTaskType {
-
- private final BukkitQuestsPlugin plugin;
- private final Table<String, String, QuestItem> fixedQuestItemCache = HashBasedTable.create();
-
- public SmeltingCertainTaskType(BukkitQuestsPlugin plugin) {
- super("smeltingcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Smelt or cook a set amount of certain item.");
- this.plugin = plugin;
-
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "item"));
- super.addConfigValidator(TaskUtils.useItemStackConfigValidator(this, "item"));
- super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
- super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
- }
-
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType()))
-// TaskUtils.configValidateItemStack(root + ".item", config.get("item"), problems, false, "item");
-// 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 + ".data", config.get("data"), problems, true, false, "data");
- return problems;
- }
-
- @Override
- public void onReady() {
- fixedQuestItemCache.clear();
- }
-
- @SuppressWarnings("deprecation")
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onInventoryClick(InventoryClickEvent event) {
- ItemStack item = event.getCurrentItem();
- ItemStack cursor = event.getCursor();
- InventoryType inventoryType = event.getInventory().getType();
-
- if (event.getRawSlot() != 2 || !plugin.getVersionSpecificHandler().isFurnaceInventoryType(inventoryType)
- || item == null || item.getType() == Material.AIR || event.getAction() == InventoryAction.NOTHING
- || event.getAction() == InventoryAction.COLLECT_TO_CURSOR && cursor != null && cursor.getAmount() == cursor.getMaxStackSize()
- || event.getClick() == ClickType.NUMBER_KEY && event.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD
- || !(event.getWhoClicked() instanceof Player player)) {
- return;
- }
-
- int eventAmount = item.getAmount();
- if (event.isShiftClick()) {
- eventAmount = Math.min(eventAmount, plugin.getVersionSpecificHandler().getAvailableSpace(player, item));
- if (eventAmount == 0) {
- 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)) {
- Quest quest = pendingTask.quest();
- Task task = pendingTask.task();
- TaskProgress taskProgress = pendingTask.taskProgress();
-
- super.debug("Player smelted item", quest.getId(), task.getId(), player.getUniqueId());
-
- if (task.getConfigValue("mode") != null
- && !inventoryType.toString().equalsIgnoreCase(task.getConfigValue("mode").toString())) {
- super.debug("Specific mode is required, but the actual mode '" + inventoryType + "' does not match, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- continue;
- }
-
- QuestItem qi;
- if ((qi = fixedQuestItemCache.get(quest.getId(), task.getId())) == null) {
- QuestItem fetchedItem = TaskUtils.getConfigQuestItem(task, "item", "data");
- fixedQuestItemCache.put(quest.getId(), task.getId(), fetchedItem);
- qi = fetchedItem;
- }
-
- if (qi.compareItemStack(item)) {
- int smeltedItemsNeeded = (int) task.getConfigValue("amount");
-
- int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
- int newAmount = progress + eventAmount;
- taskProgress.setProgress(newAmount);
- super.debug("Updating task progress (now " + (newAmount) + ")", quest.getId(), task.getId(), player.getUniqueId());
-
- if (newAmount >= smeltedItemsNeeded) {
- super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
- taskProgress.setProgress(newAmount);
- taskProgress.setCompleted(true);
- }
- } else {
- super.debug("Item does not match required item, continuing...", quest.getId(), task.getId(), player.getUniqueId());
- }
- }
- }
-
-}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java
index 391d5f5f..a89a2c84 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/SmeltingTaskType.java
@@ -1,11 +1,12 @@
package com.leonardobishop.quests.bukkit.tasktype.type;
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.Table;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
+import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -18,29 +19,28 @@ import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class SmeltingTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
+ private final Table<String, String, QuestItem> fixedQuestItemCache = HashBasedTable.create();
public SmeltingTaskType(BukkitQuestsPlugin plugin) {
- super("smelting", TaskUtils.TASK_ATTRIBUTION_STRING, "Smelt or cook a set amount of any item.");
+ super("smelting", TaskUtils.TASK_ATTRIBUTION_STRING, "Smelt or cook a set amount of a item.", "smeltingcertain");
this.plugin = plugin;
+
+ super.addConfigValidator(TaskUtils.useItemStackConfigValidator(this, "item"));
+ super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "data"));
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
+ public void onReady() {
+ fixedQuestItemCache.clear();
}
+ @SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInventoryClick(InventoryClickEvent event) {
ItemStack item = event.getCurrentItem();
@@ -51,12 +51,10 @@ public final class SmeltingTaskType extends BukkitTaskType {
|| item == null || item.getType() == Material.AIR || event.getAction() == InventoryAction.NOTHING
|| event.getAction() == InventoryAction.COLLECT_TO_CURSOR && cursor != null && cursor.getAmount() == cursor.getMaxStackSize()
|| event.getClick() == ClickType.NUMBER_KEY && event.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD
- || !(event.getWhoClicked() instanceof Player)) {
+ || !(event.getWhoClicked() instanceof Player player)) {
return;
}
- Player player = (Player) event.getWhoClicked();
-
int eventAmount = item.getAmount();
if (event.isShiftClick()) {
eventAmount = Math.min(eventAmount, plugin.getVersionSpecificHandler().getAvailableSpace(player, item));
@@ -70,39 +68,44 @@ public final class SmeltingTaskType extends BukkitTaskType {
return;
}
- for (Quest quest : super.getRegisteredQuests()) {
- if (qPlayer.hasStartedQuest(quest)) {
- QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest);
+ for (TaskUtils.PendingTask pendingTask : TaskUtils.getApplicableTasks(player.getPlayer(), qPlayer, this, TaskUtils.TaskConstraint.WORLD)) {
+ Quest quest = pendingTask.quest();
+ Task task = pendingTask.task();
+ TaskProgress taskProgress = pendingTask.taskProgress();
- for (Task task : quest.getTasksOfType(super.getType())) {
- if (!TaskUtils.validateWorld(player, task)) continue;
+ super.debug("Player smelted item", quest.getId(), task.getId(), player.getUniqueId());
- TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
-
- if (taskProgress.isCompleted()) {
- continue;
- }
+ if (task.getConfigValue("mode") != null
+ && !inventoryType.toString().equalsIgnoreCase(task.getConfigValue("mode").toString())) {
+ super.debug("Specific mode is required, but the actual mode '" + inventoryType + "' does not match, continuing...", quest.getId(), task.getId(), player.getUniqueId());
+ continue;
+ }
- if (task.getConfigValue("mode") != null
- && !inventoryType.toString().equalsIgnoreCase(task.getConfigValue("mode").toString())) {
- continue;
- }
+ if (task.hasConfigKey("item")) {
+ QuestItem qi;
+ if ((qi = fixedQuestItemCache.get(quest.getId(), task.getId())) == null) {
+ QuestItem fetchedItem = TaskUtils.getConfigQuestItem(task, "item", "data");
+ fixedQuestItemCache.put(quest.getId(), task.getId(), fetchedItem);
+ qi = fetchedItem;
+ }
- int smeltedItemsNeeded = (int) task.getConfigValue("amount");
+ if (!qi.compareItemStack(item)) {
+ super.debug("Item does not match required item, continuing...", quest.getId(), task.getId(), player.getUniqueId());
+ continue;
+ }
+ }
- int progressItemsSmelted;
- if (taskProgress.getProgress() == null) {
- progressItemsSmelted = 0;
- } else {
- progressItemsSmelted = (int) taskProgress.getProgress();
- }
+ int smeltedItemsNeeded = (int) task.getConfigValue("amount");
- taskProgress.setProgress(progressItemsSmelted + eventAmount);
+ int progress = TaskUtils.getIntegerTaskProgress(taskProgress);
+ int newAmount = progress + eventAmount;
+ taskProgress.setProgress(newAmount);
+ super.debug("Updating task progress (now " + (newAmount) + ")", quest.getId(), task.getId(), player.getUniqueId());
- if (((int) taskProgress.getProgress()) >= smeltedItemsNeeded) {
- taskProgress.setCompleted(true);
- }
- }
+ if (newAmount >= smeltedItemsNeeded) {
+ super.debug("Marking task as complete", quest.getId(), task.getId(), player.getUniqueId());
+ taskProgress.setProgress(newAmount);
+ taskProgress.setCompleted(true);
}
}
}
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 8b9c2f66..6b5c0e9e 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,8 +3,6 @@ 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.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -14,11 +12,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityTameEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class TamingTaskType extends BukkitTaskType {
@@ -29,24 +22,6 @@ public final class TamingTaskType extends BukkitTaskType {
this.plugin = plugin;
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- if (TaskUtils.configValidateExists(root + ".mob", config.get("mob"), problems, "mob", super.getType())) {
- try {
- EntityType.valueOf(String.valueOf(config.get("mob")));
- } catch (IllegalArgumentException ex) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_ENTITY_TYPE.getDescription(String.valueOf(config.get("mob"))),
- ConfigProblemDescriptions.UNKNOWN_ENTITY_TYPE.getExtendedDescription(String.valueOf(config.get("mob"))),
- root + ".mob"));
- }
- }
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityTame(EntityTameEvent event) {
if (!(event.getOwner() instanceof Player)) {
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 491ebd09..ab435d00 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
@@ -3,7 +3,6 @@ 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.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
@@ -13,12 +12,8 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerMoveEvent;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
public final class WalkingTaskType extends BukkitTaskType {
@@ -45,14 +40,6 @@ public final class WalkingTaskType extends BukkitTaskType {
), "mode"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
- if (TaskUtils.configValidateExists(root + ".distance", config.get("distance"), problems, "distance", super.getType()))
- TaskUtils.configValidateInt(root + ".distance", config.get("distance"), problems, false, true, "distance");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMove(PlayerMoveEvent event) {
if (event.getFrom().getBlockX() == event.getTo().getBlockX() && event.getFrom().getBlockZ() == event.getTo().getBlockZ()) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java
index 5bffedcb..fbeef4bb 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ASkyBlockLevelTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,11 +12,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class ASkyBlockLevelTaskType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class ASkyBlockLevelTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".level", config.get("level"), problems, "level", super.getType()))
-// TaskUtils.configValidateInt(root + ".level", config.get("level"), problems, false, false, "level");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandPostLevelEvent event) {
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java
index a056e137..beeaec29 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/BentoBoxLevelTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,14 +11,10 @@ import com.leonardobishop.quests.common.tasktype.TaskTypeManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
-import org.jetbrains.annotations.NotNull;
import world.bentobox.bentobox.BentoBox;
import world.bentobox.bentobox.api.events.IslandBaseEvent;
import world.bentobox.bentobox.database.objects.Island;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.UUID;
public final class BentoBoxLevelTaskType extends BukkitTaskType {
@@ -35,14 +29,6 @@ public final class BentoBoxLevelTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".level", config.get("level"), problems, "level", super.getType()))
-// TaskUtils.configValidateInt(root + ".level", config.get("level"), problems, false, false, "level");
- return problems;
- }
-
public static void register(BukkitQuestsPlugin plugin, TaskTypeManager manager) {
if (BentoBox.getInstance().getAddonsManager().getAddonByName("Level").isPresent()) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java
index 176b5d9e..f6b68aa1 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java
@@ -3,31 +3,21 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
-import com.leonardobishop.quests.bukkit.item.ParsedQuestItem;
import com.leonardobishop.quests.bukkit.item.QuestItem;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
import com.leonardobishop.quests.bukkit.util.chat.Chat;
import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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 net.citizensnpcs.api.event.NPCRightClickEvent;
import net.citizensnpcs.api.npc.NPC;
import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.inventory.ItemStack;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class CitizensDeliverTaskType extends BukkitTaskType {
@@ -54,23 +44,6 @@ public final class CitizensDeliverTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType()))
-// TaskUtils.configValidateItemStack(root + ".item", config.get("item"), problems, false, "item");
-// if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
-// TaskUtils.configValidateInt(root + ".amount", config.get("amount"), problems, false, true, "amount");
-// if (!config.containsKey("npc-name")) {
-// TaskUtils.configValidateExists(root + ".npc-id", config.get("npc-id"), problems, "npc-id", super.getType());
-// } else {
-// TaskUtils.configValidateExists(root + ".npc-name", config.get("npc-name"), problems, "npc-name", super.getType());
-// }
-// TaskUtils.configValidateBoolean(root + ".remove-items-when-complete", config.get("remove-items-when-complete"), problems, true, "remove-items-when-complete", super.getType());
-// TaskUtils.configValidateBoolean(root + ".allow-partial-completion", config.get("allow-partial-completion"), problems, true, "allow-partial-completion", super.getType());
- return problems;
- }
-
- @Override
public void onReady() {
fixedQuestItemCache.clear();
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java
index 5543cd20..99275f9f 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java
@@ -5,9 +5,7 @@ import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
import com.leonardobishop.quests.bukkit.util.chat.Chat;
import com.leonardobishop.quests.common.config.ConfigProblem;
-import com.leonardobishop.quests.common.config.ConfigProblemDescriptions;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,11 +13,6 @@ import net.citizensnpcs.api.event.NPCRightClickEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class CitizensInteractTaskType extends BukkitTaskType {
@@ -37,17 +30,6 @@ public final class CitizensInteractTaskType extends BukkitTaskType {
});
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
- if (!config.containsKey("npc-name")) {
- TaskUtils.configValidateExists(root + ".npc-id", config.get("npc-id"), problems, "npc-id", super.getType());
- } else {
- TaskUtils.configValidateExists(root + ".npc-name", config.get("npc-name"), problems, "npc-name", super.getType());
- }
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onNPCClick(NPCRightClickEvent event) {
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getClicker().getUniqueId());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java
index b422fe85..be47dbd6 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsBalanceTaskType.java
@@ -4,7 +4,6 @@ import com.earth2me.essentials.Essentials;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
@@ -16,12 +15,8 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.UUID;
public final class EssentialsBalanceTaskType extends BukkitTaskType {
@@ -37,14 +32,6 @@ public final class EssentialsBalanceTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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, false, "amount");
- return problems;
- }
-
- @Override
public void onStart(Quest quest, Task task, UUID playerUUID) {
Player player = Bukkit.getPlayer(playerUUID);
Essentials ess = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials");
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java
index 483ddcad..0e108ba8 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/EssentialsMoneyEarnTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -13,12 +11,8 @@ import net.ess3.api.events.UserBalanceUpdateEvent;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class EssentialsMoneyEarnTaskType extends BukkitTaskType {
@@ -32,14 +26,6 @@ public final class EssentialsMoneyEarnTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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, false, "amount");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onMoneyEarn(UserBalanceUpdateEvent event) {
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java
index be213eb0..6969fbc7 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FabledSkyblockLevelTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,10 +12,8 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.UUID;
@@ -33,14 +29,6 @@ public final class FabledSkyblockLevelTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".level", config.get("level"), problems, "level", super.getType()))
-// TaskUtils.configValidateInt(root + ".level", config.get("level"), problems, false, false, "level");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandLevelChangeEvent event) {
List<UUID> members = new ArrayList<>();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java
index 7e73a169..d0b30b1e 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/IridiumSkyblockValueTaskType.java
@@ -5,9 +5,7 @@ import com.iridium.iridiumskyblock.api.IslandWorthCalculatedEvent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,11 +13,7 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.UUID;
//TODO update to latest ver
@@ -35,14 +29,6 @@ public final class IridiumSkyblockValueTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "value"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".value", config.get("value"), problems, "value", super.getType()))
-// TaskUtils.configValidateInt(root + ".value", config.get("value"), problems, false, false, "value");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandWorthCalculatedEvent event) {
Island island = event.getIsland();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java
index de5154e1..dc465c05 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/MythicMobsKillingTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,12 +13,8 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class MythicMobsKillingTaskType extends BukkitTaskType {
@@ -54,17 +48,6 @@ public final class MythicMobsKillingTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "min-level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// 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 + ".level", config.get("level"), problems, true, true, "level");
-// TaskUtils.configValidateInt(root + ".min-level", config.get("min-level"), problems, true, true, "min-level");
- return problems;
- }
-
private final class MythicMobs4Listener implements Listener {
private final Field levelField;
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java
index 6d9a7bca..1b0abc97 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/NuVotifierVoteTaskType.java
@@ -3,9 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,11 +12,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class NuVotifierVoteTaskType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class NuVotifierVoteTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onVote(VotifierEvent event) {
String voter = event.getVote().getUsername();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlaceholderAPIEvaluateTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlaceholderAPIEvaluateTaskType.java
index 033def46..9b41192c 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlaceholderAPIEvaluateTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/PlaceholderAPIEvaluateTaskType.java
@@ -5,7 +5,6 @@ import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,12 +13,8 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
public final class PlaceholderAPIEvaluateTaskType extends BukkitTaskType {
@@ -56,40 +51,6 @@ public final class PlaceholderAPIEvaluateTaskType extends BukkitTaskType {
}
@Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// TaskUtils.configValidateExists(root + ".placeholder", config.get("placeholder"), problems, "placeholder", super.getType());
-// boolean evalExists = TaskUtils.configValidateExists(root + ".evaluates", config.get("evaluates"), problems, "evaluates", super.getType());
-//
-// if (config.containsKey("operator")) {
-// String operatorStr = (String) config.get("operator");
-// Operator operator = null;
-// try {
-// operator = Operator.valueOf(operatorStr);
-// } catch (IllegalArgumentException ex) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// "Operator '" + operatorStr + "' does not exist",
-// "Valid operators are:<br>" +
-// "- GREATER_THAN<br>" +
-// "- LESS_THAN<br>" +
-// "- GREATER_THAN_OR_EQUAL_TO<br>" +
-// "- LESS_THAN_OR_EQUAL_TO<br>",
-// root + ".operator"));
-// }
-// if (operator != null && evalExists) {
-// String evalStr = String.valueOf(config.get("evaluates"));
-// try {
-// Double.parseDouble(evalStr);
-// } catch (IllegalArgumentException ex) {
-// problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
-// "Numeric operator specified, but placeholder evaluation '" + evalStr + "' is not numeric", null, root + ".evaluates"));
-// }
-// }
-// }
- return problems;
- }
-
- @Override
public void onReady() {
this.poll = new BukkitRunnable() {
@Override
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyTaskType.java
index 33a1a8c1..a2ce95e5 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyCertainTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusBuyTaskType.java
@@ -3,11 +3,8 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.QPlayerManager;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
import com.leonardobishop.quests.common.quest.Task;
@@ -16,22 +13,16 @@ import net.brcdev.shopgui.shop.Shop;
import net.brcdev.shopgui.shop.ShopItem;
import net.brcdev.shopgui.shop.ShopManager.ShopAction;
import net.brcdev.shopgui.shop.ShopTransactionResult;
-import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class ShopGUIPlusBuyCertainTaskType extends BukkitTaskType {
+public final class ShopGUIPlusBuyTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
- public ShopGUIPlusBuyCertainTaskType(BukkitQuestsPlugin plugin) {
- super("shopguiplus_buycertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Purchase a given item from a ShopGUI+ shop");
+ public ShopGUIPlusBuyTaskType(BukkitQuestsPlugin plugin) {
+ super("shopguiplus_buy", TaskUtils.TASK_ATTRIBUTION_STRING, "Purchase a given item from a ShopGUI+ shop", "shopguiplus_buycertain");
this.plugin = plugin;
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
@@ -40,19 +31,6 @@ public final class ShopGUIPlusBuyCertainTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "item-id"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- List<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.configValidateExists(root + ".shop-id", config.get("shop-id"), problems, "shop-id", super.getType());
- TaskUtils.configValidateExists(root + ".item-id", config.get("item-id"), problems, "item-id", super.getType());
-
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void afterTransaction(ShopPostTransactionEvent event) {
ShopTransactionResult result = event.getResult();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellTaskType.java
index fe2d7c09..0ae408b8 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellCertainTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/ShopGUIPlusSellTaskType.java
@@ -3,11 +3,8 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
import com.leonardobishop.quests.common.player.QPlayerManager;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress;
-import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile;
import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress;
import com.leonardobishop.quests.common.quest.Quest;
import com.leonardobishop.quests.common.quest.Task;
@@ -16,22 +13,16 @@ import net.brcdev.shopgui.shop.Shop;
import net.brcdev.shopgui.shop.ShopItem;
import net.brcdev.shopgui.shop.ShopManager.ShopAction;
import net.brcdev.shopgui.shop.ShopTransactionResult;
-import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public final class ShopGUIPlusSellCertainTaskType extends BukkitTaskType {
+public final class ShopGUIPlusSellTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
- public ShopGUIPlusSellCertainTaskType(BukkitQuestsPlugin plugin) {
- super("shopguiplus_sellcertain", TaskUtils.TASK_ATTRIBUTION_STRING, "Sell a given item to a ShopGUI+ shop");
+ public ShopGUIPlusSellTaskType(BukkitQuestsPlugin plugin) {
+ super("shopguiplus_sell", TaskUtils.TASK_ATTRIBUTION_STRING, "Sell a given item to a ShopGUI+ shop", "shopguiplus_sellcertain");
this.plugin = plugin;
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "amount"));
@@ -40,19 +31,6 @@ public final class ShopGUIPlusSellCertainTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useRequiredConfigValidator(this, "item-id"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- List<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.configValidateExists(root + ".shop-id", config.get("shop-id"), problems, "shop-id", super.getType());
-// TaskUtils.configValidateExists(root + ".item-id", config.get("item-id"), problems, "item-id", super.getType());
-
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void afterTransaction(ShopPostTransactionEvent event) {
ShopTransactionResult result = event.getResult();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java
index e4e0c97b..a5996713 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockLevelType.java
@@ -5,9 +5,7 @@ import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,12 +13,8 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class SuperiorSkyblockLevelType extends BukkitTaskType {
@@ -34,14 +28,6 @@ public final class SuperiorSkyblockLevelType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".level", config.get("level"), problems, "level", super.getType()))
-// TaskUtils.configValidateNumber(root + ".level", config.get("level"), problems, false, false, "level");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandWorthUpdateEvent event) {
for (SuperiorPlayer superiorPlayer : event.getIsland().getIslandMembers(true)) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java
index 6444daf2..72641099 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/SuperiorSkyblockWorthType.java
@@ -5,9 +5,7 @@ import com.bgsoftware.superiorskyblock.api.wrappers.SuperiorPlayer;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -15,12 +13,8 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class SuperiorSkyblockWorthType extends BukkitTaskType {
@@ -34,14 +28,6 @@ public final class SuperiorSkyblockWorthType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "worth"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".worth", config.get("worth"), problems, "worth", super.getType()))
-// TaskUtils.configValidateNumber(root + ".worth", config.get("worth"), problems, false, false, "worth");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(IslandWorthUpdateEvent event) {
for (SuperiorPlayer superiorPlayer : event.getIsland().getIslandMembers(true)) {
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java
index 7d5a3576..10aa720e 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/VotingPluginVoteType.java
@@ -4,9 +4,7 @@ import com.bencodez.votingplugin.events.PlayerVoteEvent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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;
@@ -14,11 +12,6 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
public final class VotingPluginVoteType extends BukkitTaskType {
@@ -32,14 +25,6 @@ public final class VotingPluginVoteType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "amount"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- 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");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onVote(PlayerVoteEvent event) {
String voter = event.getPlayer();
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java
index 2d5dbc20..339010b3 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/uSkyBlockLevelTaskType.java
@@ -3,23 +3,15 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType;
import com.leonardobishop.quests.bukkit.util.TaskUtils;
-import com.leonardobishop.quests.common.config.ConfigProblem;
import com.leonardobishop.quests.common.player.QPlayer;
-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.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.jetbrains.annotations.NotNull;
import us.talabrek.ultimateskyblock.api.event.uSkyBlockScoreChangedEvent;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
public final class uSkyBlockLevelTaskType extends BukkitTaskType {
private final BukkitQuestsPlugin plugin;
@@ -32,14 +24,6 @@ public final class uSkyBlockLevelTaskType extends BukkitTaskType {
super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "level"));
}
- @Override
- public @NotNull List<ConfigProblem> validateConfig(@NotNull String root, @NotNull HashMap<String, Object> config) {
- ArrayList<ConfigProblem> problems = new ArrayList<>();
-// if (TaskUtils.configValidateExists(root + ".level", config.get("level"), problems, "level", super.getType()))
-// TaskUtils.configValidateInt(root + ".level", config.get("level"), problems, false, false, "level");
- return problems;
- }
-
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onIslandLevel(uSkyBlockScoreChangedEvent event) {
QPlayer qPlayer = plugin.getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java
index 0326b072..642b58be 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java
@@ -69,7 +69,7 @@ public class TaskUtils {
List<String> strings = new ArrayList<>();
if (configObject instanceof List) {
strings.addAll((List) configObject);
- } else {
+ } else if (configObject != null) {
strings.add(String.valueOf(configObject));
}
return strings;
@@ -182,6 +182,9 @@ public class TaskUtils {
Object configData = task.getConfigValue("data");
List<String> checkBlocks = TaskUtils.getConfigStringList(task, task.getConfigValues().containsKey("block") ? "block" : "blocks");
+ if (checkBlocks.isEmpty()) {
+ return true;
+ }
for (String materialName : checkBlocks) {
// LOG:1 LOG:2 LOG should all be supported with this
@@ -243,125 +246,6 @@ public class TaskUtils {
}
}
- public static void configValidateNumber(String path, Object object, List<ConfigProblem> problems, boolean allowNull, boolean greaterThanZero, String... args) {
- if (object == null) {
- if (!allowNull) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected a number for '%s', but got null instead", (Object[]) args), null, path));
- }
- return;
- }
-
- try {
- double d = Double.parseDouble(String.valueOf(object));
- if (greaterThanZero && d <= 0) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Value for field '%s' must be greater than 0", (Object[]) args), null, path));
- }
- } catch (ClassCastException ex) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected a number for '%s', but got '" + object + "' instead", (Object[]) args), null, path));
- }
- }
-
- public static void configValidateInt(String path, Object object, List<ConfigProblem> problems, boolean allowNull, boolean greaterThanZero, String... args) {
- if (object == null) {
- if (!allowNull) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected an integer for '%s', but got null instead", (Object[]) args), null, path));
- }
- return;
- }
-
- try {
- Integer i = (Integer) object;
- if (greaterThanZero && i <= 0) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Value for field '%s' must be greater than 0", (Object[]) args), null, path));
- }
- } catch (ClassCastException ex) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected an integer for '%s', but got '" + object + "' instead", (Object[]) args), null, path));
- }
- }
-
- public static void configValidateBoolean(String path, Object object, List<ConfigProblem> problems, boolean allowNull, String... args) {
- if (object == null) {
- if (!allowNull) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected a boolean for '%s', but got null instead", (Object[]) args), null, path));
- }
- return;
- }
-
- try {
- Boolean b = (Boolean) object;
- } catch (ClassCastException ex) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected a boolean for '%s', but got '" + object + "' instead", (Object[]) args), null, path));
- }
- }
-
- public static void configValidateItemStack(String path, Object object, List<ConfigProblem> problems, boolean allowNull, String... args) {
- if (object == null) {
- if (!allowNull) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- String.format("Expected item configuration for '%s', but got null instead", (Object[]) args), null, path));
- }
- return;
- }
-
- if (object instanceof ConfigurationSection) {
- ConfigurationSection section = (ConfigurationSection) object;
-
- if (section.contains("quest-item")) {
- String type = section.getString("quest-item");
- if (plugin.getQuestItemRegistry().getItem(section.getString("quest-item")) == null) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_QUEST_ITEM.getDescription(type),
- ConfigProblemDescriptions.UNKNOWN_QUEST_ITEM.getExtendedDescription(type),
- path + ".item.quest-item"));
- }
- } else {
- String itemloc = "item";
- if (!section.contains("item")) {
- itemloc = "type";
- }
- if (!section.contains(itemloc)) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(""),
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(""),
- path + ".type"));
- } else {
- String type = String.valueOf(section.get(itemloc));
- if (!plugin.getItemGetter().isValidMaterial(type)) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(type),
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(type),
- path + itemloc));
- }
- }
- }
- } else {
- if (Material.getMaterial(String.valueOf(object)) == null) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.WARNING,
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(object)),
- ConfigProblemDescriptions.UNKNOWN_MATERIAL.getExtendedDescription(String.valueOf(object)),
- path));
- }
- }
- }
-
- public static boolean configValidateExists(String path, Object object, List<ConfigProblem> problems, String... args) {
- if (object == null) {
- problems.add(new ConfigProblem(ConfigProblem.ConfigProblemType.ERROR,
- ConfigProblemDescriptions.TASK_MISSING_FIELD.getDescription(args),
- ConfigProblemDescriptions.TASK_MISSING_FIELD.getExtendedDescription(args),
- path));
- return false;
- }
- return true;
- }
/**
* Returns a config validator which checks if at least one value in the given