setPermission(implode(";", [ DefaultPermissionNames::COMMAND_TITLE_SELF, DefaultPermissionNames::COMMAND_TITLE_OTHER ])); } public function execute(CommandSender $sender, string $commandLabel, array $args){ if(!$this->testPermission($sender)){ return true; } if(count($args) < 2){ throw new InvalidCommandSyntaxException(); } $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_TITLE_SELF, DefaultPermissionNames::COMMAND_TITLE_OTHER); if($player === null){ return true; } switch($args[1]){ case "clear": $player->removeTitles(); break; case "reset": $player->resetTitles(); break; case "title": if(count($args) < 3){ throw new InvalidCommandSyntaxException(); } $player->sendTitle(implode(" ", array_slice($args, 2))); break; case "subtitle": if(count($args) < 3){ throw new InvalidCommandSyntaxException(); } $player->sendSubTitle(implode(" ", array_slice($args, 2))); break; case "actionbar": if(count($args) < 3){ throw new InvalidCommandSyntaxException(); } $player->sendActionBarMessage(implode(" ", array_slice($args, 2))); break; case "times": if(count($args) < 5){ throw new InvalidCommandSyntaxException(); } $player->setTitleDuration($this->getInteger($sender, $args[2]), $this->getInteger($sender, $args[3]), $this->getInteger($sender, $args[4])); break; default: throw new InvalidCommandSyntaxException(); } $sender->sendMessage(KnownTranslationFactory::commands_title_success()); return true; } }