private function processIPBan($ip, CommandSender $sender, $reason) { $sender->getServer()->getIPBans()->addBan($ip, $reason, null, $sender->getName()); foreach ($sender->getServer()->getOnlinePlayers() as $player) { if ($player->getAddress() === $ip) { $player->kick($reason !== "" ? $reason : "IP banned."); } } $sender->getServer()->getNetwork()->blockAddress($ip, -1); }
/** * @param CommandSender $source * @param string $message * @param bool $sendToSource */ public static function broadcastCommandMessage(CommandSender $source, $message, $sendToSource = true) { if ($message instanceof TextContainer) { $m = clone $message; $result = "[" . $source->getName() . ": " . ($source->getServer()->getLanguage()->get($m->getText()) !== $m->getText() ? "%" : "") . $m->getText() . "]"; $users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE); $colored = TextFormat::GRAY . TextFormat::ITALIC . $result; $m->setText($result); $result = clone $m; $m->setText($colored); $colored = clone $m; } else { $users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE); $result = new TranslationContainer("chat.type.admin", [$source->getName(), $message]); $colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%chat.type.admin", [$source->getName(), $message]); } if ($sendToSource === true and !$source instanceof ConsoleCommandSender) { $source->sendMessage($message); } foreach ($users as $user) { if ($user instanceof CommandSender) { if ($user instanceof ConsoleCommandSender) { $user->sendMessage($result); } elseif ($user !== $source) { $user->sendMessage($colored); } } } }