From 0b1bdec3ac099e3b00e89188293baa093e831023 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sat, 26 Jan 2019 17:09:54 +0000 Subject: [PATCH] GameMode::fromString() now throws InvalidArgumentException --- src/pocketmine/GameMode.php | 4 +++- .../command/defaults/DefaultGamemodeCommand.php | 13 +++++++------ src/pocketmine/command/defaults/GamemodeCommand.php | 7 +++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/pocketmine/GameMode.php b/src/pocketmine/GameMode.php index 43271d568..99e0bd4c9 100644 --- a/src/pocketmine/GameMode.php +++ b/src/pocketmine/GameMode.php @@ -40,6 +40,8 @@ final class GameMode{ * @param string $str * * @return int + * + * @throws \InvalidArgumentException */ public static function fromString(string $str) : int{ switch(strtolower(trim($str))){ @@ -65,7 +67,7 @@ final class GameMode{ return self::SPECTATOR; } - return -1; + throw new \InvalidArgumentException("Unknown gamemode string \"$str\""); } /** diff --git a/src/pocketmine/command/defaults/DefaultGamemodeCommand.php b/src/pocketmine/command/defaults/DefaultGamemodeCommand.php index c8bede912..294ba3a27 100644 --- a/src/pocketmine/command/defaults/DefaultGamemodeCommand.php +++ b/src/pocketmine/command/defaults/DefaultGamemodeCommand.php @@ -49,15 +49,16 @@ class DefaultGamemodeCommand extends VanillaCommand{ throw new InvalidCommandSyntaxException(); } - $gameMode = GameMode::fromString($args[0]); - - if($gameMode !== -1){ - $sender->getServer()->setConfigInt("gamemode", $gameMode); - $sender->sendMessage(new TranslationContainer("commands.defaultgamemode.success", [GameMode::toTranslation($gameMode)])); - }else{ + try{ + $gameMode = GameMode::fromString($args[0]); + }catch(\InvalidArgumentException $e){ $sender->sendMessage("Unknown game mode"); + return true; } + $sender->getServer()->setConfigInt("gamemode", $gameMode); + $sender->sendMessage(new TranslationContainer("commands.defaultgamemode.success", [GameMode::toTranslation($gameMode)])); + return true; } } diff --git a/src/pocketmine/command/defaults/GamemodeCommand.php b/src/pocketmine/command/defaults/GamemodeCommand.php index 3439caa8a..d8db3fcca 100644 --- a/src/pocketmine/command/defaults/GamemodeCommand.php +++ b/src/pocketmine/command/defaults/GamemodeCommand.php @@ -52,11 +52,10 @@ class GamemodeCommand extends VanillaCommand{ throw new InvalidCommandSyntaxException(); } - $gameMode = GameMode::fromString($args[0]); - - if($gameMode === -1){ + try{ + $gameMode = GameMode::fromString($args[0]); + }catch(\InvalidArgumentException $e){ $sender->sendMessage("Unknown game mode"); - return true; }