LegacyStringToItemParser: Throw more specific exceptions

This commit is contained in:
Dylan K. Taylor
2021-07-10 20:13:44 +01:00
parent 9afc5be0f5
commit 654fc9a2a6
6 changed files with 38 additions and 8 deletions

View File

@@ -23,11 +23,11 @@ declare(strict_types=1);
namespace pocketmine\command\defaults;
use InvalidArgumentException;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@@ -88,7 +88,7 @@ class ClearCommand extends VanillaCommand{
if(isset($args[2])){
$item->setCount($maxCount = $this->getInteger($sender, $args[2], 0));
}
}catch(InvalidArgumentException $e){
}catch(LegacyStringToItemParserException $e){
//vanilla checks this at argument parsing layer, can't come up with a better alternative
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GIVE_ITEM_NOTFOUND, [$args[1]]));
return true;

View File

@@ -27,6 +27,7 @@ use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\nbt\JsonNbtParser;
@@ -65,7 +66,7 @@ class GiveCommand extends VanillaCommand{
try{
$item = LegacyStringToItemParser::getInstance()->parse($args[1]);
}catch(\InvalidArgumentException $e){
}catch(LegacyStringToItemParserException $e){
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GIVE_ITEM_NOTFOUND, [$args[1]]));
return true;
}