Плагины крашают сервер и RakLib ломается

Ядро: PocketMine-MP (мультиядро)
API: 4.5.2
Версия: 1.18-1.19

Стоял плагин EasyEdit (с поггита). Что-то топорчиком там делал, выделял и тут неожиданно это:

2022-07-26 [12:28:30.591] [Server thread/CRITICAL]: TypeError: "pocketmine\world\World::createBlockUpdatePackets(): Argument #1 ($mappingProtocol) must be of type int, array given, called in phar:///root/pmmp4/plugins/EasyEdit.phar/src/platz1de/EasyEdit/utils/PacketUtils.php on line 72" (EXCEPTION) in "pmsrc/src/world/World" at line 993
--- Stack trace ---
  #0 plugins/EasyEdit.phar/src/platz1de/EasyEdit/utils/PacketUtils(72): pocketmine\world\World->createBlockUpdatePackets(array[1])
  #1 plugins/EasyEdit.phar/src/platz1de/EasyEdit/utils/PacketUtils(47): platz1de\EasyEdit\utils\PacketUtils::resendBlock(object pocketmine\world\Position#626790, object pocketmine\world\World#26450, object pocketmine\player\Player#39304)
  #2 plugins/EasyEdit.phar/src/platz1de/EasyEdit/utils/HighlightingManager(77): platz1de\EasyEdit\utils\PacketUtils::sendFakeBlock(object pocketmine\world\Position#626790, object pocketmine\world\World#26450, object pocketmine\player\Player#39304, int 4032, object pocketmine\nbt\tag\CompoundTag#630836)
  #3 plugins/EasyEdit.phar/src/platz1de/EasyEdit/utils/HighlightingManager(65): platz1de\EasyEdit\utils\HighlightingManager::sendStaticHolder(string[13] WaxiestMoriss, int 1)
  #4 plugins/EasyEdit.phar/src/platz1de/EasyEdit/selection/Cube(42): platz1de\EasyEdit\utils\HighlightingManager::highlightStaticCube(string[13] WaxiestMoriss, object pocketmine\world\World#26450, object pocketmine\math\Vector3#630296, object pocketmine\math\Vector3#630689, object pocketmine\math\Vector3#631475)
  #5 plugins/EasyEdit.phar/src/platz1de/EasyEdit/selection/Selection(144): platz1de\EasyEdit\selection\Cube->update()
  #6 plugins/EasyEdit.phar/src/platz1de/EasyEdit/selection/Cube(168): platz1de\EasyEdit\selection\Selection->setPos2(object pocketmine\math\Vector3#632049)
  #7 plugins/EasyEdit.phar/src/platz1de/EasyEdit/command/defaults/selection/SecondPositionCommand(27): platz1de\EasyEdit\selection\Cube::selectPos2(object pocketmine\player\Player#39304, object pocketmine\math\Vector3#629579)
  #8 plugins/EasyEdit.phar/src/platz1de/EasyEdit/command/CommandManager(42): platz1de\EasyEdit\command\defaults\selection\SecondPositionCommand->process(object pocketmine\player\Player#39304, array[0])
  #9 plugins/EasyEdit.phar/src/platz1de/EasyEdit/command/EasyEditCommand(52): platz1de\EasyEdit\command\CommandManager::processCommand(object platz1de\EasyEdit\command\defaults\selection\SecondPositionCommand#29403, array[0], object pocketmine\player\Player#39304)
  #10 pmsrc/src/command/SimpleCommandMap(205): platz1de\EasyEdit\command\EasyEditCommand->execute(object pocketmine\player\Player#39304, string[5] /pos2, array[0])
  #11 pmsrc/src/Server(1451): pocketmine\command\SimpleCommandMap->dispatch(object pocketmine\player\Player#39304, string[5] /pos2)
  #12 pmsrc/src/player/Player(1410): pocketmine\Server->dispatchCommand(object pocketmine\player\Player#39304, string[5] /pos2)
  #13 pmsrc/src/network/mcpe/handler/InGamePacketHandler(761): pocketmine\player\Player->chat(string[6] //pos2)
  #14 pmsrc/vendor/nethergamesmc/bedrock-protocol/src/CommandRequestPacket(51): pocketmine\network\mcpe\handler\InGamePacketHandler->handleCommandRequest(object pocketmine\network\mcpe\protocol\CommandRequestPacket#626908)
  #15 pmsrc/src/network/mcpe/NetworkSession(434): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#625071)
  #16 pmsrc/src/network/mcpe/NetworkSession(394): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\CommandRequestPacket#626908, int 475, string[27] M.//pos2.qK..ir..cAD.>?....)
  #17 pmsrc/src/network/mcpe/raklib/RakLibInterface(192): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[30] ..e.././6b(.~.-....dG..v......)
  #18 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(42): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 0, string[39] ..t....Z.j.-"o...b......o8F.I..;..S...W)
  #19 pmsrc/src/network/mcpe/raklib/RakLibInterface(122): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#30129)
  #20 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib\{closure}()
  #21 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
  #22 pmsrc/src/Server(1709): pocketmine\snooze\SleeperHandler->sleepUntil(float 1658838510.6254)
  #23 pmsrc/src/Server(1068): pocketmine\Server->tickProcessor()
  #24 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#3, object pocketmine\utils\MainLogger#2, string[12] /root/pmmp4/, string[20] /root/pmmp4/plugins/)
  #25 pmsrc/src/PocketMine(327): pocketmine\server()

Также стоял плагин BlockLagFix (тоже с поггита). Садил саженцы дуба и сервер крашится с аналогичной ошибкой:

2022-07-26 [12:48:48.099] [Server thread/CRITICAL]: ErrorException: "Undefined array key 527" (EXCEPTION) in "pmsrc/src/network/mcpe/convert/RuntimeBlockMapping" at line 211
--- Stack trace ---
  #0 pmsrc/src/network/mcpe/convert/RuntimeBlockMapping(211): pocketmine\errorhandler\ErrorToExceptionHandler::handle(int 2, string[23] Undefined array key 527, string[60] /root/pmmp4/src/network/mcpe/convert/RuntimeBlockMapping.php, int 211)
  #1 plugins/BlockLagFix.phar/src/JavierLeon9966/BlockLagFix/BlockLagFix(54): pocketmine\network\mcpe\convert\RuntimeBlockMapping->fromRuntimeId(int 4997)
  #2 plugins/BlockLagFix.phar/src/JavierLeon9966/BlockLagFix/libs/muqsit/simplepackethandler/interceptor/PacketInterceptorListener(89): JavierLeon9966\BlockLagFix\BlockLagFix->JavierLeon9966\BlockLagFix\{closure}(object pocketmine\network\mcpe\protocol\UpdateBlockPacket#626836, object pocketmine\network\mcpe\NetworkSession#38739)
  #3 pmsrc/src/event/RegisteredListener(60): JavierLeon9966\BlockLagFix\libs\muqsit\simplepackethandler\interceptor\PacketInterceptorListener->JavierLeon9966\BlockLagFix\libs\muqsit\simplepackethandler\interceptor\{closure}(object pocketmine\event\server\DataPacketSendEvent#631217)
  #4 pmsrc/src/event/Event(62): pocketmine\event\RegisteredListener->callEvent(object pocketmine\event\server\DataPacketSendEvent#631217)
  #5 pmsrc/src/network/mcpe/NetworkSession(452): pocketmine\event\Event->call()
  #6 pmsrc/src/network/mcpe/handler/InGamePacketHandler(495): pocketmine\network\mcpe\NetworkSession->sendDataPacket(object pocketmine\network\mcpe\protocol\UpdateBlockPacket#626836)
  #7 pmsrc/src/network/mcpe/handler/InGamePacketHandler(446): pocketmine\network\mcpe\handler\InGamePacketHandler->onFailedBlockAction(object pocketmine\math\Vector3#626934, int 1)
  #8 pmsrc/src/network/mcpe/handler/InGamePacketHandler(303): pocketmine\network\mcpe\handler\InGamePacketHandler->handleUseItemTransaction(object pocketmine\network\mcpe\protocol\types\inventory\UseItemTransactionData#621796)
  #9 pmsrc/vendor/nethergamesmc/bedrock-protocol/src/InventoryTransactionPacket(105): pocketmine\network\mcpe\handler\InGamePacketHandler->handleInventoryTransaction(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#631577)
  #10 pmsrc/src/network/mcpe/NetworkSession(434): pocketmine\network\mcpe\protocol\InventoryTransactionPacket->handle(object pocketmine\network\mcpe\handler\InGamePacketHandler#625000)
  #11 pmsrc/src/network/mcpe/NetworkSession(394): pocketmine\network\mcpe\NetworkSession->handleDataPacket(object pocketmine\network\mcpe\protocol\InventoryTransactionPacket#631577, int 475, string[56] .......A.....@....h............n<CH..B...C.............4)
  #12 pmsrc/src/network/mcpe/raklib/RakLibInterface(192): pocketmine\network\mcpe\NetworkSession->handleEncoded(string[254] ..c`b`.............O.......8{..r.<........M`l....r......`E.k..\.......L=...c....)
  #13 pmsrc/vendor/pocketmine/raklib-ipc/src/RakLibToUserThreadMessageReceiver(42): pocketmine\network\mcpe\raklib\RakLibInterface->onPacketReceive(int 0, string[263] .l...>Y..E.~...%......=...h7..:M.hir8?..w?oo.A..+&s..#..=...{~......3....6..c.%9)
  #14 pmsrc/src/network/mcpe/raklib/RakLibInterface(122): raklib\server\ipc\RakLibToUserThreadMessageReceiver->handle(object pocketmine\network\mcpe\raklib\RakLibInterface#30020)
  #15 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): pocketmine\network\mcpe\raklib\RakLibInterface->pocketmine\network\mcpe\raklib\{closure}()
  #16 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
  #17 pmsrc/src/Server(1709): pocketmine\snooze\SleeperHandler->sleepUntil(float 1658839728.1355)
  #18 pmsrc/src/Server(1068): pocketmine\Server->tickProcessor()
  #19 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#3, object pocketmine\utils\MainLogger#2, string[12] /root/pmmp4/, string[20] /root/pmmp4/plugins/)
  #20 pmsrc/src/PocketMine(327): pocketmine\server()
--- End of exception information ---

Самое интересное то, что всё скатывается на RakLib сервера. Я не знаю, почему так.
Предположительно это из-за мультиверсии, но это полный бред, поскольку куча серверов работают на мультиверсиях и всё там нормально.

Каково решение проблемы? Причина?

1 симпатия

Во втором случае полностью вина ядра. Заказывай нормальное ядро или фикс твоего

Да и в первом тоже, ядро кривое

Скинь ошибки разработчику мультиядра, может пофиксит. В крайнем случае используй чистый PM4, проблем не будет

:slight_smile: :slight_smile:

Эта тема была автоматически закрыта через 12 часов после последнего ответа. В ней больше нельзя отвечать.