diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 20d76562d..950a21f4f 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -3088,6 +3088,10 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ $modifiedPages[] = $packet->pageNumber; break; case BookEditPacket::TYPE_SWAP_PAGES: + if(!$newBook->pageExists($packet->pageNumber) or !$newBook->pageExists($packet->secondaryPageNumber)){ + //the client will create pages on its own without telling us until it tries to switch them + $newBook->addPage(max($packet->pageNumber, $packet->secondaryPageNumber)); + } $newBook->swapPages($packet->pageNumber, $packet->secondaryPageNumber); $modifiedPages = [$packet->pageNumber, $packet->secondaryPageNumber]; break;