-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.20.10 broke something #216
Comments
if(!$sender instanceof Player) return;
$pk = UpdateBlockPacket::create(
BlockPosition::fromVector3($pos = $sender->getPosition()->add(0, 5, 0)),
TypeConverter::getInstance()->getBlockTranslator()->internalIdToNetworkId(VanillaBlocks::CHEST()->getStateId()),
UpdateBlockPacket::FLAG_NETWORK,
UpdateBlockPacket::DATA_LAYER_NORMAL
);
$sender->getNetworkSession()->sendDataPacket($pk);
$sender->getNetworkSession()->sendDataPacket(
UpdateBlockPacket::create(
BlockPosition::fromVector3($pos->add(1, 0, 0)),
TypeConverter::getInstance()->getBlockTranslator()->internalIdToNetworkId(VanillaBlocks::CHEST()->getStateId()),
UpdateBlockPacket::FLAG_NETWORK,
UpdateBlockPacket::DATA_LAYER_NORMAL
)
);
$sender->getNetworkSession()->sendDataPacket(
BlockActorDataPacket::create(
BlockPosition::fromVector3($pos),
new CacheableNbt(CompoundTag::create()
->setString(Tile::TAG_ID, "Chest")
->setInt(Tile::TAG_X, $pos->getFloorX())
->setInt(Tile::TAG_Y, $pos->getFloorY())
->setInt(Tile::TAG_Z, $pos->getFloorZ())
->setString(Chest::TAG_CUSTOM_NAME, "TEST")
->setInt(Chest::TAG_PAIRX, $pos->getFloorX() + 1)
->setInt(Chest::TAG_PAIRZ, $pos->getFloorZ())
)
)
);
$sender->getNetworkSession()->sendDataPacket(
BlockActorDataPacket::create(
BlockPosition::fromVector3($pos->add(1, 0, 0)),
new CacheableNbt(CompoundTag::create()
->setString(Tile::TAG_ID, "Chest")
->setInt(Tile::TAG_X, $pos->getFloorX() + 1)
->setInt(Tile::TAG_Y, $pos->getFloorY())
->setInt(Tile::TAG_Z, $pos->getFloorZ())
->setString(Chest::TAG_CUSTOM_NAME, "TEST")
->setInt(Chest::TAG_PAIRX, $pos->getFloorX())
->setInt(Chest::TAG_PAIRZ, $pos->getFloorZ())
)
)
);
$this->getScheduler()->scheduleDelayedTask(new ClosureTask(function() use ($sender, $pos) : void{
$sender->getNetworkSession()->sendDataPacket(
ContainerOpenPacket::blockInv(
1,
WindowTypes::CONTAINER,
BlockPosition::fromVector3($pos),
)
);
}), 10);
$sender->sendMessage("Complete"); From what I can tell is that this code works. Looks like we need to add a delay for container opening? |
@alvin0319 Can you confirm this is not related to my code and your InvMenu is broken too ? |
I don't really understand what could have break since I found no server software changing anything about UIs.. |
We're experiencing the same issue. However I've no clue what causes it yet |
If I try to open a InvMenu, I can open it one time. If I try to open it a second time (no matter what contents or name the invmenu-inventory have), it doesn't work - no inventory is opening. If I try to open my own player-inventory, everything works fine. I think the InvMenu-inventory wasn't closed the right way. Maybe we have to show what the code for closing the inventory do. I also tried to use debug-messages but that wasn't helpful. |
Seems like there was a change in behavior of NetworkStackLatencyPacket in Bedrock Edition v1.20.10. This protocol change may be impacting PlayStation users as well, however I do not have access to one at the moment to test it. Thank you for the details and analysis @alvin0319 @supercrafter333 @aabstractt. |
Seems like nothing is happening, the chest pops out put not the UI..
The text was updated successfully, but these errors were encountered: