public function execute(CommandSender $sender, $currentAlias, array $args) { if (!$this->testPermission($sender)) { return true; } if (count($args) < 1) { $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage])); return false; } if ($sender instanceof Player) { $wea = (int) $args[0]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($sender->getLevel())) { $sender->getLevel()->getWeather()->setWeather($wea); $sender->sendMessage(TextFormat::GREEN . "Weather changed successfully for " . $sender->getLevel()->getFolderName()); return true; } else { $sender->sendMessage(TextFormat::RED . $sender->getLevel()->getFolderName() . " hasn't registered to WeatherManager."); return false; } } else { $sender->sendMessage(TextFormat::RED . "Invalid weather."); return false; } } if (count($args) < 2) { $sender->sendMessage(TextFormat::RED . "Wrong parameters."); return false; } $level = $sender->getServer()->getLevelByName($args[0]); if (!$level instanceof Level) { $sender->sendMessage(TextFormat::RED . "Invalid level name."); return false; } $wea = (int) $args[1]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($level)) { $level->getWeather()->setWeather($wea); $sender->sendMessage(TextFormat::GREEN . "Weather changed successfully for " . $level->getFolderName()); return true; } else { $sender->sendMessage(TextFormat::RED . $level->getFolderName() . " hasn't registered to WeatherManager."); return false; } } else { $sender->sendMessage(TextFormat::RED . "Invalid weather."); return false; } return true; }
public function execute(CommandSender $sender, $currentAlias, array $args) { if (!$this->testPermission($sender)) { return true; } if (count($args) < 1) { $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage])); return false; } if ($sender instanceof Player) { $wea = (int) $args[0]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($sender->getLevel())) { $sender->getLevel()->getWeather()->setWeather($wea); $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.changed", [$sender->getLevel()->getFolderName()])); return true; } else { $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.noregistered", [$sender->getLevel()->getFolderName()])); return false; } } else { $sender->sendMessage(TextFormat::RED . "%pocketmine.command.weather.invalid"); return false; } } if (count($args) < 2) { $sender->sendMessage(TextFormat::RED . "%pocketmine.command.weather.wrong"); return false; } $level = $sender->getServer()->getLevelByName($args[0]); if (!$level instanceof Level) { $sender->sendMessage(TextFormat::RED . "%pocketmine.command.weather.invalid.level"); return false; } $wea = (int) $args[1]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($level)) { $level->getWeather()->setWeather($wea); $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.changed", [$level->getFolderName()])); return true; } else { $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.noregistered", [$level->getFolderName()])); return false; } } else { $sender->sendMessage(TextFormat::RED . "%pocketmine.command.weather.invalid"); return false; } return true; }
public function execute(CommandSender $sender, $currentAlias, array $args) { if (count($args) < 1) { $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage])); return false; } if ($sender instanceof Player) { $wea = (int) $args[0]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($sender->getLevel())) { $sender->getLevel()->getWeather()->setWeather($wea); $sender->sendMessage(TextFormat::GREEN . "天气设置成功!"); return true; } else { $sender->sendMessage(TextFormat::RED . "这个世界没有注册到天气管理器!"); return false; } } else { $sender->sendMessage(TextFormat::RED . "无效的天气!"); return false; } } if (count($args) < 2) { $sender->sendMessage(TextFormat::RED . "缺少参数!"); return false; } $level = $sender->getServer()->getLevelByName($args[0]); if (!$level instanceof Level) { $sender->sendMessage(TextFormat::RED . "错误的地图名!"); return false; } $wea = (int) $args[1]; if ($wea >= 0 and $wea <= 3) { if (WeatherManager::isRegistered($level)) { $level->getWeather()->setWeather($wea); $sender->sendMessage(TextFormat::GREEN . "天气设置成功!"); return true; } else { $sender->sendMessage(TextFormat::RED . "这个世界没有注册到天气管理器!"); return false; } } else { $sender->sendMessage(TextFormat::RED . "无效的天气!"); return false; } return true; }
protected function doFirstSpawn() { $this->spawned = true; $this->sendSettings(); $this->setMovementSpeed(0.1); $this->sendPotionEffects($this); $this->sendData($this); $this->inventory->sendContents($this); $this->inventory->sendArmorContents($this); $pk = new SetTimePacket(); $pk->time = $this->level->getTime(); $pk->started = $this->level->stopTime == false; $this->dataPacket($pk); $pos = $this->level->getSafeSpawn($this); $this->server->getPluginManager()->callEvent($ev = new PlayerRespawnEvent($this, $pos)); $pos = $ev->getRespawnPosition()->add(0, 0.2, 0); $pk = new RespawnPacket(); $pk->x = $pos->x; $pk->y = $pos->y; $pk->z = $pos->z; $this->dataPacket($pk); $pk = new PlayStatusPacket(); $pk->status = PlayStatusPacket::PLAYER_SPAWN; $this->dataPacket($pk); $this->noDamageTicks = 60; foreach ($this->usedChunks as $index => $c) { Level::getXZ($index, $chunkX, $chunkZ); foreach ($this->level->getChunkEntities($chunkX, $chunkZ) as $entity) { if ($entity !== $this and !$entity->closed and $entity->isAlive()) { $entity->spawnTo($this); } } } $this->teleport($pos); $this->server->getPluginManager()->callEvent($ev = new PlayerJoinEvent($this, new TranslationContainer(TextFormat::YELLOW . "%multiplayer.player.joined", [$this->getDisplayName()]))); if (strlen(trim($msg = $ev->getJoinMessage())) > 0) { if ($this->server->playerMsgType === Server::PLAYER_MSG_TYPE_MESSAGE) { $this->server->broadcastMessage($msg); } elseif ($this->server->playerMsgType === Server::PLAYER_MSG_TYPE_TIP) { $this->server->broadcastTip(str_replace("@player", $this->getName(), $this->server->playerLoginMsg)); } elseif ($this->server->playerMsgType === Server::PLAYER_MSG_TYPE_POPUP) { $this->server->broadcastPopup(str_replace("@player", $this->getName(), $this->server->playerLoginMsg)); } } $this->setAllowFlight($this->gamemode == 3 || $this->gamemode == 1); $this->server->onPlayerLogin($this); $this->spawnToAll(); if (WeatherManager::isRegistered($this->level)) { $this->level->getWeather()->sendWeather($this); } if ($this->server->expEnabled) { //$this->checkExpLevel(); $this->updateExperience(); } $this->setHealth($this->getHealth()); if ($this->server->foodEnabled) { $this->setFood($this->getFood()); } else { $this->setFood(20); } if ($this->server->dserverConfig["enable"] and $this->server->dserverConfig["queryAutoUpdate"]) { $this->server->updateQuery(); } /*if($this->server->getUpdater()->hasUpdate() and $this->hasPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE)){ $this->server->getUpdater()->showPlayerUpdate($this); }*/ if ($this->getHealth() <= 0) { $pk = new RespawnPacket(); $pos = $this->getSpawn(); $pk->x = $pos->x; $pk->y = $pos->y; $pk->z = $pos->z; $this->dataPacket($pk); } }