setPermission(DefaultPermissionNames::COMMAND_ENCHANT); } public function execute(CommandSender $sender, string $commandLabel, array $args){ if(!$this->testPermission($sender)){ return true; } if(count($args) < 2){ throw new InvalidCommandSyntaxException(); } $player = $sender->getServer()->getPlayerByPrefix($args[0]); if($player === null){ $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound()->prefix(TextFormat::RED)); return true; } $item = $player->getInventory()->getItemInHand(); if($item->isNull()){ $sender->sendMessage(KnownTranslationFactory::commands_enchant_noItem()); return true; } try{ $enchantment = VanillaEnchantments::fromString($args[1]); }catch(\InvalidArgumentException $e){ $sender->sendMessage(KnownTranslationFactory::commands_enchant_notFound($args[1])); return true; } $level = 1; if(isset($args[2])){ $level = $this->getBoundedInt($sender, $args[2], 1, $enchantment->getMaxLevel()); if($level === null){ return false; } } $item->addEnchantment(new EnchantmentInstance($enchantment, $level)); $player->getInventory()->setItemInHand($item); self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_enchant_success($player->getName())); return true; } }