Помогите сундук вставляется без вещей | schematic

Статус
Закрыто для дальнейших ответов.

nutrolshok

Активный участник
Пользователь
Баллы
76
Кр4, писал я скай блок, всё было нормально... Дело дошло до нормального острова. Я его построил, скопировал, вставил - всё нормально, всё переносится. Залил в schematic, залил в плагин. Тещу - вещей в сундуке нет. Вот отрывок кода, который отвечает за вставку сундука

UPD: версия майна 1.12.2

Код:
if(id.equalsIgnoreCase("Chest")) {
                List<Tag> items = getChildTag(tags, "Items", ListTag.class).getValue();
                Block block = new Location(loc.getWorld(), x + loc.getX(), y + loc.getY(), z + loc.getZ()).getBlock();
                if (block.getState() instanceof Chest) {
                    Chest chest = (Chest) block.getState();
                    for (Tag item : items) {
                        if (!(item instanceof CompoundTag))
                            continue;
                        Map<String, Tag> itemtag = ((CompoundTag) item).getValue();
                        byte slot = getChildTag(itemtag, "Slot", ByteTag.class).getValue();
                        String name = (getChildTag(itemtag, "id", StringTag.class).getValue()).toLowerCase().replace("minecraft:", "");
                        Byte amount = getChildTag(itemtag, "Count", ByteTag.class).getValue();
                        if(MultiversionMaterials.fromString(name.toUpperCase()) != null){
                            Material material = MultiversionMaterials.fromString(name.toUpperCase()).parseMaterial();
                            if (material != null) {
                                chest.getBlockInventory().setItem(slot, new ItemStack(material, amount));
                            }
                        }
                    }
                }
            }
 
Последнее редактирование:
Попробуй добавить chest.update() после цикла предметов.
Ну, и убедись, что setItem выполняется с корректным материалом.
Условие
if(MultiversionMaterials.fromString(name.toUpperCase()) != null){
не нужно, кстати (хотя это не причина проблемы)
 
Последнее редактирование:
Попробуй добавить chest.update() после цикла предметов.
Ну, и убедись, что setItem выполняется с корректным материалом.
Условие
if(MultiversionMaterials.fromString(name.toUpperCase()) != null){
не нужно, кстати (хотя это не причина проблемы)
Щас попробую. Надеюсь, поможет.
 
"Spigot API 1.14.3" чекни текст поста, я там вчера добавил версию майна
https://imgur.com/a/9MaWAH9
getSnapshotInventory пиши.
18958b4e1c.jpg
 
Понимаешь, в API Bukkit'a 1.12.2 нет метода getSnapshotInventory()
Должен быть. Вот сорсы лета 2017 - метод вполне себе на месте.
upd: Хотя, отбой. Есть вероятность, что Chest раньше не был Conatiner'ом
upd2: Довольно странно. В какой-то момент API резко изменилось. Однако, это должно быть в 1.12.2, ибо первый снапшот 1.13 вышел лишь осенью этого же года.
 
Последнее редактирование:
Он есть и давно.
Должен быть. Вот сорсы лета 2017 - метод вполне себе на месте.
upd: Хотя, отбой. Есть вероятность, что Chest раньше не был Conatiner'ом
upd2: Довольно странно. В какой-то момент API резко изменилось. Однако, это должно быть в 1.12.2, ибо первый снапшот 1.13 вышел лишь осенью этого же года.
https://imgur.com/a/IxPooJH
 
Screenshot_400.png Забыл упомянуть, у меня скай блок под разные версии майна. Из-за этого я ограничен в действиях. Когда-то я хотел добавить звуки для разных действий. Но не смог. Звуков 1.12.2 не было, были только для 1.8.

UPD: подумываю убрать возможность заходить с других версий
 
Должен быть. Вот сорсы лета 2017 - метод вполне себе на месте.
upd: Хотя, отбой. Есть вероятность, что Chest раньше не был Conatiner'ом
upd2: Довольно странно. В какой-то момент API резко изменилось. Однако, это должно быть в 1.12.2, ибо первый снапшот 1.13 вышел лишь осенью этого же года.
С 1.12.1 уже был.
 
Посмотреть вложение 54292 Забыл упомянуть, у меня скай блок под разные версии майна. Из-за этого я ограничен в действиях. Когда-то я хотел добавить звуки для разных действий. Но не смог. Звуков 1.12.2 не было, были только для 1.8.

UPD: подумываю убрать возможность заходить с других версий
В чем твои проблемы? Ставь протоколсапорт и сервер везде будет 1.14.3, а заход с 1.8 до последней.
 
Понимаешь, в API Bukkit'a 1.12.2 нет метода getSnapshotInventory()
Тебе все говорят, что есть. Наверно, стоит загрузить последнюю версию ядра 1.12.2?
Вообще, на самом деле, ХЗ, зачем этот снапшот с учётом, что в сундуки без проблем устанавливали содержимое и в более ранних версиях, когда этого снапшота и в помине не было.
Странно, на самом деле...

Посмотреть вложение 54292 Забыл упомянуть, у меня скай блок под разные версии майна.
UPD: подумываю убрать возможность заходить с других версий
Ты пишешь скайблок под разные версии NMS, потому что у тебя игроки с разных версий заходят? Если сервер на 1.14 - так и оставь только свой NMS_v1_14_R1.
Или это для работы с пакетами или плагин для паблика?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх