mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-12 14:35:35 +00:00
Player inventory is changed using chests (Fixes #127)
This commit is contained in:
parent
ad11851c61
commit
a7d8e22e7e
@ -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"],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user