SHOW:
|
|
- or go back to the newest paste.
| 1 | package com.applecraftserver.aprx.minecave.zombiewaves; | |
| 2 | ||
| 3 | import com.applecraftserver.aprx.minecave.zombiewaves.files.ItemAliases; | |
| 4 | import java.util.ArrayList; | |
| 5 | import java.util.List; | |
| 6 | import java.util.Map.Entry; | |
| 7 | import org.bukkit.Material; | |
| 8 | import org.bukkit.configuration.ConfigurationSection; | |
| 9 | import org.bukkit.enchantments.Enchantment; | |
| 10 | import org.bukkit.inventory.ItemStack; | |
| 11 | import org.bukkit.inventory.meta.ItemMeta; | |
| 12 | ||
| 13 | /** | |
| 14 | * | |
| 15 | * @author aprx | |
| 16 | */ | |
| 17 | public class ItemParser {
| |
| 18 | private static MCZombieWaves plugin; | |
| 19 | ||
| 20 | public ItemParser(MCZombieWaves pl) {
| |
| 21 | plugin = pl; | |
| 22 | } | |
| 23 | ||
| 24 | public static ItemStack[] parse(ConfigurationSection section) {
| |
| 25 | ItemAliases items = plugin.getItems(); | |
| 26 | List<ItemStack> toReturn = new ArrayList(); | |
| 27 | for (String rootitem : section.getKeys(false)) {
| |
| 28 | if (rootitem.equalsIgnoreCase("air")) {
| |
| 29 | toReturn.add(new ItemStack(Material.AIR)); | |
| 30 | continue; | |
| 31 | } | |
| 32 | if (items.getItemByAlias(rootitem) == null) | |
| 33 | continue; | |
| 34 | ConfigurationSection itemSection = section.getConfigurationsection(rootitem); | |
| 35 | ItemStack item = items.getItemByAlias(rootitem); | |
| 36 | - | item.setAmount(section.getInt(rootitem + ".count", 1)); |
| 36 | + | item.setAmount(itemSection.getInt("count", 1));
|
| 37 | if (itemSection.isSet("damage")) {
| |
| 38 | - | meta.setLore(section.getStringList(rootitem + ".lore")); |
| 38 | + | item.setDurability((short) itemSection.getInt("damage", 0));
|
| 39 | - | if (section.isSet(rootitem + ".name")) |
| 39 | + | |
| 40 | - | meta.setDisplayName(section.getString(rootitem + ".name")); |
| 40 | + | meta.setLore(itemSection.getStringList("lore"));
|
| 41 | - | if (section.isSet(rootitem + ".ench")) {
|
| 41 | + | if (itemSection.isSet("name"))
|
| 42 | - | for (Entry ench : section.getConfigurationSection(rootitem + ".ench").getValues(false).entrySet()) {
|
| 42 | + | meta.setDisplayName(itemSection.getString("name"));
|
| 43 | if (itemSection.isSet("ench")) {
| |
| 44 | for (Entry ench : section.getConfigurationSection("ench").getValues(false).entrySet()) {
| |
| 45 | if (Enchantment.getByName(ench.getKey().toString()) == null) | |
| 46 | continue; | |
| 47 | try {
| |
| 48 | Integer.parseInt(ench.getValue().toString()); | |
| 49 | } catch (Exception e) {
| |
| 50 | continue; | |
| 51 | } | |
| 52 | item.addUnsafeEnchantment(Enchantment.getByName(ench.getKey().toString()), Integer.parseInt(ench.getValue().toString())); | |
| 53 | - | item.setDurability((short) section.getInt(rootitem + ".damage", 0)); |
| 53 | + | |
| 54 | } | |
| 55 | item.setItemMeta(meta); | |
| 56 | toReturn.add(item); | |
| 57 | } | |
| 58 | ||
| 59 | ||
| 60 | return (ItemStack[]) toReturn.toArray(); | |
| 61 | } | |
| 62 | ||
| 63 | } |