Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ItemStack loadItemStack(String key, ConfigurationSection section) {
- String materialName = section.getString(key + ".material");
- Material material = Material.getMaterial(materialName);
- if(material == null) {
- plugin.getLogger().log(Level.WARNING, "Unknown material name " + materialName);
- return null;
- }
- byte data = (byte) section.getInt(key + ".data", 0);
- int amount = section.getInt(key + ".amount", 1);
- String name = section.getString(key + ".name");
- List<String> lore = null;
- if(section.contains(key + ".lore")) {
- lore = section.getStringList(key + ".lore");
- }
- Map<Enchantment, Integer> enchantMap = null;
- if(section.contains(key + ".enchantments")) {
- enchantMap = Maps.newHashMap();
- ConfigurationSection enchantSection = section.getConfigurationSection(key + ".enchantments");
- for(String enchantKey : enchantSection.getKeys(false)) {
- Enchantment enchantment = Enchantment.getByName(enchantKey);
- if(enchantment == null) {
- plugin.getLogger().log(Level.WARNING, "Unknown enchantment name " + enchantKey);
- continue;
- }
- enchantMap.put(enchantment, enchantSection.getInt(enchantKey));
- }
- }
- Map<String, Object> nbtMap = null;
- if(section.contains(key + ".nbt")) {
- nbtMap = Maps.newHashMap();
- ConfigurationSection nbtSection = section.getConfigurationSection(key + ".nbt");
- for(String nbtKey : nbtSection.getKeys(false)) {
- nbtMap.put(nbtKey, nbtSection.get(nbtKey));
- }
- }
- ItemStackBuilder builder = ItemStackBuilder.of(material)
- .data(data)
- .amount(amount)
- .showAttributes();
- if(name != null) {
- builder.name(name);
- }
- if(lore != null) {
- builder.lore(lore);
- }
- if(enchantMap != null) {
- for(Map.Entry<Enchantment, Integer> entry : enchantMap.entrySet()) {
- builder.enchant(entry.getKey(), entry.getValue());
- }
- }
- if(nbtMap != null) {
- for(Map.Entry<String, Object> entry : nbtMap.entrySet()) {
- String nbtKey = entry.getKey();
- Object value = entry.getValue();
- if (value instanceof String) {
- builder.tag(nbtKey, (String) value);
- } else if(value instanceof Byte) {
- builder.tag(nbtKey, (Byte) value);
- } else if(value instanceof Short) {
- builder.tag(nbtKey, (Short) value);
- } else if(value instanceof Integer) {
- builder.tag(nbtKey, (Integer) value);
- } else if(value instanceof Long) {
- builder.tag(nbtKey, (Long) value);
- } else if(value instanceof Double) {
- builder.tag(nbtKey, (Double) value);
- } else if(value instanceof Float) {
- builder.tag(nbtKey, (Float) value);
- } else if(value instanceof Boolean) {
- builder.tag(nbtKey, (Boolean) value);
- }
- }
- }
- return builder.build();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement