Beispiel #1
0
 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);
 }
Beispiel #2
0
 /**
  * @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);
             }
         }
     }
 }