1. Go to this page and download the library: Download valres/pmtoolbox library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
valres / pmtoolbox example snippets
use pocketmine\plugin\PluginBase;
use valres\toolbox\ToolboxLoader;
final class Main extends PluginBase {
protected function onLoad(): void {
ToolboxLoader::load($this);
}
protected function onEnable(): void {
ToolboxLoader::enable($this);
}
protected function onDisable(): void {
ToolboxLoader::disable();
}
}
namespace myplugin\manager;
use valres\toolbox\manager\BaseManager;
use valres\toolbox\manager\attribute\Manager;
use valres\toolbox\manager\attribute\ManagerPriority;
use valres\toolbox\manager\attribute\ManagerPriorityEnum;
#[Manager(name: "Economy", version: "1.0.0")]
#[ManagerPriority(ManagerPriorityEnum::PRIORITY_HIGH)]
final class EconomyManager extends BaseManager {
public function onLoad(): void {
// Light startup work.
}
public function init(): void {
// Enable-time setup.
}
public function save(): void {
// Persist data before shutdown.
}
}
use valres\toolbox\manager\attribute\ManagerDependsOn;
#[ManagerDependsOn(["Economy"])]
final class ShopManager extends BaseManager {
// ...
}
use valres\toolbox\manager\attribute\AutoRegister;
use valres\toolbox\manager\attribute\AutoRegisterAll;
use valres\toolbox\manager\attribute\AutoRegisterType;
#[AutoRegister(AutoRegisterType::COMMANDS)]
#[AutoRegister(AutoRegisterType::LISTENERS)]
final class GameplayManager extends BaseManager {
// ...
}
#[AutoRegisterAll]
final class ProfileManager extends BaseManager {
// Registers command/ and listener/.
}
use valres\toolbox\form\ddui\DduiManager;
use valres\toolbox\form\ddui\DduiObservable;
$status = DduiObservable::string("Ready");
$enabled = DduiObservable::bool(true, clientWritable: true);
DduiManager::customForm("Settings")
->label($status)
->toggle("Enabled", $enabled)
->button("Refresh", function() use ($status): void {
$status->set("Updated at " . date("H:i:s"));
}, closeOnClick: false)
->send($player);
DduiManager::messageBox("Confirm", "Delete this item?")
->button1("Delete")
->button2("Cancel")
->onSelect(function($player, int $selection): void {
if ($selection === 1) {
// Delete item.
}
})
->send($player);
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\LoginPacket;
use valres\toolbox\ToolboxLoader;
$monitor = ToolboxLoader::createPacketMonitor();
$monitor->monitorIncoming(function(LoginPacket $packet, NetworkSession $session): void {
// Debug or inspect the packet.
});
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\AdventureSettingsPacket;
use valres\toolbox\ToolboxLoader;
$interceptor = ToolboxLoader::createPacketInterceptor();
$interceptor->interceptIncoming(function(AdventureSettingsPacket $packet, NetworkSession $session): bool {
return true; // false cancels the DataPacketReceiveEvent.
});
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\LoginPacket;
use pocketmine\network\mcpe\protocol\Packet;
use valres\toolbox\packet\PacketHandlerInterface;
final class LoginPacketHandler implements PacketHandlerInterface {
public function getPacketIds(): array {
return [LoginPacket::class];
}
public function handle(Packet $packet, NetworkSession $session): bool {
return true;
}
}
ToolboxLoader::createPacketInterceptor()->registerIncoming(new LoginPacketHandler());
use pocketmine\network\mcpe\NetworkSession;
use pocketmine\network\mcpe\protocol\LoginPacket;
use valres\toolbox\packet\attribute\IncomingPacket;
use valres\toolbox\packet\attribute\OutgoingPacket;
use valres\toolbox\packet\attribute\PacketHandler;
use valres\toolbox\packet\PacketDirection;
final class PacketHandlers {
#[IncomingPacket(LoginPacket::class)]
public function onLogin(LoginPacket $packet, NetworkSession $session): bool {
return true;
}
#[OutgoingPacket]
public function onAnyOutgoing(LoginPacket $packet, NetworkSession $session): void {
}
#[PacketHandler(PacketDirection::INCOMING, LoginPacket::class)]
public function onLoginWithGenericAttribute(LoginPacket $packet, NetworkSession $session): bool {
return true;
}
}
ToolboxLoader::createPacketInterceptor()->registerAnnotated(new PacketHandlers());
text
src/myplugin/manager/ProfileManager.php
src/myplugin/manager/command/ProfileCommand.php
src/myplugin/manager/listener/ProfileListener.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.