setKickMessage() публичный Метод

public setKickMessage ( $kickMessage )
Пример #1
0
 /**
  * @param PlayerPreLoginEvent $login
  * @priority HIGH
  * @ignoreCancelled true
  */
 public function onPlayerPreconnect(PlayerPreLoginEvent $login)
 {
     $name = strtolower($login->getPlayer()->getName());
     if (in_array($name, ["pocketmine", "console", "server", "rcon", "legionpe", "botbot", "fakeclient", "pocketbot"])) {
         $login->setCancelled();
         $login->setKickMessage("Bad username");
     } else {
         $reason = $this->getMain()->getMySQLi()->query("SELECT msg FROM ipbans WHERE %s LIKE ip AND %d<(unix_timestamp(creation)+length);", MysqlConnection::ASSOC, $login->getPlayer()->getAddress(), time());
         if (is_array($reason)) {
             $login->setCancelled();
             $login->setKickMessage("You are IP-banned! Reason: " . (isset($reason["msg"]) ? $reason["msg"] : "no reason specified :("));
         }
         if (($old = $this->getMain()->getServer()->getPlayerExact($name)) instanceof Player) {
             // if has name collision
             if ($old->getAddress() !== ($ip = $login->getPlayer()->getAddress())) {
                 // if IP is different
                 if (substr($ip, 0, 8) !== "192.168." and $ip !== "119.247.51.252") {
                     // if new IP isn't local and isn't PEMapModder's IP address (yes I am making it for myself)
                     $login->setCancelled();
                     $login->setKickMessage("Player already online with differnet IP");
                 }
             }
         }
     }
 }
Пример #2
0
 public function onPreLogin(PlayerPreLoginEvent $event)
 {
     if (isset($this->bans[$event->getPlayer()->getClientId()])) {
         $event->setKickMessage("You are Banned!");
         $event->setCancelled();
     }
 }
Пример #3
0
 public function onLogin(PlayerPreLoginEvent $event)
 {
     $player = $event->getPlayer();
     $uuid = $player->getClientId();
     $reason = "당신은 비매너 유저입니다.";
     /*
     		for($i = 0;$i < count($this->terrorist);$i++) {
     			 if($this->terrorist[i] == $player->getAddress()) {
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist]테러범이 접속하였습니다.");
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist]곧 기기밴 됩니다.");
     				$this->banDB[$player->getName()] = $uuid;
     				// UUIDBan::getInstance()->AddBan($player, $reason);
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist]기기밴 완료");
     			 }
     		} */
     foreach ($this->banDB as $list) {
         if ($list == $uuid) {
             $event->setKickMessage($reason);
             $event->setCancelled();
             return;
         }
     }
     for ($i = 0; $i < count($this->terrorist); $i++) {
         if ($this->terrorist[i] == $player->getAddress()) {
             $this->getServer()->broadcastMessage(TextFormat::RED . "[BanTerrorist] 비매너 플레이어가 접속하였습니다.");
             $this->getServer()->broadcastMessage(TextFormat::RED . "[BanTerrorist] 곧 기기밴 됩니다.");
             $event->setKickMessage($reason);
             $this->banDB[$player->getName()] = $uuid;
             $this->save("BanDB.yml", $this->banDB, true);
             $event->setCancelled();
             //UUIDBan::getInstance()->AddBan($player, $reason);
             $this->getServer()->broadcastMessage(TextFormat::RED . "[BanTerrorist] 기기밴 완료");
         }
     }
     /*foreach($this->terrorist as $list) {
     			if($list == $player->getAddress()) {
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist] 비매너 플레이어가 접속하였습니다.");
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist] 곧 기기밴 됩니다.");
     				$event->setKickMessage($reason);
     				$this->banDB[$player->getName()] = $uuid;
     				$this->save("BanDB.yml", $this->banDB, true);
     				$event->setCancelled();
     				//UUIDBan::getInstance()->AddBan($player, $reason);
     				$this->getServer()->broadcastMessage( TextFormat::RED ."[BanTerrorist] 기기밴 완료");
     			}
     		}*/
 }
Пример #4
0
 public function onLogin(PlayerPreLoginEvent $event)
 {
     $player = $event->getPlayer();
     $addressInfo = json_decode(Utils::getURL(" http://freegeoip.net/json/" . $player->getAddress()), true);
     if (!$addressInfo[country_code] == "KR") {
         $event->setKickMessage("You are not Korean");
         $event->setCanCelled();
     }
 }
Пример #5
0
 public function onPreLogin(PlayerPreLoginEvent $e)
 {
     $player = $e->getPlayer();
     foreach ($this->getServer()->getOnlinePlayers() as $p) {
         if (strtolower($player->getName()) === strtolower($p->getName() and $p !== $player)) {
             $e->setKickMessage(F::RED . $player->getName() . F::GOLD . " already playing on a server");
             $e->setCancelled(true);
             return;
         }
     }
 }
 public function onPreLogin(PlayerPreLoginEvent $event)
 {
     $this->getMain()->newJoins++;
     $player = $event->getPlayer();
     foreach ($this->main->getServer()->getOnlinePlayers() as $other) {
         if ($other === $player or strtolower($other->getName()) !== strtolower($player->getName())) {
             continue;
         }
         /** @noinspection PhpDeprecationInspection */
         if ($other->getRawUniqueId() === $player->getRawUniqueId()) {
             $other->close("You rejoined from the same IP with the same client and the same username.");
         } else {
             $event->setCancelled();
             $event->setKickMessage("A player of this username has already connected from a different IP of yours or from another client.");
             return;
         }
     }
 }
Пример #7
0
 public function onPreLogin(PlayerPreLoginEvent $event)
 {
     $newPlayer = $event->getPlayer();
     foreach ($this->main->getServer()->getOnlinePlayers() as $oldPlayer) {
         if ($oldPlayer === $newPlayer) {
             continue;
             // too lazy to check if this would happen
         }
         if (($lowName = strtolower($newPlayer->getName())) === strtolower($oldPlayer->getName())) {
             // we are having trouble
             $checkIp = $this->main->getConfig()->getNested("MultiSesCtrl.CheckIP", true);
             $cond = $oldPlayer->getClientSecret() === $newPlayer->getClientSecret();
             if ($checkIp) {
                 $cond = ($cond and $oldPlayer->getAddress() === $newPlayer->getAddress());
                 // don't forget these parentheses! :) PHP operator precedence >.<
             }
             if ($cond) {
                 $oldPlayer->kick("Login from the same device", false);
                 $this->main->getAuditLogger()->logPush($lowName, $oldPlayer->getAddress(), $newPlayer->getAddress());
             } else {
                 $event->setCancelled();
                 $user = $this->main->getUserByPlayer($oldPlayer);
                 if ($user === null) {
                     $status = "loading HereAuth account";
                     $oldState = "loading";
                 } elseif ($user->isRegistering()) {
                     $status = "registering with HereAuth";
                     $oldState = "register";
                 } elseif ($user->isLoggingIn()) {
                     $status = "pending to login with HereAuth";
                     $oldState = "login";
                 } elseif ($user->getAccountInfo()->passwordHash) {
                     $status = "logged in with HereAuth";
                     $oldState = "auth";
                 } else {
                     $status = "account not registered with HereAuth";
                     $oldState = "noreg";
                 }
                 $this->main->getAuditLogger()->logBump($lowName, $oldPlayer->getAddress(), $newPlayer->getAddress(), $oldPlayer->getUniqueId()->toString(), $newPlayer->getUniqueId()->toString(), $oldState);
                 $event->setKickMessage("Player of the same name ({$lowName}) from another device is already online ({$status})");
             }
         }
     }
 }
Пример #8
0
 public function onPlayerPreLogin(\pocketmine\event\player\PlayerPreLoginEvent $event)
 {
     $ik = $this->isKorean();
     if ($this->isLogin($player = $event->getPlayer(), true)) {
         $address = $player->getAddress();
         foreach ($this->getServer()->getOnlinePlayers() as $onlinePlayer) {
             if ($onlinePlayer !== $player && strtolower($onlinePlayer->getName()) === strtolower($player->getName()) && $onlinePlayer->getAddress() === $address) {
                 $onlinePlayer->close($reason = Color::RED . ($ik ? "새로운 접속" : "New connections"), $reason);
                 $address = false;
                 break;
             }
         }
         if ($address) {
             $event->setKickMessage(Color::RED . "Already Login this Id");
             $event->setCancelled();
         }
     } else {
         $cid = $player->getClientId();
         $name = strtolower($player->getName());
         foreach ($this->lg as $key => $lg) {
             if (isset($lg["CID"]) && $lg["CID"] == $cid && $key != $name) {
                 $event->setKickMessage(Color::RED . ($ik ? "당신은 이미 가입하셨습니다." : "Your Already Register.") . "\n" . Color::GOLD . "     On " . Color::YELLOW . $key);
                 $event->setCancelled();
                 break;
             }
         }
     }
 }