Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.jeff_media.nbtserialization;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.NamespacedKey;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.persistence.PersistentDataContainer;
- import org.bukkit.persistence.PersistentDataType;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.yaml.snakeyaml.Yaml;
- import javax.naming.Name;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- public class Main extends JavaPlugin {
- @Override
- public void onEnable() {
- getLogger().warning("Creating items");
- ArrayList<String> values = new ArrayList<>();
- values.add("This value is nothing special.");
- values.add( "This \"String\" contains double quotes.");
- values.add( "This 'String' contains \"double\" and single quotes");
- values.add( "This is 'only single quotes'");
- values.add( "[\"This contains\",\"some json\"]");
- for(int i = 0 ; i < values.size() ; i ++) {
- getLogger().warning("Serializing item " + i);
- YamlConfiguration yaml = new YamlConfiguration();
- yaml.set("nbtValue",values.get(i));
- yaml.set("item",createItem(Material.CHEST,values.get(i)));
- try {
- yaml.save(new File(getDataFolder(), "item_" + i + ".yml"));
- } catch (IOException ioException) {
- ioException.printStackTrace();
- }
- }
- for(int i = 0 ; i < values.size() ; i ++) {
- getLogger().warning("Deserializing item " + i);
- YamlConfiguration loaded = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "item_"+i+".yml"));
- }
- }
- private ItemStack createItem(Material material, String nbtValue) {
- ItemStack itemStack = new ItemStack(material);
- addNbt(itemStack,"test",nbtValue);
- return itemStack;
- }
- private void addNbt(ItemStack itemStack, String key, String value) {
- ItemMeta meta = itemStack.hasItemMeta() ? itemStack.getItemMeta() : Bukkit.getItemFactory().getItemMeta(itemStack.getType());
- PersistentDataContainer pdc = meta.getPersistentDataContainer();
- pdc.set(new NamespacedKey(this,key), PersistentDataType.STRING, value);
- itemStack.setItemMeta(meta);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment