/** * Clears a player related state * * @param str $label - state variable to clear * @param Player|str $player - intance of Player or their name */ public function unsetState($label, $player) { $player = MPMU::iName($player); if (!isset($this->state[$player])) { return; } if (!isset($this->state[$player][$label])) { return; } unset($this->state[$player][$label]); }
/** * Handle player quit events. Restore player's inventory before resetting * state. * * @param PlayerQuitEvent $ev - Quit event */ public function onPlayerQuit(PlayerQuitEvent $ev) { echo __METHOD__ . "," . __LINE__ . "\n"; //##DEBUG $n = MPMU::iName($ev->getPlayer()); $xx = $this->getState(self::tag, $ev->getPlayer(), null); if ($xx !== null) { $this->restoreInv($ev->getPlayer()); } parent::onPlayerQuit($ev); echo __METHOD__ . "," . __LINE__ . "\n"; //##DEBUG }
public function stopLeading($leader) { $leader = MPMU::iName($leader); if (!isset($this->leaders[$leader])) { return; } foreach ($this->leaders[$leader] as $follower) { if (isset($this->followers[$follower])) { unset($this->followers[$follower]); } } unset($this->leaders[$leader]); }
/** * @priority MONITOR */ public function onPlayerCmd(PlayerCommandPreprocessEvent $ev) { if ($ev->isCancelled()) { return; } if ($this->exPerms !== null && $ev->getPlayer()->hasPermission($this->exPerms)) { return; } $this->logEvent(MPMU::iName($ev->getPlayer()), $ev->getMessage()); }