Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. private ItemStack loadItemStack(String key, ConfigurationSection section) {
  2.         String materialName = section.getString(key + ".material");
  3.         Material material = Material.getMaterial(materialName);
  4.         if(material == null) {
  5.             plugin.getLogger().log(Level.WARNING, "Unknown material name " + materialName);
  6.             return null;
  7.         }
  8.  
  9.         byte data = (byte) section.getInt(key + ".data", 0);
  10.         int amount = section.getInt(key + ".amount", 1);
  11.  
  12.         String name = section.getString(key + ".name");
  13.  
  14.         List<String> lore = null;
  15.         if(section.contains(key + ".lore")) {
  16.             lore = section.getStringList(key + ".lore");
  17.         }
  18.  
  19.         Map<Enchantment, Integer> enchantMap = null;
  20.         if(section.contains(key + ".enchantments")) {
  21.             enchantMap = Maps.newHashMap();
  22.  
  23.             ConfigurationSection enchantSection = section.getConfigurationSection(key + ".enchantments");
  24.             for(String enchantKey : enchantSection.getKeys(false)) {
  25.                 Enchantment enchantment = Enchantment.getByName(enchantKey);
  26.                 if(enchantment == null) {
  27.                     plugin.getLogger().log(Level.WARNING, "Unknown enchantment name " + enchantKey);
  28.                     continue;
  29.                 }
  30.  
  31.                 enchantMap.put(enchantment, enchantSection.getInt(enchantKey));
  32.             }
  33.         }
  34.  
  35.         Map<String, Object> nbtMap = null;
  36.         if(section.contains(key + ".nbt")) {
  37.             nbtMap = Maps.newHashMap();
  38.  
  39.             ConfigurationSection nbtSection = section.getConfigurationSection(key + ".nbt");
  40.             for(String nbtKey : nbtSection.getKeys(false)) {
  41.                 nbtMap.put(nbtKey, nbtSection.get(nbtKey));
  42.             }
  43.         }
  44.  
  45.         ItemStackBuilder builder = ItemStackBuilder.of(material)
  46.                 .data(data)
  47.                 .amount(amount)
  48.                 .showAttributes();
  49.         if(name != null) {
  50.             builder.name(name);
  51.         }
  52.         if(lore != null) {
  53.             builder.lore(lore);
  54.         }
  55.         if(enchantMap != null) {
  56.             for(Map.Entry<Enchantment, Integer> entry : enchantMap.entrySet()) {
  57.                 builder.enchant(entry.getKey(), entry.getValue());
  58.             }
  59.         }
  60.         if(nbtMap != null) {
  61.             for(Map.Entry<String, Object> entry : nbtMap.entrySet()) {
  62.                 String nbtKey = entry.getKey();
  63.                 Object value = entry.getValue();
  64.  
  65.                 if (value instanceof String) {
  66.                     builder.tag(nbtKey, (String) value);
  67.                 } else if(value instanceof Byte) {
  68.                     builder.tag(nbtKey, (Byte) value);
  69.                 } else if(value instanceof Short) {
  70.                     builder.tag(nbtKey, (Short) value);
  71.                 } else if(value instanceof Integer) {
  72.                     builder.tag(nbtKey, (Integer) value);
  73.                 } else if(value instanceof Long) {
  74.                     builder.tag(nbtKey, (Long) value);
  75.                 } else if(value instanceof Double) {
  76.                     builder.tag(nbtKey, (Double) value);
  77.                 } else if(value instanceof Float) {
  78.                     builder.tag(nbtKey, (Float) value);
  79.                 } else if(value instanceof Boolean) {
  80.                     builder.tag(nbtKey, (Boolean) value);
  81.                 }
  82.             }
  83.         }
  84.  
  85.         return builder.build();
  86.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement