From 256d1178292294e5164da379cb0f24271e84bc13 Mon Sep 17 00:00:00 2001 From: LMBishop <13875753+LMBishop@users.noreply.github.com> Date: Mon, 23 Dec 2019 19:50:30 +0000 Subject: Added option for config section in item rather than just material - Possibly closes #55 --- .../java/com/leonardobishop/quests/Quests.java | 11 ++++++++--- .../tasktypes/types/CitizensDeliverTaskType.java | 22 +++++++++++++--------- 2 files changed, 21 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java index 933d6cfc..325eb065 100644 --- a/src/main/java/com/leonardobishop/quests/Quests.java +++ b/src/main/java/com/leonardobishop/quests/Quests.java @@ -24,6 +24,7 @@ import com.leonardobishop.quests.updater.Updater; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -257,9 +258,13 @@ public class Quests extends JavaPlugin { } public ItemStack getItemStack(String path, FileConfiguration config) { - String cName = config.getString(path + ".name", path + ".name"); - String cType = config.getString(path + ".type", path + ".type"); - List cLore = config.getStringList(path + ".lore"); + return getItemStack(config.getConfigurationSection(path)); + } + + public ItemStack getItemStack(ConfigurationSection config) { + String cName = config.getString("name", "name"); + String cType = config.getString("type", "type"); + List cLore = config.getStringList("lore"); String name; Material type = null; diff --git a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java index 6c0635fe..8510c30b 100644 --- a/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java +++ b/src/main/java/com/leonardobishop/quests/quests/tasktypes/types/CitizensDeliverTaskType.java @@ -10,9 +10,9 @@ import com.leonardobishop.quests.quests.Task; import com.leonardobishop.quests.quests.tasktypes.ConfigValue; import com.leonardobishop.quests.quests.tasktypes.TaskType; import net.citizensnpcs.api.event.NPCRightClickEvent; -import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -79,16 +79,20 @@ public final class CitizensDeliverTaskType extends TaskType { Object configData = task.getConfigValue("data"); Object remove = task.getConfigValue("remove-items-when-complete"); - material = Material.matchMaterial(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.matchMaterial(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 (player.getInventory().containsAtLeast(is, amount)) { -- cgit v1.2.3-70-g09d2