pocketmine\level\weather\Weather::getWeatherFromString PHP Méthode

getWeatherFromString() public static méthode

public static getWeatherFromString ( $weather )
    public static function getWeatherFromString($weather)
    {
        if (is_int($weather)) {
            if ($weather <= 3) {
                return $weather;
            }
            return self::SUNNY;
        }
        switch (strtolower($weather)) {
            case "clear":
            case "sunny":
            case "fine":
                return self::SUNNY;
            case "rain":
            case "rainy":
                return self::RAINY;
            case "thunder":
                return self::THUNDER;
            case "rain_thunder":
            case "rainy_thunder":
            case "storm":
                return self::RAINY_THUNDER;
            default:
                return self::SUNNY;
        }
    }

Usage Example

 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 = Weather::getWeatherFromString($args[0]);
         if (!isset($args[1])) {
             $duration = mt_rand(min($sender->getServer()->weatherRandomDurationMin, $sender->getServer()->weatherRandomDurationMax), max($sender->getServer()->weatherRandomDurationMin, $sender->getServer()->weatherRandomDurationMax));
         } else {
             $duration = (int) $args[1];
         }
         if ($wea >= 0 and $wea <= 3) {
             $sender->getLevel()->getWeather()->setWeather($wea, $duration);
             $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.changed", [$sender->getLevel()->getFolderName()]));
             return true;
             /*if(WeatherManager::isRegistered($sender->getLevel())){
             			$sender->getLevel()->getWeather()->setWeather($wea, $duration);
             			$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 = Weather::getWeatherFromString($args[1]);
     if (!isset($args[1])) {
         $duration = mt_rand(min($sender->getServer()->weatherRandomDurationMin, $sender->getServer()->weatherRandomDurationMax), max($sender->getServer()->weatherRandomDurationMin, $sender->getServer()->weatherRandomDurationMax));
     } else {
         $duration = (int) $args[1];
     }
     if ($wea >= 0 and $wea <= 3) {
         $level->getWeather()->setWeather($wea, $duration);
         $sender->sendMessage(new TranslationContainer("pocketmine.command.weather.changed", [$level->getFolderName()]));
         return true;
         /*if(WeatherManager::isRegistered($level)){
         			$level->getWeather()->setWeather($wea, $duration);
         			$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;
     }
 }