From 886ad8442c622ddc44412afc6b10fc773b976816 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Sun, 28 Sep 2014 17:31:44 +0200 Subject: [PATCH] Fixed #2055 Extra packet data sent on armor change --- src/pocketmine/Player.php | 10 ++++++++-- src/pocketmine/Server.php | 2 -- src/pocketmine/inventory/PlayerInventory.php | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 22d9b281d..a05e32a12 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1701,17 +1701,23 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $slot = $this->inventory->getArmorItem($i); if($slot->getID() !== Item::AIR and $s->getID() === Item::AIR){ $this->inventory->setArmorItem($i, Item::get(Item::AIR, 0, 1)); + $this->inventory->addItem($slot); + $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)) === false){ $this->inventory->sendContents($this); + $this->inventory->sendArmorContents($this); }else{ - $this->inventory->setItem($sl, Item::get(Item::AIR, 0, 1)); + $this->inventory->setItem($sl, Item::get(Item::AIR, 0, 1), $this); + $this->inventory->sendArmorContents($this); } }elseif($s->getID() !== Item::AIR and $slot->getID() !== Item::AIR and ($slot->getID() !== $s->getID() or $slot->getDamage() !== $s->getDamage()) and ($sl = $this->inventory->first($s)) !== -1){ if($this->inventory->setArmorItem($i, $this->inventory->getItem($sl)) === false){ $this->inventory->sendContents($this); + $this->inventory->sendArmorContents($this); }else{ - $this->inventory->setItem($sl, $slot); + $this->inventory->setItem($sl, $slot, $this); + $this->inventory->sendArmorContents($this); } } } diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index d22e0004a..c0b866129 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -1568,10 +1568,8 @@ class Server{ $this->enablePlugins(PluginLoadOrder::STARTUP); if($this->getProperty("chunk-generation.use-async", true)){ - $this->getLogger()->info("Started on thread"); $this->generationManager = new GenerationRequestManager($this); }else{ - $this->getLogger()->info("Started on main"); $this->generationManager = new GenerationInstanceManager($this); } diff --git a/src/pocketmine/inventory/PlayerInventory.php b/src/pocketmine/inventory/PlayerInventory.php index be01e24a2..7f76d8a47 100644 --- a/src/pocketmine/inventory/PlayerInventory.php +++ b/src/pocketmine/inventory/PlayerInventory.php @@ -211,6 +211,7 @@ class PlayerInventory extends BaseInventory{ } $item = $ev->getNewItem(); } + if($item->getID() === 0){ $this->clear($index, $source); }else{