nbt set ArrayList/StringList/List ?

318
12
Всем привет, и опять я со своими дурацкими вопросами :C
Мне надо записать Лист в nbt предмета. Я нашел только nbt.setIntArray. Но мне надо записывать строку, а не число :C
Какие идеи есть для того что бы сохранять лист, и потом получить?
 
Топорный метод:
Добавить NBT ноду. В неё под size - записать размер листа, а под числовыми строками ("0","1","2",..) записать элементы.
При чтение - читаешь NBT ноду, в ней читаешь size, а затем в цикле от 0 до size (не включительно) читаешь элементы
 
dark32 написал(а):
Топорный метод:
Добавить NBT ноду. В неё под size - записать размер листа, а под числовыми строками ("0","1","2",..) записать элементы.
При чтение - читаешь NBT ноду, в ней читаешь size, а затем в цикле от 0 до size (не включительно) читаешь элементы
Извините, но я не понимаю эти ноды :C
Можете объяснить или написать код, пожалуйста?
 
Если вопрос не понятен, то мне надо записывать именно лист.
Т.е к примеру вот он у меня:
public static ArrayList<String> arr = Lists.newArrayList();
arr.add("dsfsd");
nbt.setList("array", arr);
nbt.getList("array");
Вот по типу такого мне надо...
 
val originalList = listOf("Up", "Down", "Left", "Right")
val list = NBTTagList()
originalList.forEach { list.appendTag(NBTTagString(it)) }
 
List<String> abc = new ArrayList<>();
записи в лист
NBTTagList list= new NBTTagList();
list.stream().forEach(it -> list.appendTag(it))
 
Не разобрался не с одним из вариантов выше. Придумал свою реализацию.
ArrayList<String> arr = Lists.newArrayList();
arr.add("1:0");
arr.add("2:0");
arr.add("3:0");
String array = new String((String)arr.toString());
array = array.replace("[", "");
array = array.replace("]", "");
array = array.replaceAll(" ", "");
nbt.setString("arraylist", array);

Получение листа.
ArrayList<String> arr = Lists.newArrayList();
String[] array = new String(nbt.getString("arraylist")).split(",");
for(int k = 0; k < s.length; k++) {
arr.add(s[k]);
}
 
Не разобрался не с одним из вариантов выше.
Потому что не пытался, прочитай про steam java, облегчит тебе жизнь.
 
Назад
Сверху