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(); } if(count($args) === 1){ if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_KILL_OTHER)){ return true; } $player = $sender->getServer()->getPlayerByPrefix($args[0]); if($player instanceof Player){ $player->attack(new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kill_successful($player->getName())); }else{ $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound()->prefix(TextFormat::RED)); } return true; } if($sender instanceof Player){ if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_KILL_SELF)){ return true; } $sender->attack(new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000)); $sender->sendMessage(KnownTranslationFactory::commands_kill_successful($sender->getName())); }else{ throw new InvalidCommandSyntaxException(); } return true; } }