NetherGamesMC / PocketMine-MP

A multi protocol server software for Minecraft: Bedrock Edition in PHP
https://pmmp.io
GNU Lesser General Public License v3.0
78 stars 97 forks source link

Server crashed, pm5 #354

Closed StefanFox-Dev closed 1 year ago

StefanFox-Dev commented 1 year ago

Link to crashdump:

Error: Unmapped fake blockstate data: TAG_Compound={ "name" => TAG_String="minecraft:lava_cauldron" "version" => TAG_Int=17959425 "states" => TAG_Compound={ "cauldron_liquid" => TAG_String="water" "fill_level" => TAG_Int=3 } "PMMPDataVersion" => TAG_Long=1 } File: pmsrc/src/world/World Line: 1122 Type: pocketmine\utils\AssumptionFailedError Backtrace:

0 pmsrc/src/network/mcpe/handler/InGamePacketHandler(540): pocketmine\world\World->createBlockUpdatePackets(object pocketmine\network\mcpe\convert\TypeConverter#105691, array[12])

1 pmsrc/src/network/mcpe/handler/InGamePacketHandler(492): pocketmine\network\mcpe\handler\InGamePacketHandler->onFailedBlockAction(object pocketmine\math\Vector3#239919, int 1)

2 pmsrc/src/network/mcpe/handler/InGamePacketHandler(344): pocketmine\network\mcpe\handler\InGamePacketHandler->handleUseItemTransaction(object pocketmine\network\mcpe\protocol\types\inventory\UseItemTransactionData#124266)

3 pmsrc/vendor/nethergamesmc/bedrock-protocol/src/InventoryTransactionPacket(94): pocketmine\network\mcpe\handler\InGamePacketHandler->handleInventoryTransaction(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#118987)

4 pmsrc/src/network/mcpe/NetworkSession(511): pocketmine\network\mcpe\protocol\InventoryTransactionPacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#246736)

5 pmsrc/src/network/mcpe/NetworkSession(454): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#118987, string[38] .....v?.......rBr=.B.CIC@.A?...?..>.*)

6 pmsrc/src/network/mcpe/raklib/RakLibInterface(217): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[98] c.a.d.b59.&..2.I.LL.s..9..6;]p.tvx.h...`..s.n......X.....[.;=.?.....2P5.......8.)

7 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(40): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 3, string[107] .PE.x.m7.Y<.R_........s3.O#....."..L?.+J....p...bk..N...8..Q.K..S...7.8..:....b.)

8 pmsrc/src/network/mcpe/raklib/RakLibInterface(109): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#173757)

9 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(120): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib{closure}()

10 pmsrc/src/TimeTrackingSleeperHandler(58): pocketmine\snooze\SleeperHandler->processNotifications()

11 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(79): pocketmine\TimeTrackingSleeperHandler->processNotifications()

12 pmsrc/src/Server(1687): pocketmine\snooze\SleeperHandler->sleepUntil(float 1687865067.8846)

13 pmsrc/src/Server(1075): pocketmine\Server->tickProcessor()

14 pmsrc/src/PocketMine(334): pocketmine\Server->__construct(object pocketmine\thread\ThreadSafeClassLoader#4, object pocketmine\utils\MainLogger#5, string[11] /root/test/, string[19] /root/test/plugins/)

15 pmsrc/src/PocketMine(357): pocketmine\server()

Code: [1113] if($tile instanceof Spawnable && count($fakeStateProperties = $tile->getRenderUpdateBugWorkaroundStateProperties($fullBlock)) > 0){ [1114] $originalStateData = $blockTranslator->internalIdToNetworkStateData($fullBlock->getStateId()); [1115] $fakeStateData = new BlockStateData( [1116] $originalStateData->getName(), [1117] array_merge($originalStateData->getStates(), $fakeStateProperties), [1118] $originalStateData->getVersion() [1119] ); [1120] $packets[] = UpdateBlockPacket::create( [1121] $blockPosition, [1122] $blockTranslator->getBlockStateDictionary()->lookupStateIdFromData($fakeStateData) ?? throw new AssumptionFailedError("Unmapped fake blockstate data: " . $fakeStateData->toNbt()), [1123] UpdateBlockPacket::FLAG_NETWORK, [1124] UpdateBlockPacket::DATA_LAYER_NORMAL [1125] ); [1126] } [1127] $packets[] = UpdateBlockPacket::create( [1128] $blockPosition, [1129] $blockTranslator->internalIdToNetworkId($fullBlock->getStateId()), [1130] UpdateBlockPacket::FLAG_NETWORK, [1131] UpdateBlockPacket::DATA_LAYER_NORMAL [1132] );

Additional comments (optional)

dries-c commented 1 year ago

Which minecraft version