mfnalex

Untitled

Apr 28th, 2021
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package de.jeff_media.nbtserialization;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.Material;
  5. import org.bukkit.NamespacedKey;
  6. import org.bukkit.configuration.file.YamlConfiguration;
  7. import org.bukkit.inventory.ItemStack;
  8. import org.bukkit.inventory.meta.ItemMeta;
  9. import org.bukkit.persistence.PersistentDataContainer;
  10. import org.bukkit.persistence.PersistentDataType;
  11. import org.bukkit.plugin.java.JavaPlugin;
  12. import org.yaml.snakeyaml.Yaml;
  13.  
  14. import javax.naming.Name;
  15. import java.io.File;
  16. import java.io.IOException;
  17. import java.util.ArrayList;
  18.  
  19. public class Main extends JavaPlugin {
  20.  
  21.     @Override
  22.     public void onEnable() {
  23.  
  24.         getLogger().warning("Creating items");
  25.  
  26.         ArrayList<String> values = new ArrayList<>();
  27.  
  28.         values.add("This value is nothing special.");
  29.         values.add( "This \"String\" contains double quotes.");
  30.         values.add( "This 'String' contains \"double\" and single quotes");
  31.         values.add( "This is 'only single quotes'");
  32.         values.add( "[\"This contains\",\"some json\"]");
  33.  
  34.         for(int i = 0 ; i < values.size() ; i ++) {
  35.             getLogger().warning("Serializing item " + i);
  36.             YamlConfiguration yaml = new YamlConfiguration();
  37.             yaml.set("nbtValue",values.get(i));
  38.             yaml.set("item",createItem(Material.CHEST,values.get(i)));
  39.             try {
  40.                 yaml.save(new File(getDataFolder(), "item_" + i + ".yml"));
  41.             } catch (IOException ioException) {
  42.                 ioException.printStackTrace();
  43.             }
  44.         }
  45.  
  46.         for(int i = 0 ; i < values.size() ; i ++) {
  47.             getLogger().warning("Deserializing item " + i);
  48.             YamlConfiguration loaded = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "item_"+i+".yml"));
  49.         }
  50.  
  51.     }
  52.  
  53.     private ItemStack createItem(Material material, String nbtValue) {
  54.         ItemStack itemStack = new ItemStack(material);
  55.         addNbt(itemStack,"test",nbtValue);
  56.         return itemStack;
  57.     }
  58.  
  59.     private void addNbt(ItemStack itemStack, String key, String value) {
  60.         ItemMeta meta = itemStack.hasItemMeta() ? itemStack.getItemMeta() : Bukkit.getItemFactory().getItemMeta(itemStack.getType());
  61.         PersistentDataContainer pdc = meta.getPersistentDataContainer();
  62.         pdc.set(new NamespacedKey(this,key), PersistentDataType.STRING, value);
  63.         itemStack.setItemMeta(meta);
  64.     }
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment