From f888acbd7c5525dd343ade567859e140860620f2 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Mon, 29 Sep 2014 23:43:52 +0200 Subject: [PATCH] Send PlayerArmorEquipmentPacket instead of ContainerSetContentPacket with id 0x78 --- src/pocketmine/Player.php | 7 ++++++- src/pocketmine/inventory/PlayerInventory.php | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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);