本文整理汇总了PHP中pocketmine\event\player\PlayerPreLoginEvent类的典型用法代码示例。如果您正苦于以下问题:PHP PlayerPreLoginEvent类的具体用法?PHP PlayerPreLoginEvent怎么用?PHP PlayerPreLoginEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PlayerPreLoginEvent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: onPlayerPreLogin
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;
}
}
示例2: onPreLogin
public function onPreLogin(PlayerPreLoginEvent $event)
{
if (isset($this->bans[$event->getPlayer()->getClientId()])) {
$event->setKickMessage("You are Banned!");
$event->setCancelled();
}
}
示例3: onPlayerPreLogin
/**
* @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);
}
}
}
示例4: onPreLogin
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());
}
}
}
}
示例5: onPlayerLogin
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));
}
示例6: onPlayerPreLogin
/**
* @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());
}
示例7: onPreLogin
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();
}
}
示例8: onLogin
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();
}
}
示例9: onPreLogin
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);
}
}
示例10: onPreLogin
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;
}
}
}
示例11: onPreLogin
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);
}
}
示例12: onPlayerLogin
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();
}
}
示例13: onPreLogin
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);
}
}
}
示例14: onPlayerPreLogin
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 . "!");
}
}
}
示例15: onPlayerPreLogin
/**
* @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
}
}
}