Skip to content

Repository files navigation

PlayerVaults

A PocketMine-MP plugin that gives players a secondary portable inventor(y/ies) of 54 slots in size. These inventories can be accessed anywhere!

Usage

Run /pv 1 to access your personal Vault #1. img.png

Wiki

Refer to the PlayerVaults Wiki to get help with commands and permissions.

Example API Usage

Opening player's vault #1 as a $player.

usemuqsit\playervaults\PlayerVaults;
usemuqsit\playervaults\PlayerVaultsException;usemuqsit\playervaults\vault\Vault;usepocketmine\player\Player;
usepocketmine\Server;
/** @var Player $player *//** @var PlayerVaults $plugin */$plugin = Server::getInstance()->getPluginManager()->getPlugin("PlayerVaults");
// without debug messages:$plugin->openVaultWithPermission($player, $player->getName(), 1);
// with debug messages:$plugin->openVaultWithPermission($player, $player->getName(), 1, function(Vault$vault) use($player) : void{
$player->sendMessage("Successfully opened vault");
}, function(PlayerVaultsException$exception) use($plugin) : void{
$plugin->getLogger()->debug("Failed to open vault: {$exception->getMessage()} (code: {$exception->getCode()})");
});

Opening another player (Alex)'s vault #1 as a $player.

usemuqsit\playervaults\PlayerVaults;
usepocketmine\player\Player;
usepocketmine\Server;
/** @var Player $player *//** @var PlayerVaults $plugin */$plugin = Server::getInstance()->getPluginManager()->getPlugin("PlayerVaults");
$plugin->openVaultWithPermission($player, "Alex", 1);

Forcefully (skipping permission checks) opening another player (Alex)'s vault #1 as a $player.

usemuqsit\playervaults\PlayerVaults;
usepocketmine\player\Player;
usepocketmine\Server;
/** @var Player $player *//** @var PlayerVaults $plugin */$plugin = Server::getInstance()->getPluginManager()->getPlugin("PlayerVaults");
$plugin->openVault($player, "Alex", 1);

Reading and writing to a specific vault (player Alex's vault #1).

usemuqsit\playervaults\PlayerVaults;
usemuqsit\playervaults\vault\Vault;
usemuqsit\playervaults\vault\VaultAccess;
usepocketmine\item\VanillaItems;
usepocketmine\Server;
/** @var PlayerVaults $plugin */$plugin = Server::getInstance()->getPluginManager()->getPlugin("PlayerVaults");
$plugin->loadVault("Alex", 1, function(Vault$vault, VaultAccess$access) : void{
$inventory = $vault->getInventory();
$item = $inventory->getItem(0); // item in first slot$inventory->addItem(VanillaItems::APPLE());
$access->release(); // unloads vault and if necessary, saves vault
});

Writing to a specific vault asynchronously.

usemuqsit\playervaults\PlayerVaults;
usemuqsit\playervaults\vault\Vault;
usemuqsit\playervaults\vault\VaultAccess;
usepocketmine\item\VanillaItems;
usepocketmine\scheduler\ClosureTask;
/** @var PlayerVaults $plugin */$scheduler = $plugin->getScheduler();
$plugin->loadVault("Alex", 1, function(Vault$vault, VaultAccess$access) use($scheduler) : void{
$inventory = $vault->getInventory();
$scheduler->scheduleRepeatingTask(newClosureTask(function() use($inventory, $access) : void{
$inventory->addItem(VanillaItems::APPLE());
$access->release();
}), 100);
});

About

Per-player GUI-based vaults plugin for PocketMine-MP

Topics

Resources

Stars

39 stars

Watchers

9 watching

Forks

Releases

Packages

Contributors

Languages