mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-06 01:51:51 +00:00
Fixed WritableBook PC format deserialization
This commit is contained in:
parent
e06ab0869a
commit
b98dad6f63
@ -24,8 +24,10 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\item;
|
namespace pocketmine\item;
|
||||||
|
|
||||||
use Ds\Deque;
|
use Ds\Deque;
|
||||||
|
use pocketmine\nbt\NBT;
|
||||||
use pocketmine\nbt\tag\CompoundTag;
|
use pocketmine\nbt\tag\CompoundTag;
|
||||||
use pocketmine\nbt\tag\ListTag;
|
use pocketmine\nbt\tag\ListTag;
|
||||||
|
use pocketmine\nbt\tag\StringTag;
|
||||||
|
|
||||||
abstract class WritableBookBase extends Item{
|
abstract class WritableBookBase extends Item{
|
||||||
public const TAG_PAGES = "pages"; //TAG_List<TAG_Compound>
|
public const TAG_PAGES = "pages"; //TAG_List<TAG_Compound>
|
||||||
@ -171,10 +173,17 @@ abstract class WritableBookBase extends Item{
|
|||||||
|
|
||||||
$pages = $tag->getListTag(self::TAG_PAGES);
|
$pages = $tag->getListTag(self::TAG_PAGES);
|
||||||
if($pages !== null){
|
if($pages !== null){
|
||||||
|
if($pages->getTagType() === NBT::TAG_Compound){ //PE format
|
||||||
/** @var CompoundTag $page */
|
/** @var CompoundTag $page */
|
||||||
foreach($pages as $page){
|
foreach($pages as $page){
|
||||||
$this->pages->push(new WritableBookPage($page->getString(self::TAG_PAGE_TEXT), $page->getString(self::TAG_PAGE_PHOTONAME, "")));
|
$this->pages->push(new WritableBookPage($page->getString(self::TAG_PAGE_TEXT), $page->getString(self::TAG_PAGE_PHOTONAME, "")));
|
||||||
}
|
}
|
||||||
|
}elseif($pages->getTagType() === NBT::TAG_String){ //PC format
|
||||||
|
/** @var StringTag $page */
|
||||||
|
foreach($pages as $page){
|
||||||
|
$this->pages->push(new WritableBookPage($page->getValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user