Fix unit tests

This commit is contained in:
Dylan K. Taylor 2025-08-24 15:38:07 +01:00
parent 8f9478e82f
commit ef53676a59
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
4 changed files with 17 additions and 3 deletions

View File

@ -27,6 +27,7 @@ use pocketmine\block\tile\Banner as TileBanner;
use pocketmine\block\utils\DyeColor; use pocketmine\block\utils\DyeColor;
use pocketmine\block\utils\SupportType; use pocketmine\block\utils\SupportType;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\item\VanillaItems;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\world\BlockTransaction; use pocketmine\world\BlockTransaction;
@ -82,4 +83,8 @@ abstract class BaseOminousBanner extends Transparent{
$this->position->getWorld()->useBreakOn($this->position); $this->position->getWorld()->useBreakOn($this->position);
} }
} }
public function asItem() : Item{
return VanillaItems::OMINOUS_BANNER();
}
} }

View File

@ -546,7 +546,7 @@ final class ItemSerializerDeserializerRegistrar{
$this->serializer?->map(Items::DYE(), fn(Dye $item) => new Data(DyeColorIdMap::getInstance()->toItemId($item->getColor()))); $this->serializer?->map(Items::DYE(), fn(Dye $item) => new Data(DyeColorIdMap::getInstance()->toItemId($item->getColor())));
$this->deserializer?->map(Ids::BANNER, function(Data $data) : Item{ $this->deserializer?->map(Ids::BANNER, function(Data $data) : Item{
$type = $data->getTag()?->getInt(TileBanner::TAG_TYPE) ?? TileBanner::TYPE_NORMAL; $type = $data->getTag()?->getInt(TileBanner::TAG_TYPE, TileBanner::TYPE_NORMAL) ?? TileBanner::TYPE_NORMAL;
if($type === TileBanner::TYPE_OMINOUS){ if($type === TileBanner::TYPE_OMINOUS){
return Items::OMINOUS_BANNER(); return Items::OMINOUS_BANNER();
} }

View File

@ -508,6 +508,8 @@
"OAK_WALL_SIGN": 4, "OAK_WALL_SIGN": 4,
"OAK_WOOD": 6, "OAK_WOOD": 6,
"OBSIDIAN": 1, "OBSIDIAN": 1,
"OMINOUS_BANNER": 16,
"OMINOUS_WALL_BANNER": 4,
"ORANGE_TULIP": 1, "ORANGE_TULIP": 1,
"OXEYE_DAISY": 1, "OXEYE_DAISY": 1,
"PACKED_ICE": 1, "PACKED_ICE": 1,
@ -776,6 +778,8 @@
"NOTE_BLOCK": "pocketmine\\block\\tile\\Note", "NOTE_BLOCK": "pocketmine\\block\\tile\\Note",
"OAK_SIGN": "pocketmine\\block\\tile\\Sign", "OAK_SIGN": "pocketmine\\block\\tile\\Sign",
"OAK_WALL_SIGN": "pocketmine\\block\\tile\\Sign", "OAK_WALL_SIGN": "pocketmine\\block\\tile\\Sign",
"OMINOUS_BANNER": "pocketmine\\block\\tile\\Banner",
"OMINOUS_WALL_BANNER": "pocketmine\\block\\tile\\Banner",
"PALE_OAK_SIGN": "pocketmine\\block\\tile\\Sign", "PALE_OAK_SIGN": "pocketmine\\block\\tile\\Sign",
"PALE_OAK_WALL_SIGN": "pocketmine\\block\\tile\\Sign", "PALE_OAK_WALL_SIGN": "pocketmine\\block\\tile\\Sign",
"POTION_CAULDRON": "pocketmine\\block\\tile\\Cauldron", "POTION_CAULDRON": "pocketmine\\block\\tile\\Cauldron",

View File

@ -59,8 +59,13 @@ final class BlockSerializerDeserializerTest extends TestCase{
self::fail("Failed to deserialize " . $blockStateData->getName() . ": " . $e->getMessage() . " with data " . $blockStateData->toNbt()); self::fail("Failed to deserialize " . $blockStateData->getName() . ": " . $e->getMessage() . " with data " . $blockStateData->toNbt());
} }
if($block->getTypeId() === BlockTypeIds::POTION_CAULDRON){ if(match ($block->getTypeId()) {
//this pretends to be a water cauldron in the blockstate, and stores its actual data in the blockentity BlockTypeIds::POTION_CAULDRON,
BlockTypeIds::OMINOUS_BANNER,
BlockTypeIds::OMINOUS_WALL_BANNER => true,
default => false
}){
//these pretend to be something else in the blockstate, and the variant switching is done via block entity data
continue; continue;
} }