作者:PrimusL
项目:EssentialsP
/**
* @param Inventory $inventory
*/
public function addToInventory(Inventory $inventory)
{
foreach ($this->getItems() as $i) {
$inventory->setItem($inventory->firstEmpty(), clone $i);
}
// call_user_func_array($inventory->addItem(), $this->getItems());
}
作者:Ragnok12
项目:CSCas
public function addInventoryRandomItems($level, Inventory $inv)
{
if ($inv != null) {
$inv->setItem(0, self::randomItems());
$inv->setItem(1, self::randomItems());
$inv->setItem(2, self::randomItems());
$inv->setItem(3, self::randomItems());
}
}
作者:ClearSkyTea
项目:ClearSk
/**
* @param Player $source
*
* Sends a slot update to inventory viewers
* For successful transactions, update non-source viewers (source does not need updating)
* For failed transactions, update the source (non-source viewers will see nothing anyway)
*/
public function sendSlotUpdate(Player $source)
{
if ($this->getInventory() instanceof TemporaryInventory) {
return;
}
$targets = [];
if ($this->wasSuccessful) {
$targets = $this->getInventory()->getViewers();
unset($targets[spl_object_hash($source)]);
} else {
$targets = [$source];
}
$this->inventory->sendSlot($this->slot, $targets);
}
作者:DWW
项目:pocketmine-plugin
public function loadInventory(Player $player, Inventory $inv)
{
$n = trim(strtolower($player->getName()));
if ($n === "") {
return false;
}
if ($this->isGlobal) {
$ln = "*";
} else {
$ln = trim(strtolower($player->getLevel()->getName()));
}
$inv->clearAll();
$sql = "SELECT slot,id,damage,count FROM NetherChests WHERE player = " . $this->prepare($n) . " AND world = " . $this->prepare($ln);
$res = $this->database->query($sql);
if ($res === false) {
return false;
}
while (($row = $res->fetch_assoc()) != null) {
$inv->setItem($row["slot"], Item::get($row["id"], $row["damage"], $row["count"]));
}
$res->free();
return true;
}
作者:NewDelio
项目:PocketMine-0.13.
public function removeWindow(Inventory $inventory)
{
$inventory->close($this);
if ($this->windows->contains($inventory)) {
$id = $this->windows[$inventory];
$this->windows->detach($this->windowIndex[$id]);
unset($this->windowIndex[$id]);
}
}
作者:Gabriel86
项目:pocketmine-plugin
public function isNeChest(Inventory $inv)
{
if ($inv instanceof DoubleChestInventory) {
return false;
}
if (!$inv instanceof ChestInventory) {
return false;
}
$tile = $inv->getHolder();
if (!$tile instanceof Chest) {
return false;
}
$bl = $tile->getBlock();
if ($bl->getId() != Block::CHEST) {
return false;
}
if ($bl->getSide(Vector3::SIDE_DOWN)->getId() != $this->base_block) {
return false;
}
return true;
}
作者:xHF
项目:TreasureHunt
public function deleteChest(Inventory $inv)
{
$bl = $inv->getHolder()->getBlock();
$x = $bl->getFloorX();
$y = $bl->getFloorY();
$z = $bl->getFloorZ();
unset($this->chests[$x . ":" . $y . ":" . $z]);
// $this->getLogger()->info('Chest deleted');
}
作者:ClearSkyTea
项目:ClearSk
/**
* @return \pocketmine\entity\Human[]
*/
public function getViewers()
{
return $this->inventory->getViewers();
}
作者:DWW
项目:pocketmine-plugin
public function loadInventory(Player $player, Inventory $inv)
{
$n = trim(strtolower($player->getName()));
if ($n === "") {
return false;
}
$d = substr($n, 0, 1);
$path = $this->getDataFolder() . $d . "/" . $n . ".yml";
if (!is_file($path)) {
return false;
}
$cfg = new Config($path, Config::YAML);
$yaml = $cfg->getAll();
if ($this->isGlobal) {
$ln = "*";
} else {
$ln = trim(strtolower($player->getLevel()->getName()));
}
if (!isset($yaml[$ln])) {
return false;
}
$inv->clearAll();
foreach ($yaml[$ln] as $slot => $t) {
list($id, $dam, $cnt) = explode(":", $t);
$item = Item::get($id, $dam, $cnt);
$inv->setItem($slot, $item);
}
return true;
}