pmmp / NBT

PHP library for working with the NBT (Named Binary Tag) data storage format, as designed by Mojang.
GNU Lesser General Public License v3.0
40 stars 20 forks source link

CompoundTag bug. #43

Closed iZeaoGamer closed 5 years ago

iZeaoGamer commented 6 years ago

Issue description

So, my server somewhat lags upon certain items. And sometimes causes a player to get kicked from the server for flying when they wern't even flying. This is the error I'm getting at the same time:

TypeError: "Return value of pocketmine\nbt\tag\CompoundTag::key() must be of the type string or null, integer returned" (EXCEPTION) in "vendor/pocketmine/nbt/src/tag/CompoundTag" at line 474
04.09 10:09:52 [Server] Server thread/DEBUG #0 vendor/pocketmine/nbt/src/tag/CompoundTag(493): pocketmine\nbt\tag\CompoundTag->key()
04.09 10:09:52 [Server] Server thread/DEBUG #1 vendor/pocketmine/nbt/src/tag/NamedTag(106): pocketmine\nbt\tag\CompoundTag->equalsValue(pocketmine\nbt\tag\CompoundTag object)
04.09 10:09:52 [Server] Server thread/DEBUG #2 src/pocketmine/item/Item(835): pocketmine\nbt\tag\NamedTag->equals(pocketmine\nbt\tag\CompoundTag object)
04.09 10:09:52 [Server] Server thread/DEBUG #3 src/pocketmine/Player(2640): pocketmine\item\Item->equals(pocketmine\item\ItemBlock object)
04.09 10:09:52 [Server] Server thread/DEBUG #4 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(136): pocketmine\Player->handleMobEquipment(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:52 [Server] Server thread/DEBUG #5 src/pocketmine/network/mcpe/protocol/MobEquipmentPacket(63): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleMobEquipment(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:52 [Server] Server thread/DEBUG #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\MobEquipmentPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
04.09 10:09:52 [Server] Server thread/DEBUG #7 src/pocketmine/network/mcpe/protocol/BatchPacket(114): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:52 [Server] Server thread/DEBUG #8 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
04.09 10:09:52 [Server] Server thread/DEBUG #9 src/pocketmine/Player(3056): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
04.09 10:09:52 [Server] Server thread/DEBUG #10 src/pocketmine/network/mcpe/RakLibInterface(162): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
04.09 10:09:52 [Server] Server thread/DEBUG #11 vendor/pocketmine/raklib/src/server/ServerHandler(98): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 82.38.148.87 60663, raklib\protocol\EncapsulatedPacket object, integer 0)
04.09 10:09:52 [Server] Server thread/DEBUG #12 src/pocketmine/network/mcpe/RakLibInterface(103): raklib\server\ServerHandler->handlePacket()
04.09 10:09:52 [Server] Server thread/DEBUG #13 src/pocketmine/network/Network(94): pocketmine\network\mcpe\RakLibInterface->process()
04.09 10:09:52 [Server] Server thread/DEBUG #14 src/pocketmine/network/mcpe/RakLibInterface(80): pocketmine\network\Network->processInterface(pocketmine\network\mcpe\RakLibInterface object)
04.09 10:09:52 [Server] Server thread/DEBUG #15 vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
04.09 10:09:52 [Server] Server thread/DEBUG #16 vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
04.09 10:09:52 [Server] Server thread/DEBUG #17 src/pocketmine/Server(2259): pocketmine\snooze\SleeperHandler->sleepUntil(double 1536055792.0863)
04.09 10:09:52 [Server] Server thread/DEBUG #18 src/pocketmine/Server(2134): pocketmine\Server->tickProcessor()
04.09 10:09:52 [Server] Server thread/DEBUG #19 src/pocketmine/Server(1700): pocketmine\Server->start()
04.09 10:09:52 [Server] Server thread/DEBUG #20 src/pocketmine/PocketMine(243): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /, string /plugins/)
04.09 10:09:52 [Server] Server thread/DEBUG #21 /custom-php7.2.phar(1): require(string phar:///custom-php7.2.phar/src/pocketmine/PocketMine.php)
04.09 10:09:52 [Server] RakLibServer thread/NOTICE Blocked 82.38.148.87 for 5 seconds
04.09 10:09:57 [Server] Server thread/CRITICAL TypeError: "Return value of pocketmine\nbt\tag\CompoundTag::key() must be of the type string or null, integer returned" (EXCEPTION) in "vendor/pocketmine/nbt/src/tag/CompoundTag" at line 474
04.09 10:09:57 [Server] Server thread/DEBUG #0 vendor/pocketmine/nbt/src/tag/CompoundTag(493): pocketmine\nbt\tag\CompoundTag->key()
04.09 10:09:57 [Server] Server thread/DEBUG #1 vendor/pocketmine/nbt/src/tag/NamedTag(106): pocketmine\nbt\tag\CompoundTag->equalsValue(pocketmine\nbt\tag\CompoundTag object)
04.09 10:09:57 [Server] Server thread/DEBUG #2 src/pocketmine/item/Item(835): pocketmine\nbt\tag\NamedTag->equals(pocketmine\nbt\tag\CompoundTag object)
04.09 10:09:57 [Server] Server thread/DEBUG #3 src/pocketmine/Player(2640): pocketmine\item\Item->equals(pocketmine\item\ItemBlock object)
04.09 10:09:57 [Server] Server thread/DEBUG #4 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(136): pocketmine\Player->handleMobEquipment(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:57 [Server] Server thread/DEBUG #5 src/pocketmine/network/mcpe/protocol/MobEquipmentPacket(63): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleMobEquipment(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:57 [Server] Server thread/DEBUG #6 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\MobEquipmentPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
04.09 10:09:57 [Server] Server thread/DEBUG #7 src/pocketmine/network/mcpe/protocol/BatchPacket(114): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\MobEquipmentPacket object)
04.09 10:09:57 [Server] Server thread/DEBUG #8 src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(92): pocketmine\network\mcpe\protocol\BatchPacket->handle(pocketmine\network\mcpe\PlayerNetworkSessionAdapter object)
04.09 10:09:57 [Server] Server thread/DEBUG #9 src/pocketmine/Player(3056): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
04.09 10:09:57 [Server] Server thread/DEBUG #10 src/pocketmine/network/mcpe/RakLibInterface(162): pocketmine\Player->handleDataPacket(pocketmine\network\mcpe\protocol\BatchPacket object)
04.09 10:09:57 [Server] Server thread/DEBUG #11 vendor/pocketmine/raklib/src/server/ServerHandler(98): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string 82.38.148.87 60663, raklib\protocol\EncapsulatedPacket object, integer 0)
04.09 10:09:57 [Server] Server thread/DEBUG #12 src/pocketmine/network/mcpe/RakLibInterface(103): raklib\server\ServerHandler->handlePacket()
04.09 10:09:57 [Server] Server thread/DEBUG #13 src/pocketmine/network/Network(94): pocketmine\network\mcpe\RakLibInterface->process()
04.09 10:09:57 [Server] Server thread/DEBUG #14 src/pocketmine/network/mcpe/RakLibInterface(80): pocketmine\network\Network->processInterface(pocketmine\network\mcpe\RakLibInterface object)
04.09 10:09:57 [Server] Server thread/DEBUG #15 vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe\{closure}()
04.09 10:09:57 [Server] Server thread/DEBUG #16 vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
04.09 10:09:57 [Server] Server thread/DEBUG #17 src/pocketmine/Server(2259): pocketmine\snooze\SleeperHandler->sleepUntil(double 1536055797.5863)
04.09 10:09:57 [Server] Server thread/DEBUG #18 src/pocketmine/Server(2134): pocketmine\Server->tickProcessor()
04.09 10:09:57 [Server] Server thread/DEBUG #19 src/pocketmine/Server(1700): pocketmine\Server->start()
04.09 10:09:57 [Server] Server thread/DEBUG #20 src/pocketmine/PocketMine(243): pocketmine\Server->__construct(BaseClassLoader object, pocketmine\utils\MainLogger object, string /, string /plugins/)
04.09 10:09:57 [Server] Server thread/DEBUG #21 /custom-php7.2.phar(1): require(string phar:///custom-php7.2.phar/src/pocketmine/PocketMine.php)

OS and versions

Plugins

dktapps commented 6 years ago

Interesting. I suspect this is to do with PHP array key casting behaviour.

I'm going to close this since it's on the wrong repo. Please open a new issue on the NBT repository.

iZeaoGamer commented 6 years ago

Okay, I have opened a new issue in the NBT repository. Please check it when you can, thanks.