diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index c68471b1f3..12fed6fca7 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1724,7 +1724,12 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $slot = $this->inventory->getArmorItem($i); if($slot->getID() !== Item::AIR and $s->getID() === Item::AIR){ //Removes a piece of armor $this->inventory->setArmorItem($i, Item::get(Item::AIR, 0, 1), $this); - $this->inventory->addItem($slot); + $sl = $this->inventory->firstEmpty(); + if($sl === -1){ + $this->inventory->sendContents($this); + }else{ + $this->inventory->setItem($sl, $slot, $this); + } $this->inventory->sendArmorContents($this); }elseif($s->getID() !== Item::AIR and $slot->getID() === Item::AIR and ($sl = $this->inventory->first($s)) !== -1){ if($this->inventory->setArmorItem($i, $this->inventory->getItem($sl), $this) === false){ diff --git a/src/pocketmine/inventory/PlayerInventory.php b/src/pocketmine/inventory/PlayerInventory.php index 0b9029031e..979af29168 100644 --- a/src/pocketmine/inventory/PlayerInventory.php +++ b/src/pocketmine/inventory/PlayerInventory.php @@ -293,9 +293,13 @@ class PlayerInventory extends BaseInventory{ foreach($target as $player){ if($player === $this->getHolder()){ /** @var Player $player */ + $pk2 = clone $pk; + $pk2->eid = 0; + /* $pk2 = new ContainerSetContentPacket; $pk2->windowid = 0x78; //Armor window id constant $pk2->slots = $armor; + */ $player->dataPacket($pk2); }else{ $player->dataPacket(clone $pk);