setPermission("pocketmine.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()->getPlayer($args[0]); if($player === null){ $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound")); return true; } $item = $player->getInventory()->getItemInHand(); if($item->isNull()){ $sender->sendMessage(new TranslationContainer("commands.enchant.noItem")); return true; } if(is_numeric($args[1])){ $enchantment = Enchantment::getEnchantment((int) $args[1]); }else{ $enchantment = Enchantment::getEnchantmentByName($args[1]); } if(!($enchantment instanceof Enchantment)){ $sender->sendMessage(new TranslationContainer("commands.enchant.notFound", [$args[1]])); return true; } $item->addEnchantment(new EnchantmentInstance($enchantment, (int) ($args[2] ?? 1))); $player->getInventory()->setItemInHand($item); self::broadcastCommandMessage($sender, new TranslationContainer("%commands.enchant.success", [$player->getName()])); return true; } }