package me.map.example; import me.map.ultimatekingdom.API.objects.Kingdom; import me.map.ultimatekingdom.API.objects.data.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class metadata { public void addMetaData(Kingdom kingdom) { //create list List metaArrayList = new ArrayList<>(); //check for existing data if (kingdom.hasMeta("customMetaName")) { MetaData data = kingdom.getMetadata("customMetaName"); //get value (List) metaArrayList = (List) data.getValue(); //get label if you need it. String label = data.getLabel(); //or just use this one metaArrayList = (List) kingdom.getMetadata("customMetaName").getValue(); } //add value. metaArrayList.add("bla"); //convert list to metadata and save MetaData myMetaData = new ListField("customMetaName", metaArrayList); //or save with a extra label, MetaData myMetaData2 = new ListField("customMetaName", metaArrayList,"ExtraLabel" ); //savedata kingdom.addMetaData(myMetaData); } public void removeMetaData(Kingdom kingdom) { List metaArrayList = new ArrayList<>(); if (kingdom.hasMeta("customMetaName")) { metaArrayList = (List) kingdom.getMetadata("customMetaName").getValue(); } //remove value metaArrayList.remove("bla"); //convert and save to kingdom MetaData myMetaData = new ListField("customMetaName", metaArrayList); // convert with a label. MetaData myMetaData2 = new ListField("customMetaName", metaArrayList,"ExtraLabel" ); kingdom.addMetaData(myMetaData); //remove all values kingdom.removeMetaData(myMetaData); } public void test () { //boolean boolean booleanMeta = true; MetaData booleanMetaData = new BooleanDataField("customMetaName", booleanMeta); MetaData booleanMetaData2 = new BooleanDataField("customMetaName", booleanMeta,"ExtraLabel" ); //Integer Integer integermeta = 1; MetaData integerDataField = new IntegerDataField("customMetaName", integermeta); MetaData integerDataField1 = new IntegerDataField("customMetaName", integermeta,"ExtraLabel" ); //Double Double doubevalue = 0.1; MetaData decimalDataField = new DecimalDataField("customMetaName", doubevalue); MetaData decimalDataField1 = new DecimalDataField("customMetaName", doubevalue,"doubevalue" ); //Long Long longvalue = 10L; MetaData longDataField = new LongDataField("customMetaName", longvalue); MetaData longDataField1 = new LongDataField("customMetaName", longvalue,"longvalue" ); //String String stringvalue = "string"; MetaData stringDataField = new StringDataField("customMetaName", stringvalue); MetaData stringDataField1 = new StringDataField("customMetaName", stringvalue,"longvalue" ); // arraylist List metaArrayList = new ArrayList<>(); // MetaData listField = new ListField("customMetaName", metaArrayList); MetaData listField1 = new ListField("customMetaName", metaArrayList,"ExtraLabel" ); //Hashmap Map metaHashmap = new HashMap(); MetaData hashMapStringIntegerField = new HashMapStringIntegerField("customMetaName", metaHashmap); MetaData hashMapStringIntegerField1 = new HashMapStringIntegerField("customMetaName", metaHashmap,"ExtraLabel"); //Hashmap Map metaHashmap2 = new HashMap(); MetaData hashMapStringBooleanField = new HashMapStringBooleanField("customMetaName", metaHashmap2); MetaData hashMapStringBooleanField1 = new HashMapStringBooleanField("customMetaName", metaHashmap2,"ExtraLabel"); } }