mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-08 12:48:32 +00:00
World: replace sendBlocks() with createBlockUpdatePackets()
this allows the caller to decide how the packets should be sent.
This commit is contained in:
parent
ca9f3020b4
commit
eabfd2a37b
@ -390,7 +390,9 @@ class InGamePacketHandler extends PacketHandler{
|
|||||||
}else{
|
}else{
|
||||||
$blocks[] = $blockPos;
|
$blocks[] = $blockPos;
|
||||||
}
|
}
|
||||||
$this->player->getLocation()->getWorld()->sendBlocks([$this->player], $blocks);
|
foreach($this->player->getWorld()->createBlockUpdatePackets($blocks) as $packet){
|
||||||
|
$this->session->sendDataPacket($packet);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -616,7 +618,9 @@ class InGamePacketHandler extends PacketHandler{
|
|||||||
|
|
||||||
try{
|
try{
|
||||||
if(!$block->updateText($this->player, $text)){
|
if(!$block->updateText($this->player, $text)){
|
||||||
$this->player->getWorld()->sendBlocks([$this->player], [$pos]);
|
foreach($this->player->getWorld()->createBlockUpdatePackets([$pos]) as $updatePacket){
|
||||||
|
$this->session->sendDataPacket($updatePacket);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}catch(\UnexpectedValueException $e){
|
}catch(\UnexpectedValueException $e){
|
||||||
throw BadPacketException::wrap($e);
|
throw BadPacketException::wrap($e);
|
||||||
|
@ -763,7 +763,9 @@ class World implements ChunkManager{
|
|||||||
$p->onChunkChanged($chunk);
|
$p->onChunkChanged($chunk);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$this->sendBlocks($this->getChunkPlayers($chunkX, $chunkZ), $blocks);
|
foreach($this->createBlockUpdatePackets($blocks) as $packet){
|
||||||
|
$this->broadcastPacketToPlayersUsingChunk($chunkX, $chunkZ, $packet);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -822,10 +824,11 @@ class World implements ChunkManager{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Player[] $target
|
|
||||||
* @param Vector3[] $blocks
|
* @param Vector3[] $blocks
|
||||||
|
*
|
||||||
|
* @return ClientboundPacket[]
|
||||||
*/
|
*/
|
||||||
public function sendBlocks(array $target, array $blocks) : void{
|
public function createBlockUpdatePackets(array $blocks) : array{
|
||||||
$packets = [];
|
$packets = [];
|
||||||
|
|
||||||
foreach($blocks as $b){
|
foreach($blocks as $b){
|
||||||
@ -842,7 +845,7 @@ class World implements ChunkManager{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->broadcastPackets($target, $packets);
|
return $packets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function clearCache(bool $force = false) : void{
|
public function clearCache(bool $force = false) : void{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user