Fixed armor not being sent correctly to current player, fixes #3073

This commit is contained in:
Shoghi Cervantes 2015-05-28 14:28:23 +02:00
parent 3dd4fe706c
commit 0e9bff6f4e

View File

@ -215,23 +215,15 @@ class PlayerInventory extends BaseInventory{
if($index >= $this->getSize()){ //Armor change if($index >= $this->getSize()){ //Armor change
Server::getInstance()->getPluginManager()->callEvent($ev = new EntityArmorChangeEvent($this->getHolder(), $this->getItem($index), $item, $index)); Server::getInstance()->getPluginManager()->callEvent($ev = new EntityArmorChangeEvent($this->getHolder(), $this->getItem($index), $item, $index));
if($ev->isCancelled() and $this->getHolder() instanceof Player){ if($ev->isCancelled() and $this->getHolder() instanceof Human){
if($index >= $this->size){ $this->sendArmorSlot($index, $this->getViewers());
$this->sendArmorSlot($index, $this->getViewers());
}else{
$this->sendSlot($index, $this->getViewers());
}
return false; return false;
} }
$item = $ev->getNewItem(); $item = $ev->getNewItem();
}else{ }else{
Server::getInstance()->getPluginManager()->callEvent($ev = new EntityInventoryChangeEvent($this->getHolder(), $this->getItem($index), $item, $index)); Server::getInstance()->getPluginManager()->callEvent($ev = new EntityInventoryChangeEvent($this->getHolder(), $this->getItem($index), $item, $index));
if($ev->isCancelled()){ if($ev->isCancelled()){
if($index >= $this->size){ $this->sendSlot($index, $this->getViewers());
$this->sendArmorSlot($index, $this->getViewers());
}else{
$this->sendSlot($index, $this->getViewers());
}
return false; return false;
} }
$item = $ev->getNewItem(); $item = $ev->getNewItem();
@ -394,7 +386,7 @@ class PlayerInventory extends BaseInventory{
/** @var Player $player */ /** @var Player $player */
$pk2 = new ContainerSetSlotPacket(); $pk2 = new ContainerSetSlotPacket();
$pk2->windowid = ContainerSetContentPacket::SPECIAL_ARMOR; $pk2->windowid = ContainerSetContentPacket::SPECIAL_ARMOR;
$pk2->slot = $index; $pk2->slot = $index - $this->getSize();
$pk2->item = $this->getItem($index); $pk2->item = $this->getItem($index);
$player->dataPacket($pk2); $player->dataPacket($pk2);
}else{ }else{