Player inventory is changed using chests (Fixes #127)

This commit is contained in:
Shoghi Cervantes Pueyo 2013-03-07 17:36:19 +01:00
parent ad11851c61
commit a7d8e22e7e

View File

@ -822,26 +822,43 @@ class Player{
} }
$tile = $this->windows[$data["windowid"]]; $tile = $this->windows[$data["windowid"]];
$done = false; $done = false;
$item = BlockAPI::getItem($data["block"], $data["meta"], $data["stack"]);
$s = array(
"Count" => $item->count,
"Slot" => $data["slot"],
"id" => $item->getID(),
"Damage" => $item->getMetadata(),
);
foreach($tile->data["Items"] as $i => $slot){ foreach($tile->data["Items"] as $i => $slot){
if($slot["Slot"] === $data["slot"]){ if($slot["Slot"] === $data["slot"]){
$done = true; $done = true;
$s = $tile->data["Items"][$i] = array( if($item->getID() !== AIR and $slot["id"] == $item->getID()){
"Count" => $data["stack"] & 0xFFFF, if($slot["Count"] < $item->count){
"Slot" => $data["slot"], $this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot["Count"]);
"id" => $data["block"] & 0xFFFF, }elseif($slot["Count"] > $item->count){
"Damage" => $data["meta"] & 0xFFFF $this->addItem($item->getID(), $item->getMetadata(), $slot["Count"] - $item->count);
); }
$tile->data["Items"][$i] = $s;
}else{
$this->removeItem($item->getID(), $item->getMetadata(), $item->count);
$this->addItem($slot["id"], $slot["Damage"], $slot["Count"]);
if($item->getID() === AIR or $item->count <= 0){
unset($tile->data["Items"][$i]);
}
}
break; break;
} }
} }
if($done === false){ if($done === false){
$tile->data["Items"][] = $s = array( if($item->getID() !== AIR and $item->count > 0){
"Count" => $data["stack"] & 0xFFFF, $this->removeItem($item->getID(), $item->getMetadata(), $item->count);
"Slot" => $data["slot"], $tile->data["Items"][] = $s;
"id" => $data["block"] & 0xFFFF,
"Damage" => $data["meta"] & 0xFFFF
);
} }
}
$this->server->api->dhandle("tile.container.slot", array( $this->server->api->dhandle("tile.container.slot", array(
"tile" => $tile, "tile" => $tile,
"slot" => $data["slot"], "slot" => $data["slot"],