public function onPlayerPreLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $somenumber = str_replace('*', '([0-9]+)', $this->getConfig()->get(strtolower($player->getName()))); if (!empty($this->getConfig()->get(strtolower($player->getName()))) && !preg_match("/^" . $somenumber . "\$/", $player->getAddress())) { $player->close("", "Account is secured!"); $event->setCancelled(); $this->getLogger()->info($player->getName() . " can't join server! His IP " . $player->getAddress() . " doesn't match with " . $this->getConfig()->get(strtolower($player->getName()))); return true; } }
/** * @param PlayerPreLoginEvent $event * * @priority HIGHEST */ public function onPlayerPreLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); if (count($this->plugin->getServer()->getOnlinePlayers()) - 1 < $this->plugin->getServer()->getMaxPlayers()) { if (!$this->plugin->getServer()->isWhitelisted($event->getPlayer()->getName())) { //Check if Whitelist message is custom if (CustomAlerts::getAPI()->isWhitelistMessageCustom()) { CustomAlerts::getAPI()->setWhitelistMessage(CustomAlerts::getAPI()->getDefaultWhitelistMessage($player)); } //Whitelist Kick Event $this->plugin->getServer()->getPluginManager()->callEvent(new CustomAlertsWhitelistKickEvent($player)); //Check if Whitelist message is not empty if (CustomAlerts::getAPI()->getWhitelistMessage() != null) { $player->close("", CustomAlerts::getAPI()->getWhitelistMessage()); $event->setCancelled(true); } } } else { //Check if Full Server message is custom if (CustomAlerts::getAPI()->isFullServerMessageCustom()) { CustomAlerts::getAPI()->setFullServerMessage(CustomAlerts::getAPI()->getDefaultFullServerMessage($player)); } //Full Server Kick Event $this->plugin->getServer()->getPluginManager()->callEvent(new CustomAlertsFullServerKickEvent($player)); //Check if Full Server message is not empty if (CustomAlerts::getAPI()->getFullServerMessage() != null) { $player->close("", CustomAlerts::getAPI()->getFullServerMessage()); $event->setCancelled(true); } } }
/** * @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"); } } } } }
/** * @param PlayerPreLoginEvent $event * * @priority MONITOR * @ignoreCancelled true */ public function onPlayerPreLogin(PlayerPreLoginEvent $event) { // Ban remove: if ($event->getPlayer()->isBanned() && $event->getPlayer()->hasPermission("essentials.ban.exempt")) { $event->getPlayer()->setBanned(false); } // Session configure: $this->getPlugin()->createSession($event->getPlayer()); }
public function onPlayerLogin(PlayerPreLoginEvent $event) { $ign = $event->getPlayer()->getName(); $player = $event->getPlayer(); $file = $this->getDataFolder() . "Players/" . $ign . ".yml"; if (!file_exists($file)) { $this->PlayerFile = new Config($this->getDataFolder() . "Players/" . $ign . ".yml", Config::YAML); $this->PlayerFile->set($player->getName() . " Allies!"); $this->PlayerFile->save(); } }
public function onPreLogin(PlayerPreLoginEvent $event) { if (isset($this->bans[$event->getPlayer()->getClientId()])) { $event->setKickMessage("You are Banned!"); $event->setCancelled(); } }
public function onPlayerLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $ipAddress = $player->getAddress(); if ($this->cfg["logging"]) { $this->getLogger()->info(TextFormat::WHITE . "Player " . TextFormat::GOLD . $player->getName() . TextFormat::WHITE . " is trying to connect with IP: " . TextFormat::GRAY . $ipAddress); } $this->getServer()->getScheduler()->scheduleAsyncTask(new Async(1, $player->getName(), $ipAddress, $this->getUserAgent(), $this->cfg, $this->cfgCommands, $this->cache)); }
public function onPreLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $serverFullMessage = $this->cfg->get("server_full_message"); if (count($this->getServer()->getOnlinePlayers()) >= $this->getServer()->getMaxPlayers()) { $player->close("", $serverFullMessage); $event->setCancelled(); } }
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(); } }
public function onPreLogin(PlayerPreLoginEvent $event) { $p = $event->getPlayer(); $i = $p->getAddress(); $co = geoip_country_code_by_name($i); if ($this->c[$co]) { $p->close("", $this->reason[$co]); $event->setCancelled(true); } }
public function onPreLogin(PlayerPreLoginEvent $event) { $p = $event->getPlayer(); $i = $p->getAddress(); $location = json_decode(file_get_contents('http://ip-api.com/json/', $i)); $c = $location->countryCode; if ($this->c[$co]) { $p->close("", $this->reason[$co]); $event->setCancelled(true); } }
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) { $player = $event->getPlayer(); $player_name = $player->getName(); $whitelist = $this->cfg->get("Whitelist"); $whitelisted_players = $this->cfg->get("Players"); $reason = $this->cfg->get("Reason"); if ($whitelist === "true") { if (!in_array($player_name, $whitelisted_players)) { $player->kick($reason, false); } } }
public function onPlayerPreLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $name = $player->getName(); $ip = $player->getAddress(); $geo = json_decode(file_get_contents("ipinfo.io/{$ip}")); $city = $geo->city; $file = file_get_contents("GeoProtection/data.txt"); if (strpos($file, "{$name}") !== false) { if (strpos($file, "{$city}") !== true) { $event->setCancelled(); $this->getServer()->broadcastMessage(TF::RED . "WARNING: Someone with the IP: " . $ip . " Is trying to use the account: " . $name . "!"); } } }
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] 기기밴 완료"); } }*/ }
/** * @param PlayerPreLoginEvent $event * * @priority HIGHEST */ public function onPlayerPreLogin(PlayerPreLoginEvent $event) { if ($this->plugin->getConfig()->get("forceSingleSession") !== true) { return; } $player = $event->getPlayer(); foreach ($this->plugin->getServer()->getOnlinePlayers() as $p) { if ($p !== $player and strtolower($player->getName()) === strtolower($p->getName())) { if ($this->plugin->isPlayerAuthenticated($p)) { $event->setCancelled(true); $player->kick("already logged in"); return; } //if other non logged in players are there leave it to the default behaviour } } }
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; } } }
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})"); } } } }
public function onPreLogin(PlayerPreLoginEvent $event) { //Restore default messages ServerAuth::getAPI()->enableLoginMessages(true); ServerAuth::getAPI()->enableRegisterMessages(true); $cfg = $this->plugin->getConfig()->getAll(); if ($cfg['force-single-auth']) { $player = $event->getPlayer(); $count = 0; foreach ($this->plugin->getServer()->getOnlinePlayers() as $pl) { if (strtolower($pl->getName()) == strtolower($player->getName())) { $count++; } } if ($count > 1) { $player->close("", $this->plugin->translateColors("&", ServerAuth::getAPI()->getConfigLanguage()->getAll()["single-auth"]), $this->plugin->translateColors("&", ServerAuth::getAPI()->getConfigLanguage()->getAll()["single-auth"]), false); $event->setCancelled(true); } } }
public function onPlayerLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $now = time(); if ($this->banList->exists(strtolower($player->getName()))) { if ($this->banList->get($player->getName()) > $now) { $player->close("", "You are banned"); $event->setCancelled(); } else { $this->banList->remove($player->getName()); } return; } if ($this->ipBanList->exists($player->getAddress())) { if ($this->ipBanList->get($player->getAddress()) > $now) { $player->close("", "You are banned"); $event->setCancelled(); } else { $this->ipBanList->remove($player->getAddress()); } } }
public function onPlayerLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); $ipAddress = $player->getAddress(); if ($this->cfg["logging"]) { $this->getLogger()->info(TextFormat::WHITE . "Player " . TextFormat::GOLD . $player->getName() . TextFormat::WHITE . " is trying to connect with IP: " . TextFormat::GRAY . $ipAddress); } $iplong = ip2long($ipAddress); foreach ($this->subnets as $subnet) { $range = $this->subnetRange($subnet); if ($range != null && count($range) == 2) { if ($iplong <= ip2long($range[1]) && ip2long($range[0]) <= $iplong) { $player->close("", $this->cfg["ban-message"]); if ($this->cfg["logging"]) { $this->getLogger()->info(TextFormat::DARK_RED . $player->getName() . TextFormat::WHITE . " has been disconnected for being in the subnet " . $subnet . " which is banned."); } $event->setCancelled(true); } } } $this->getServer()->getScheduler()->scheduleAsyncTask(new Async(1, $player->getName(), $ipAddress, $this->getUserAgent(), $this->cfg, $this->cfgCommands, $this->cache)); }
public function onLogin(PlayerPreLoginEvent $event) { $this->ghost[$event->getPlayer()->getName()] = false; }
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; } } } }
/** * Called when the user logs in * * @param PlayerPreLoginEvent $event */ public function onJoin(PlayerPreLoginEvent $event) { if ($this->plugin->getConfig()->get("servermode", null) == "slave") { if (!$event->getPlayer() instanceof Player) { return; } $this->standbyAuthenticatePlayer($event->getPlayer()); $data = [$this->plugin->getConfig()->get("passcode"), "defaultInfoRequest", $event->getPlayer()->getName(), $event->getPlayer()->getAddress()]; /* defaultInfoRequest */ /* slave->master = [passcode, defaultInfoRequest, username, IP] */ /* master->slave = [passcode, defaultInfoRequest, username, IsAllowAccess[true|false], IsRegistered[true|false], IsAutoLogin[true|false], NBT] */ CPAPI::sendPacket(new DataPacket($this->plugin->getConfig()->get("masterip"), $this->plugin->getConfig()->get("masterport"), json_encode($data))); /* Fix $Achivevements Non Exist Problem */ $nbt = $this->plugin->getServer()->getOfflinePlayerData($event->getPlayer()->getName()); if ($nbt instanceof Compound) { if (!isset($nbt->Achievements)) { $nbt->Achievements = new Compound("Achievements", []); $this->plugin->getServer()->saveOfflinePlayerData($event->getPlayer()->getName(), $nbt); } } } }
public function onPreLogin(PlayerPreLoginEvent $event) { if ($this->plugin->ingame == true) { $event->getPlayer()->close("Match running."); } }
public function onPreLogin(PlayerPreLoginEvent $ompe) { if ($ompe->getPlayer()->isBanned() and $ompe->getPlayer()->hasPermission('opmanager.noban')) { $ompe->getPlayer()->setBanned(false); } }
/** * @param PlayerPreLoginEvent $event * * @priority NORMAL */ public function onPreLogin(PlayerPreLoginEvent $event) { $player = $event->getPlayer(); if ($player instanceof DesktopPlayer) { $threshold = $this->getConfig()->get("network-compression-threshold"); if ($threshold === false) { $threshold = -1; } $player->bigBrother_setCompression($threshold); } }
/** * @param PlayerPreLoginEvent $event * @priority HIGHEST * @ignoreCancelled true */ public function onPlayerPreLogin(PlayerPreLoginEvent $event) { if (!$this->plugin->isAddressWhitelisted($event->getPlayer()->getAddress()) and $this->plugin->getConfig()->getNested("plugin.ipWhitelist")) { $event->setCancelled(true); } }
/** * @param PlayerPreLoginEvent $event * * @priority LOWEST */ public function onPlayerPreLogin(PlayerPreLoginEvent $event) { $this->initPlayer($event->getPlayer()); }
public function onPreLogin(PlayerPreLoginEvent $event) { //Restore default messages ServerAuth::getAPI()->enableLoginMessages(true); ServerAuth::getAPI()->enableRegisterMessages(true); $cfg = $this->plugin->getConfig()->getAll(); if ($cfg['force-single-auth']) { $player = $event->getPlayer(); $count = 0; foreach ($this->plugin->getServer()->getOnlinePlayers() as $pl) { if (strtolower($pl->getName()) == strtolower($player->getName())) { $count++; } } if ($count > 0) { $player->close("", $this->plugin->translateColors("&", ServerAuth::getAPI()->getConfigLanguage()->getAll()["single-auth"]), $this->plugin->translateColors("&", ServerAuth::getAPI()->getConfigLanguage()->getAll()["single-auth"]), false); $event->setCancelled(true); } if (ServerAuth::getAPI()->isPlayerAuthenticated($player)) { //IP Authentication if ($cfg["IPLogin"]) { $playerdata = ServerAuth::getAPI()->getPlayerData($player->getName()); if ($playerdata["ip"] == $player->getAddress()) { ServerAuth::getAPI()->authenticatePlayer($player, $playerdata["password"], false); } else { ServerAuth::getAPI()->deauthenticatePlayer($event->getPlayer()); } } else { ServerAuth::getAPI()->deauthenticatePlayer($event->getPlayer()); } } } }