How to delete the player inventory quen left the game?? i tried whit: but i get this error: Error: Call to a member function setContents() on null
too tried with $event->getPlayer()->getInventory()->setContents(array(Item::get(0, 0, 0))); but get the same error xd
Public function onQuit(PlayerQuitEvent $event) $event->getPlayer ()->getInventory ()->clearAll (); } <- This }
try this =_= PHP: public function OnJoin(PlayerJoinEvent $event){$player->$event->getPlayer();$inv = $player->getInventory();if ($inv instanceof PlayerInventory) {$inv->clearAll();}}
Make sure your implementing the Listener PHP: <?phpuse pocketmine\plugin\PluginBase;use pockemine\event\Listener;use pocketmine\event\player\PlayerQuitEvent;namespace Plugin;class Main extends PluginBase implements Listener { public function onQuit(PlayerQuitEvent $event) { $event->getPlayer()->getInventory()->clearAll(); }} EDIT*** PHP: <?phpuse pocketmine\plugin\PluginBase;use pockemine\event\Listener;use pocketmine\event\player\PlayerQuitEvent;namespace Plugin;class Main extends PluginBase implements Listener { public function onEnable() { $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onQuit(PlayerQuitEvent $event) { $event->getPlayer()->getInventory()->clearAll(); }}
clearAll() likes to crash the server if the players inventory is already empty, use this instead: PHP: <?phpuse pocketmine\plugin\PluginBase;use pockemine\event\Listener;use pocketmine\event\player\PlayerQuitEvent;use pocketmine\item\Item;namespace Plugin;class Main extends PluginBase implements Listener { public function onEnable() { $this->getServer()->getPluginManager()->registerEvents($this, $this); } public function onQuit(PlayerQuitEvent $event) { $event->getPlayer()->getInventory()->setContents(array(Item::get(0, 0, 0)); }}
Guys, did you even read the error message? It seems that the player inventory isn't even initialized. That happens when the player quits before logging in. Do a check first: if($player->getInventory() instanceof PlayerInventory)