Помогите Восстановление предметов из модов из файла

  • Автор темы Автор темы Worrag
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Worrag

Активный участник
Пользователь
Баллы
68
Всем привет, встала такая проблема: у меня плагин на аукцион, роль которого выполняет кастомный инвентарь. При запуске сервера все предметы восстанавливаются в него через yml файл, но некоторые предметы из модов (в основном ботания) восстанавливаются некорректно.
Пример: в ботании есть планшет маны, у которого может быть разное количество маны. У меня он восстанавливается всегда пустой
Пример 2: в той же ботании есть цветы с одинаковым id и без даты, при восстановлении появляется совсем не тот цветок что был выставлен на продажу.

Понятно, что у них есть какие-то нестандартные атрибуты, но реально ли их как-то получить и записать при помощи плагина?
 
Если аукцион сапомис(а даже если и нет), то можно перевести хранения предметов в формат NBT в файлы.
Т.е. сериализировать предметы в файлы в их NBT представлении и восстанавливать по такой же схеме.
Тогда они будут сохранять все параметры и атрибуты.
 
Записывать в yml nbt я научился, а вот как правильно считать из него чет не могу додуматься
 
В ссылке выше есть всё, что тебе может потребоваться.
https://github.com/alexandrage/nbtk...nbtkits/src/nbtkits/InventoryNBTSer.java#L175
Может быть так оно есть, но там все предметы из инвентаря скомпанованы в один list, после чего идёт его запись в файл методом NBTCompressedStreamTools, и я так понимаю что ничего лишнего в файле нет. Поправьте, если я ошибаюсь.
Я же записываю в один файл все предметы по мере добавления, причем у каждого итема в yml-секции 3 атрибута: цена, продавец, и сам NBT. Как достать этот nbt в таком случае я и не могу понять, ведь помимо него в файле ещё есть данные. Если бы в файле было только NBT я бы тем же NBTCompressedStreamTools(new FileInputStream(path)) легко бы всё вытащил..
Можно конечно для каждого предмета создавать отдельный файл под nbt-теги, но идея с одним мне больше нравится )
 
На NBTTagCompound тэг можно нацепить ещё теги, сделай так, чтобы древо из тегов были твоими путями.
 
Идею понял, попробую
Да и если у тебя уже предметы хранятся в nbt то и цену с продавцом там же храни, проще прост будет. Уж если разобрался как писать nbt предметов ну так и с примитивными данными разберёшься. И nbt не нужно хранить в yml, можно в "file.dat"(конечно это мало чего изменит, то так правильней).
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх