public function execute(CommandSender $sender, $currentAlias, array $args)
{
if (!$this->testPermission($sender)) {
return true;
}
if (count($args) === 0) {
$sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
return false;
}
$value = array_shift($args);
$reason = implode(" ", $args);
if (preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\$/", $value)) {
$this->processIPBan($value, $sender, $reason);
Command::broadcastCommandMessage($sender, new TranslationContainer("commands.banip.success", [$value]));
} else {
if (($player = $sender->getServer()->getPlayer($value)) instanceof Player) {
$this->processIPBan($player->getAddress(), $sender, $reason);
Command::broadcastCommandMessage($sender, new TranslationContainer("commands.banip.success.players", [$player->getAddress(), $player->getName()]));
} else {
$sender->sendMessage(new TranslationContainer("commands.banip.invalid"));
return false;
}
}
return true;
}