aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java47
-rw-r--r--src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/CitizensDeliverTaskType.java17
2 files changed, 44 insertions, 20 deletions
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
index a4e9d1ed..25ef76ec 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/InventoryTaskType.java
@@ -14,6 +14,8 @@ import com.leonardobishop.quests.quests.tasktypes.TaskType;
import com.leonardobishop.quests.quests.tasktypes.TaskUtils;
import org.bukkit.Bukkit;
import org.bukkit.Material;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.MemorySection;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -47,9 +49,27 @@ public final class InventoryTaskType extends TaskType {
ArrayList<QuestsConfigLoader.ConfigProblem> problems = new ArrayList<>();
if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType())) {
Object configBlock = config.get("item");
- if (Material.getMaterial(String.valueOf(configBlock)) == null) {
- problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
- QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(configBlock)), root + ".item"));
+ if (configBlock instanceof ConfigurationSection) {
+ ConfigurationSection section = (ConfigurationSection) configBlock;
+ String itemloc = "item";
+ if (!section.contains("item")) {
+ itemloc = "type";
+ }
+ if (!section.contains(itemloc)) {
+ problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(""), root + ".item.type"));
+ } else {
+ String type = String.valueOf(section.get(itemloc));
+ if (!Quests.get().getItemGetter().isValidMaterial(type)) {
+ problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(type), root + ".item." + itemloc));
+ }
+ }
+ } else {
+ if (Material.getMaterial(String.valueOf(configBlock)) == null) {
+ problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(configBlock)), root + ".item.item"));
+ }
}
}
if (TaskUtils.configValidateExists(root + ".amount", config.get("amount"), problems, "amount", super.getType()))
@@ -109,17 +129,20 @@ public final class InventoryTaskType extends TaskType {
Object configData = task.getConfigValue("data");
Object remove = task.getConfigValue("remove-items-when-complete");
- material = Material.getMaterial(String.valueOf(configBlock));
-
-
- if (material == null) {
- continue;
- }
ItemStack is;
- if (configData != null) {
- is = new ItemStack(material, 1, ((Integer) configData).shortValue());
+ if (configBlock instanceof ConfigurationSection) {
+ is = Quests.get().getItemStack("", (org.bukkit.configuration.ConfigurationSection) configBlock);
} else {
- is = new ItemStack(material, 1);
+ material = Material.getMaterial(String.valueOf(configBlock));
+
+ if (material == null) {
+ continue;
+ }
+ if (configData != null) {
+ is = new ItemStack(material, 1, ((Integer) configData).shortValue());
+ } else {
+ is = new ItemStack(material, 1);
+ }
}
if (task.getConfigValue("update-progress") != null
diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/CitizensDeliverTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/CitizensDeliverTaskType.java
index 34f8a2f4..2d70a8cd 100644
--- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/CitizensDeliverTaskType.java
+++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/dependent/CitizensDeliverTaskType.java
@@ -45,24 +45,25 @@ public final class CitizensDeliverTaskType extends TaskType {
if (TaskUtils.configValidateExists(root + ".item", config.get("item"), problems, "item", super.getType())) {
Object configBlock = config.get("item");
if (configBlock instanceof ConfigurationSection) {
- String itemloc = "item.type";
- if (!config.containsKey("item.type")) {
- itemloc = "item.item";
+ ConfigurationSection section = (ConfigurationSection) configBlock;
+ String itemloc = "item";
+ if (!section.contains("item")) {
+ itemloc = "type";
}
- if (!config.containsKey(itemloc)) {
+ if (!section.contains(itemloc)) {
problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
- QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(""), root + ".item"));
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(""), root + ".item.type"));
} else {
- String type = String.valueOf(config.get(itemloc));
+ String type = String.valueOf(section.get(itemloc));
if (!Quests.get().getItemGetter().isValidMaterial(type)) {
problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
- QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(type), root + "." + itemloc));
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(type), root + ".item." + itemloc));
}
}
} else {
if (Material.getMaterial(String.valueOf(configBlock)) == null) {
problems.add(new QuestsConfigLoader.ConfigProblem(QuestsConfigLoader.ConfigProblemType.WARNING,
- QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(configBlock)), root + ".item"));
+ QuestsConfigLoader.ConfigProblemDescriptions.UNKNOWN_MATERIAL.getDescription(String.valueOf(configBlock)), root + ".item.item"));
}
}
}