public function execute(CommandSender $sender, $currentAlias, array $args)
{
if (!$this->testPermission($sender)) {
return true;
}
if (count($args) >= 2) {
$sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
return false;
}
if (count($args) === 1) {
if (!$sender->hasPermission("pocketmine.command.kill.other")) {
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
return true;
}
$player = $sender->getServer()->getPlayer($args[0]);
if ($player instanceof Player) {
$sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000));
if ($ev->isCancelled()) {
return true;
}
$player->setLastDamageCause($ev);
$player->setHealth(0);
Command::broadcastCommandMessage($sender, new TranslationContainer("commands.kill.successful", [$player->getName()]));
} else {
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
}
return true;
}
if ($sender instanceof Player) {
if (!$sender->hasPermission("pocketmine.command.kill.self")) {
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
return true;
}
$sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000));
if ($ev->isCancelled()) {
return true;
}
$sender->setLastDamageCause($ev);
$sender->setHealth(0);
$sender->sendMessage(new TranslationContainer("commands.kill.successful", [$sender->getName()]));
} else {
$sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
return false;
}
return true;
}