setPermission(implode(";", [DefaultPermissionNames::COMMAND_KILL_SELF, DefaultPermissionNames::COMMAND_KILL_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] ?? null, DefaultPermissionNames::COMMAND_KILL_SELF, DefaultPermissionNames::COMMAND_KILL_OTHER); if($player === null){ return true; } $player->attack(new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000)); if($player === $sender){ $sender->sendMessage(KnownTranslationFactory::commands_kill_successful($sender->getName())); }else{ Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kill_successful($player->getName())); } return true; } }