fix ItemFrames (#4101)

removing items from item frames was broken due to behavioural changes in 1.16.210.
This commit is contained in:
Ali 2021-03-28 19:53:46 +02:00 committed by GitHub
parent 01ffe8bf57
commit 3b3fb5e662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 6 deletions

View File

@ -2936,6 +2936,16 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
$this->inventory->sendHeldItem($this);
break;
}
$tile = $this->level->getTile($pos);
if($tile instanceof ItemFrame and $tile->hasItem()){
if (lcg_value() <= $tile->getItemDropChance()){
$this->level->dropItem($tile->getBlock(), $tile->getItem());
}
$tile->setItem(null);
$tile->setItemRotation(0);
break;
}
$block = $target->getSide($packet->face);
if($block->getId() === Block::FIRE){

View File

@ -147,7 +147,7 @@ parameters:
-
message: "#^Cannot call method getTile\\(\\) on pocketmine\\\\level\\\\Level\\|null\\.$#"
count: 2
count: 3
path: ../../../src/pocketmine/Player.php
-
@ -165,6 +165,11 @@ parameters:
count: 3
path: ../../../src/pocketmine/Player.php
-
message: "#^Cannot call method dropItem\\(\\) on pocketmine\\\\level\\\\Level\\|null\\.$#"
count: 4
path: ../../../src/pocketmine/Player.php
-
message: "#^Cannot call method setBlock\\(\\) on pocketmine\\\\level\\\\Level\\|null\\.$#"
count: 1
@ -175,11 +180,6 @@ parameters:
count: 3
path: ../../../src/pocketmine/Player.php
-
message: "#^Cannot call method dropItem\\(\\) on pocketmine\\\\level\\\\Level\\|null\\.$#"
count: 3
path: ../../../src/pocketmine/Player.php
-
message: "#^Cannot call method getTileAt\\(\\) on pocketmine\\\\level\\\\Level\\|null\\.$#"
count: 1