Updated ItemFrameDropItemPacket for >=1.0.3, fix decode errors

Sorry, this DOES NOT FIX creative, blame Mojang. https://bugs.mojang.com/browse/MCPE-20070
This commit is contained in:
Dylan K. Taylor 2017-02-18 15:09:44 +00:00
parent 91907485b4
commit 834dc343b0
2 changed files with 3 additions and 5 deletions

View File

@ -2950,13 +2950,13 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
$tile = $this->level->getTile($this->temporalVector->setComponents($packet->x, $packet->y, $packet->z));
if($tile instanceof ItemFrame){
if(!$tile->getItem()->equals($packet->item) and !$this->isCreative(true)){
if($this->isSpectator()){
$tile->spawnTo($this);
break;
}
if(lcg_value() <= $tile->getItemDropChance() and $packet->item->getId() !== Item::AIR){
$this->level->dropItem($tile->getBlock(), $packet->item); //Use the packet item to handle creative drops correctly
if(lcg_value() <= $tile->getItemDropChance()){
$this->level->dropItem($tile->getBlock(), $tile->getItem());
}
$tile->setItem(null);
$tile->setItemRotation(0);

View File

@ -30,11 +30,9 @@ class ItemFrameDropItemPacket extends DataPacket{
public $x;
public $y;
public $z;
public $item;
public function decode(){
$this->getBlockCoords($this->x, $this->y, $this->z);
$this->item = $this->getSlot();
}
public function encode(){