getGamemode() публичный Метод

public getGamemode ( ) : integer
Результат integer
Пример #1
0
 private function handle($cmd, $args, Player $player, CommandSender $issuer)
 {
     switch ($cmd) {
         case "getping":
             $issuer->sendMessage("Ping of " . $player->getName() . ": unknown ms");
             return true;
         case "seearmor":
             $issuer->sendMessage("Armor of " . $player->getName() . ":");
             $issuer->sendMessage("Helmet: " . $this->formatItem($player->getInventory()->getArmorItem(0)));
             $issuer->sendMessage("Chestplate: " . $this->formatItem($player->getInventory()->getArmorItem(1)));
             $issuer->sendMessage("Leggings: " . $this->formatItem($player->getInventory()->getArmorItem(2)));
             $issuer->sendMessage("Boots: " . $this->formatItem($player->getInventory()->getArmorItem(3)));
             return true;
         case "seegm":
             $issuer->sendMessage("Gamemode of " . $player->getName() . ": " . $this->formatGamemode($player->getGamemode()));
             return true;
         case "getpos":
             $issuer->sendMessage($player->getName() . " is at (" . TextFormat::YELLOW . $player->x . ", " . TextFormat::GREEN . $player->y . ", " . TextFormat::AQUA . $player->z . ") in world " . TextFormat::RED . $player->getLevel()->getName() . ".");
             return true;
         case "setarmor":
             // TODO
             break;
         case "rmarmor":
             // TODO
             break;
         case "sessions":
             // TODO
             break;
     }
     return false;
 }
Пример #2
0
 public function storePlayer(Player $player)
 {
     if (!isset($this->players[$player->getName()])) {
         $this->players[$player->getName()] = ["inventory" => serialize($player->getInventory()->getContents()), "armor" => serialize($player->getInventory()->getArmorContents()), "spawn" => serialize($player->getPosition()), "gamemode" => $player->getGamemode()];
         $player->setGamemode(0);
         $player->getInventory()->clearAll();
     }
 }
Пример #3
0
 private function showGameMode(Player $player)
 {
     $modeName = "";
     switch ($player->getGamemode()) {
         case Player::ADVENTURE:
             $modeName = "Adventure";
             break;
         case Player::CREATIVE:
             $modeName = "Creative";
             break;
         case Player::SURVIVAL:
             $modeName = "Survival";
             break;
         case Player::SPECTATOR:
             $modeName = "Spectator";
             break;
     }
     $player->sendMessage(TextFormat::DARK_GRAY . "[HG] You are in mode: " . TextFormat::DARK_GREEN . $modeName);
 }
Пример #4
0
 public function onActivate(Item $item, Player $player = null)
 {
     if ($player instanceof Player) {
         $t = $this->getLevel()->getTile($this);
         $furnace = false;
         if ($t instanceof Furnace) {
             $furnace = $t;
         } else {
             $nbt = new Compound(false, [new Enum("Items", []), new String("id", Tile::FURNACE), new Int("x", $this->x), new Int("y", $this->y), new Int("z", $this->z)]);
             $nbt->Items->setTagType(NBT::TAG_Compound);
             $furnace = Tile::createTile("Furnace", $this->getLevel()->getChunk($this->x >> 4, $this->z >> 4), $nbt);
         }
         if (($player->getGamemode() & 0x1) === 0x1) {
             return true;
         }
         $player->addWindow($furnace->getInventory());
     }
     return true;
 }
Пример #5
0
 public function getGamemode(Player $player)
 {
     return $player->getGamemode();
 }
Пример #6
0
 public function addPlayer(Player $player)
 {
     if ($this->enabled == true) {
         if ($this->active == false) {
             if (count($this->players) < $this->plugin->getConfig()->get("maxplayers")) {
                 $this->players[$player->getName()] = $player;
                 if (isset($this->players[$player->getName()])) {
                     $player->arena = $this;
                     $player->teleport($this->getSpawn());
                     $player->prevGamemode = $player->getGamemode();
                     $player->setGamemode(0);
                     $player->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Joined arena '" . $this->getArenaName() . "'");
                     return true;
                 } else {
                     $player->sendMessage("Error while joining...");
                     return false;
                 }
             } else {
                 $player->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "This arena is full");
                 return false;
             }
         } else {
             $player->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "A game is already running in this arena.");
         }
     } else {
         $player->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "This arena is disabled.");
         return false;
     }
 }
 /**
  * @param Player $player
  * @param Item $item
  * @return boolean
  */
 private function hasItemPlayer(Player $player, Item $item)
 {
     if ($this->SignShop->getProvider()->getPlayer(strtolower($player->getName()))["authorized"] == "root") {
         return true;
     }
     $ris = 0;
     if ($player->getGamemode() != 1) {
         for ($i = 0; $i <= $player->getInventory()->getSize(); ++$i) {
             $inv = $player->getInventory()->getItem($i);
             if ($inv->getID() == $item->getID() && $inv->getDamage() == $item->getDamage()) {
                 $ris = $ris + $inv->getCount();
             }
         }
     }
     if ($ris >= $item->getCount()) {
         return true;
     }
     return false;
 }
Пример #8
0
 public function setGamemode(Player $player, $gm)
 {
     if ($gm < 0 or $gm > 3 or $player->gamemode === $gm) {
         return \false;
     }
     $player->getServer()->getPluginManager()->callEvent($ev = new PlayerGameModeChangeEvent($player, (int) $gm));
     if ($ev->isCancelled()) {
         return false;
     }
     if (($player->gamemode & 0x1) === ($gm & 0x1)) {
         $player->gamemode = $gm;
         $player->sendMessage(TextFormat::DARK_AQUA . "게임모드가 변경되었습니다, " . Server::getGamemodeString($player->getGamemode()) . ".\n");
     } else {
         $player->gamemode = $gm;
         $player->sendMessage(TextFormat::DARK_AQUA . "게임모드가 변경되었습니다, " . Server::getGamemodeString($player->getGamemode()) . ".\n");
         $player->getInventory()->clearAll();
         $player->getInventory()->sendContents($player->getViewers());
         $player->getInventory()->sendHeldItem($player->getViewers());
     }
     $player->namedtag->playerGameType = new Int("playerGameType", $player->gamemode);
     $player->sendMessage(TextFormat::DARK_AQUA . "새 게임모드 적용을 위해 서버에서 킥처리됩니다.");
     $this->getServer()->getScheduler()->scheduleDelayedTask(new CallbackTask([$this, "Kick"], [$player]), 50);
     return true;
 }
Пример #9
0
 public static function clearAllInventories(Player $player)
 {
     if ($player != null && !$player->isOp()) {
         if ($player->getGamemode() === Player::SURVIVAL) {
             if (!empty($player->getInventory())) {
                 $player->getInventory()->setBoots(new Item(Item::AIR));
                 $player->getInventory()->setChestplate(new Item(Item::AIR));
                 $player->getInventory()->setHelmet(new Item(Item::AIR));
                 $player->getInventory()->setLeggings(new Item(Item::AIR));
                 $player->getInventory()->clearAll();
                 $player->getInventory()->setItemInHand(new Item(Item::AIR));
                 $player->getInventory()->sendContents($player);
                 if (!empty($player->getViewers())) {
                     $player->getInventory()->sendContents($player->getViewers());
                 }
             }
         }
     }
 }
Пример #10
-1
 /**
  * Tries to break a block using a item, including Player time checks if available
  * It'll try to lower the durability if Item is a tool, and set it to Air if broken.
  *
  * @param Vector3 $vector
  * @param Item    &$item (if null, can break anything)
  * @param Player  $player
  *
  * @return boolean
  */
 public function useBreakOn(Vector3 $vector, Item &$item = null, Player $player = null)
 {
     $target = $this->getBlock($vector);
     //TODO: Adventure mode checks
     if ($item === null) {
         $item = Item::get(Item::AIR, 0, 0);
     }
     if ($player instanceof Player) {
         $ev = new BlockBreakEvent($player, $target, $item, ($player->getGamemode() & 0x1) === 1 ? true : false);
         if ($player->isSurvival() and $item instanceof Item and !$target->isBreakable($item)) {
             $ev->setCancelled();
         }
         if (!$player->isOp() and ($distance = $this->server->getConfigInt("spawn-protection", 16)) > -1) {
             $t = new Vector2($target->x, $target->z);
             $s = new Vector2($this->getSpawnLocation()->x, $this->getSpawnLocation()->z);
             if ($t->distance($s) <= $distance) {
                 //set it to cancelled so plugins can bypass this
                 $ev->setCancelled();
             }
         }
         $this->server->getPluginManager()->callEvent($ev);
         if ($ev->isCancelled()) {
             return false;
         }
         $breakTime = $player->isCreative() ? 0.15 : $target->getBreakTime($item);
         if (!$ev->getInstaBreak() and $player->lastBreak + $breakTime >= microtime(true)) {
             return false;
         }
         $player->lastBreak = microtime(true);
     } elseif ($item instanceof Item and !$target->isBreakable($item)) {
         return false;
     }
     $level = $target->getLevel();
     if ($level instanceof Level) {
         $above = $level->getBlock(new Vector3($target->x, $target->y + 1, $target->z));
         if ($above instanceof Block) {
             if ($above->getId() === Item::FIRE) {
                 $level->setBlock($above, new Air(), true);
             }
         }
     }
     $drops = $target->getDrops($item);
     //Fixes tile entities being deleted before getting drops
     $target->onBreak($item);
     $tile = $this->getTile($target);
     if ($tile instanceof Tile) {
         if ($tile instanceof InventoryHolder) {
             if ($tile instanceof Chest) {
                 $tile->unpair();
             }
             foreach ($tile->getInventory()->getContents() as $chestItem) {
                 $this->dropItem($target, $chestItem);
             }
         }
         $tile->close();
     }
     if ($item instanceof Item) {
         $item->useOn($target);
         if ($item->isTool() and $item->getDamage() >= $item->getMaxDurability()) {
             $item = Item::get(Item::AIR, 0, 0);
         }
     }
     if (!$player instanceof Player or $player->isSurvival()) {
         foreach ($drops as $drop) {
             if ($drop[2] > 0) {
                 $this->dropItem($vector->add(0.5, 0.5, 0.5), Item::get(...$drop));
             }
         }
     }
     return true;
 }