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, when player join version < 1.18.30 #338

Closed StefanFox-Dev closed 1 year ago

StefanFox-Dev commented 1 year ago

PocketMine-MP version: 5.1.3+dev [Protocol 589] Git commit: 0000000000000000000000000000000000000000 PHP version: 8.2.6 OS: Linux, linux

Error: Unmapped string ID "minecraft:mangrove_planks" File: pmsrc/vendor/nethergamesmc/bedrock-protocol/src/serializer/ItemTypeDictionary Line: 54 Type: InvalidArgumentException Backtrace:

0 pmsrc/src/network/mcpe/convert/ItemTranslator(117): pocketmine\network\mcpe\protocol\serializer\ItemTypeDictionary->fromStringId(string[25] minecraft:mangrove_planks)

1 pmsrc/src/network/mcpe/convert/ItemTranslator(94): pocketmine\network\mcpe\convert\ItemTranslator->toNetworkId(object pocketmine\item\ItemBlock#65837)

2 pmsrc/src/network/mcpe/convert/TypeConverter(200): pocketmine\network\mcpe\convert\ItemTranslator->toNetworkIdQuiet(object pocketmine\item\ItemBlock#65837)

3 pmsrc/src/network/mcpe/cache/CreativeInventoryCache(64): pocketmine\network\mcpe\convert\TypeConverter->coreItemStackToNet(object pocketmine\item\ItemBlock#65837)

4 pmsrc/src/network/mcpe/cache/CreativeInventoryCache(51): pocketmine\network\mcpe\cache\CreativeInventoryCache->buildCreativeInventoryCache(object pocketmine\inventory\CreativeInventory#41215, int 486)

5 pmsrc/src/network/mcpe/InventoryManager(606): pocketmine\network\mcpe\cache\CreativeInventoryCache->getCache(object pocketmine\inventory\CreativeInventory#41215, int 486)

6 pmsrc/src/network/mcpe/handler/PreSpawnPacketHandler(146): pocketmine\network\mcpe\InventoryManager->syncCreative(int 486)

7 pmsrc/src/network/mcpe/NetworkSession(364): pocketmine\network\mcpe\handler\PreSpawnPacketHandler->setUp()

8 pmsrc/src/network/mcpe/NetworkSession(890): pocketmine\network\mcpe\NetworkSession->setHandler(object pocketmine\network\mcpe\handler\PreSpawnPacketHandler#107959)

9 pmsrc/src/network/mcpe/NetworkSession(315): pocketmine\network\mcpe\NetworkSession->beginSpawnSequence()

10 pmsrc/src/promise/Promise(45): pocketmine\network\mcpe\NetworkSession->onPlayerCreated(object pocketmine\player\Player#120362)

11 pmsrc/src/network/mcpe/NetworkSession(252): pocketmine\promise\Promise->onCompletion(object Closure#70680, object Closure#145555)

12 pmsrc/src/network/mcpe/NetworkSession(885): pocketmine\network\mcpe\NetworkSession->createPlayer()

13 pmsrc/src/network/mcpe/handler/ResourcePacksPacketHandler(144): pocketmine\network\mcpe\NetworkSession->pocketmine\network\mcpe{closure}()

14 pmsrc/vendor/nethergamesmc/bedrock-protocol/src/ResourcePackClientResponsePacket(61): pocketmine\network\mcpe\handler\ResourcePacksPacketHandler->handleResourcePackClientResponse(object pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket#95163)

15 pmsrc/src/network/mcpe/NetworkSession(511): pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket->handle(object pocketmine\network\mcpe\handler\ResourcePacksPacketHandler#120355)

16 pmsrc/src/network/mcpe/NetworkSession(454): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\ResourcePackClientResponsePacket#95163, string[4] ....)

17 pmsrc/src/network/mcpe/raklib/RakLibInterface(217): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[7] c.a..)

18 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(40): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 0, string[16] ....D..S....5..V)

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

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

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

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

23 pmsrc/src/Server(1688): pocketmine\snooze\SleeperHandler->sleepUntil(float 1686717509.6245)

24 pmsrc/src/Server(1076): pocketmine\Server->tickProcessor()

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

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

Code: [45] @return ItemTypeEntry[] [46] @phpstan-return list [47] */ [48] public function getEntries() : array{ [49] return $this->itemTypes; [50] } [51] [52] public function fromStringId(string $stringId) : int{ [53] if(!array_key_exists($stringId, $this->stringToIntMap)){ [54] throw new \InvalidArgumentException("Unmapped string ID \"$stringId\""); [55] } [56] return $this->stringToIntMap[$stringId]; [57] } [58] [59] public function fromIntId(int $intId) : string{ [60] if(!array_key_exists($intId, $this->intToStringIdMap)){ [61] throw new \InvalidArgumentException("Unmapped int ID $intId"); [62] } [63] return $this->intToStringIdMap[$intId]; [64] }