예제 #1
0
 public function removePlayer(XcelPlayer $player, $notify = false)
 {
     if ($notify && $player->isAlive()) {
         $this->broadcastMessageForPlayers(TextFormat::RED . XcelNgien::getTranslation("PLAYER_OUT", $player->getPlayer()->getDisplayName()));
     }
     if ($this->currentStatus === self::STATUS_IN_GAME || $this->currentStatus === self::STATUS_FINISHED) {
         $this->removePrivilege($player);
     }
     $player->setGame(null);
     $player->getPlayer()->setGamemode(Server::getInstance()->getDefaultGamemode());
     $player->getPlayer()->setHealth($player->getPlayer()->getMaxHealth());
     $player->getPlayer()->teleport(Server::getInstance()->getDefaultLevel()->getSpawnLocation());
     unset($this->players[$player->getPlayer()->getName()]);
     $this->recalculatePlayers();
 }
예제 #2
0
 public function playerMove(XcelPlayer $player, PlayerMoveEvent $event)
 {
     if (!$player->isAlive()) {
         return;
     }
     if (!XcelNgien::isSameGame($player->getGame(), $this)) {
         return;
     }
     $oldTo = $event->getTo();
     $x = $oldTo->getX() < -1 ? -1 : $oldTo->getX();
     $x = $x > 2 ? 2 : $x;
     $event->setTo(new Location($x, $oldTo->getY(), $oldTo->getZ(), $oldTo->getYaw(), $oldTo->getPitch(), $oldTo->getLevel()));
 }