mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-05 17:41:46 +00:00
Merge branch 'legacy/pm4' into stable
This commit is contained in:
commit
ef85fbffe1
1
.github/workflows/update-updater-api.yml
vendored
1
.github/workflows/update-updater-api.yml
vendored
@ -8,6 +8,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
concurrency: update-updater-api # only one job can run at a time, to avoid git conflicts when updating the repository
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install jq
|
- name: Install jq
|
||||||
|
@ -111,9 +111,9 @@ use pocketmine\utils\TextFormat;
|
|||||||
use pocketmine\utils\Utils;
|
use pocketmine\utils\Utils;
|
||||||
use pocketmine\world\format\Chunk;
|
use pocketmine\world\format\Chunk;
|
||||||
use function array_push;
|
use function array_push;
|
||||||
use function base64_encode;
|
|
||||||
use function count;
|
use function count;
|
||||||
use function fmod;
|
use function fmod;
|
||||||
|
use function get_debug_type;
|
||||||
use function implode;
|
use function implode;
|
||||||
use function in_array;
|
use function in_array;
|
||||||
use function is_bool;
|
use function is_bool;
|
||||||
@ -743,27 +743,32 @@ class InGamePacketHandler extends PacketHandler{
|
|||||||
if(!($nbt instanceof CompoundTag)) throw new AssumptionFailedError("PHPStan should ensure this is a CompoundTag"); //for phpstorm's benefit
|
if(!($nbt instanceof CompoundTag)) throw new AssumptionFailedError("PHPStan should ensure this is a CompoundTag"); //for phpstorm's benefit
|
||||||
|
|
||||||
if($block instanceof BaseSign){
|
if($block instanceof BaseSign){
|
||||||
if(($textBlobTag = $nbt->getCompoundTag(Sign::TAG_FRONT_TEXT)?->getTag(Sign::TAG_TEXT_BLOB)) instanceof StringTag){
|
$frontTextTag = $nbt->getTag(Sign::TAG_FRONT_TEXT);
|
||||||
try{
|
if(!$frontTextTag instanceof CompoundTag){
|
||||||
$text = SignText::fromBlob($textBlobTag->getValue());
|
throw new PacketHandlingException("Invalid tag type " . get_debug_type($frontTextTag) . " for tag \"" . Sign::TAG_FRONT_TEXT . "\" in sign update data");
|
||||||
}catch(\InvalidArgumentException $e){
|
}
|
||||||
throw PacketHandlingException::wrap($e, "Invalid sign text update");
|
$textBlobTag = $frontTextTag->getTag(Sign::TAG_TEXT_BLOB);
|
||||||
}
|
if(!$textBlobTag instanceof StringTag){
|
||||||
|
throw new PacketHandlingException("Invalid tag type " . get_debug_type($textBlobTag) . " for tag \"" . Sign::TAG_TEXT_BLOB . "\" in sign update data");
|
||||||
try{
|
|
||||||
if(!$block->updateText($this->player, $text)){
|
|
||||||
foreach($this->player->getWorld()->createBlockUpdatePackets([$pos]) as $updatePacket){
|
|
||||||
$this->session->sendDataPacket($updatePacket);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch(\UnexpectedValueException $e){
|
|
||||||
throw PacketHandlingException::wrap($e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->session->getLogger()->debug("Invalid sign update data: " . base64_encode($packet->nbt->getEncodedNbt()));
|
try{
|
||||||
|
$text = SignText::fromBlob($textBlobTag->getValue());
|
||||||
|
}catch(\InvalidArgumentException $e){
|
||||||
|
throw PacketHandlingException::wrap($e, "Invalid sign text update");
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
if(!$block->updateText($this->player, $text)){
|
||||||
|
foreach($this->player->getWorld()->createBlockUpdatePackets([$pos]) as $updatePacket){
|
||||||
|
$this->session->sendDataPacket($updatePacket);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch(\UnexpectedValueException $e){
|
||||||
|
throw PacketHandlingException::wrap($e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user