1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

Add Chest Tile

Discussion in 'Development' started by Todo56, Nov 30, 2019.

  1. Todo56

    Todo56 Silverfish

    Messages:
    17
    GitHub:
    todo56
    Hey, I'm trying to make a chest UI but I get this error:

    [18:23:51] [Server thread/CRITICAL]: RuntimeException: "Cannot access dynamic field "Items": Dynamic field access on pocketmine\nbt\tag\CompoundTag is no longer supported" (EXCEPTION) in "vendor/pocketmine/nbt/src/tag/NoDynamicFieldsTrait" at line 31
    [18:23:51] [Server thread/DEBUG]: #0 vendor/pocketmine/nbt/src/tag/NoDynamicFieldsTrait(35): pocketmine\nbt\tag\CompoundTag->throw(string[5] Items)
    [18:23:51] [Server thread/DEBUG]: #1 plugins/HydroPEVaults/src/HydroPEVaults/commands/VaultCommand(50): pocketmine\nbt\tag\CompoundTag->__get(string[5] Items)
    [18:23:51] [Server thread/DEBUG]: #2 src/pocketmine/command/SimpleCommandMap(270): HydroPEVaults\commands\VaultCommand->execute(object pocketmine\Player, string[5] vault, array[1])
    [18:23:51] [Server thread/DEBUG]: #3 src/pocketmine/Server(2035): pocketmine\command\SimpleCommandMap->dispatch(object pocketmine\Player, string[10] vault open)
    [18:23:51] [Server thread/DEBUG]: #4 src/pocketmine/Player(2312): pocketmine\Server->dispatchCommand(object pocketmine\Player, string[10] vault open)
    [18:23:51] [Server thread/DEBUG]: #5 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(244): pocketmine\Player->chat(string[11] /vault open)
    [18:23:51] [Server thread/DEBUG]: #6 src/pocketmine/network/mcpe/protocol/CommandRequestPacket(54): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleCommandRequest(object pocketmine\network\mcpe\protocol\CommandRequestPacket)
    [18:23:51] [Server thread/DEBUG]: #7 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(110): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter)
    [18:23:51] [Server thread/DEBUG]: #8 src/pocketmine/network/mcpe/protocol/BatchPacket(126): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\CommandRequestPacket)
    [18:23:51] [Server thread/DEBUG]: #9 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(110): pocketmine\network\mcpe\protocol\BatchPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter)
    [18:23:51] [Server thread/DEBUG]: #10 src/pocketmine/Player(3205): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
    [18:23:51] [Server thread/DEBUG]: #11 src/pocketmine/network/mcpe/RakLibInterface(169): pocketmine\Player->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket)
    [18:23:51] [Server thread/DEBUG]: #12 vendor/pocketmine/raklib/src/server/ServerHandler(99): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string[15] 127.0.0.1 50044, object raklib\protocol\EncapsulatedPacket, integer 0)
    [18:23:51] [Server thread/DEBUG]: #13 src/pocketmine/network/mcpe/RakLibInterface(109): raklib\server\ServerHandler->handlePacket()
    [18:23:51] [Server thread/DEBUG]: #14 src/pocketmine/network/mcpe/RakLibInterface(99): pocketmine\network\mcpe\RakLibInterface->process()
    [18:23:51] [Server thread/DEBUG]: #15 vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
    [18:23:51] [Server thread/DEBUG]: #16 vendor/pocketmine/snooze/src/SleeperHandler(85): pocketmine\snooze\SleeperHandler->processNotifications()
    [18:23:51] [Server thread/DEBUG]: #17 src/pocketmine/Server(2355): pocketmine\snooze\SleeperHandler->sleepUntil(double 1575138231.8723)
    [18:23:51] [Server thread/DEBUG]: #18 src/pocketmine/Server(2212): pocketmine\Server->tickProcessor()
    [18:23:51] [Server thread/DEBUG]: #19 src/pocketmine/Server(1790): pocketmine\Server->start()
    [18:23:51] [Server thread/DEBUG]: #20 src/pocketmine/PocketMine(275): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[30] D:\Gtfr\Desktop\allpmmp\pmmp1\, string[38] D:\Gtfr\Desktop\allpmmp\pmmp1\plugins\)
    [18:23:51] [Server thread/DEBUG]: #21 src/pocketmine/PocketMine(299): pocketmine\server()

    This is my code:

    PHP:
                    $block Block::get(54);
                    
    $sender->getLevel()->setBlock(new Vector3($sender->getX(), $sender->getY() - 2$sender->getZ()), $blocktruetrue);
                    
    $nbt = new CompoundTag("", [
                        new 
    ListTag("Items", []),
                        new 
    StringTag("id"Tile::CHEST),
                        new 
    IntTag("x"floor($sender->getX())),
                        new 
    IntTag("y"floor($sender->getY() ) - 2),
                        new 
    IntTag("z"floor($sender->getZ()))
                    ]);
                    
    $nbt->Items->setTagType(NBT::TAG_Compound);
                    
    $tile Tile::createTile("Chest"$sender->getLevel(), $nbt);
                    
    $i $tile->getInventory();
                    
    $i->addItem(Item::get(Item::STONE01));
                    
    $sender->addWindow($tile->getInventory());
    When i delete the line causing the crash I just hear the sound and that's it.
     
  2. TobiasDev

    TobiasDev Spider

    Messages:
    13
    GitHub:
    tobiasg-de
    You will need to get that ListTag via the Method Provided in $nbt ( i think it's getListTag() ), not through dynamic access
     
    HimbeersaftLP likes this.
  3. HeyDeniis_

    HeyDeniis_ Baby Zombie

    Messages:
    137
    use
    $nbt->getTag("Items")->setTagType......
     
  4. TobiasDev

    TobiasDev Spider

    Messages:
    13
    GitHub:
    tobiasg-de
    You don't even need that, getTag takes an class path as second parameter, so getTag("Items", ListTag::class) should work too
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.