diff --git a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java index fef123bbb..fa783ec3c 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMePlayerListener.java @@ -204,6 +204,20 @@ public class AuthMePlayerListener implements Listener { return; } + if (Settings.enableProtection) { + String countryCode = GeoLiteAPI.getCountryCode(event.getAddress().getHostAddress()); + if (!Settings.countriesBlacklist.isEmpty() && Settings.countriesBlacklist.contains(countryCode)) { + event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + event.setKickMessage(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); + return; + } + if (!Settings.countries.isEmpty() && !Settings.countries.contains(countryCode)) { + event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + event.setKickMessage(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); + return; + } + } + final String name = event.getName().toLowerCase(); final Player player = Utils.getPlayer(name); if (player == null) { @@ -263,24 +277,6 @@ public class AuthMePlayerListener implements Listener { final String name = player.getName().toLowerCase(); boolean isAuthAvailable = plugin.database.isAuthAvailable(name); - if (!Settings.countriesBlacklist.isEmpty() && !isAuthAvailable && !permsMan.hasPermission(player, UserPermission.BYPASS_ANTIBOT)) { - String code = GeoLiteAPI.getCountryCode(event.getAddress().getHostAddress()); - if (Settings.countriesBlacklist.contains(code)) { - event.setKickMessage(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); - event.setResult(PlayerLoginEvent.Result.KICK_OTHER); - return; - } - } - - if (Settings.enableProtection && !Settings.countries.isEmpty() && !isAuthAvailable && !permsMan.hasPermission(player, UserPermission.BYPASS_ANTIBOT)) { - String code = GeoLiteAPI.getCountryCode(event.getAddress().getHostAddress()); - if (!Settings.countries.contains(code)) { - event.setKickMessage(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); - event.setResult(PlayerLoginEvent.Result.KICK_OTHER); - return; - } - } - // TODO: Add message to the messages file!!! if (Settings.isKickNonRegisteredEnabled && !isAuthAvailable) { if (Settings.antiBotInAction) { diff --git a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java index 3b5a3c803..2866fd755 100644 --- a/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java +++ b/src/main/java/fr/xephi/authme/listener/AuthMeServerListener.java @@ -43,19 +43,13 @@ public class AuthMeServerListener implements Listener { } String countryCode = GeoLiteAPI.getCountryCode(event.getAddress().getHostAddress()); - if (!Settings.countriesBlacklist.isEmpty()) { - if (Settings.countriesBlacklist.contains(countryCode)) { - event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); - return; - } + if (!Settings.countriesBlacklist.isEmpty() && Settings.countriesBlacklist.contains(countryCode)) { + event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); + return; } - if (!Settings.countries.isEmpty()) { - if (Settings.countries.contains(countryCode)) { - event.setMotd(plugin.getServer().getMotd()); - } else { - event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); - } + if (!Settings.countries.isEmpty() && !Settings.countries.contains(countryCode)) { + event.setMotd(m.retrieveSingle(MessageKey.COUNTRY_BANNED_ERROR)); } }