From 55c7c4f9e179e6fad321f98ec572174d5a3c2a23 Mon Sep 17 00:00:00 2001 From: Xephi Date: Wed, 13 Aug 2014 12:48:50 +0200 Subject: [PATCH] Add email Whitelist (override Blacklist if no empty) --- .../fr/xephi/authme/settings/Settings.java | 32 +++++++++++++++---- src/main/resources/config.yml | 4 ++- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index d17b8d98b..9c2632852 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -49,6 +49,7 @@ public final class Settings extends YamlConfiguration { public static List welcomeMsg = null; public static List unsafePasswords; public static List emailBlacklist = null; + public static List emailWhitelist = null; public static Boolean isPermissionCheckEnabled, isRegistrationEnabled, isForcedRegistrationEnabled, isTeleportToSpawnEnabled, @@ -378,6 +379,7 @@ public final class Settings extends YamlConfiguration { applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false); emailBlacklist = configFile.getStringList("Email.emailBlacklisted"); + emailWhitelist = configFile.getStringList("Email.emailWhitelisted"); // Load the welcome message getWelcomeMessage(plugin); @@ -653,6 +655,7 @@ public final class Settings extends YamlConfiguration { applyBlindEffect = configFile.getBoolean("settings.applyBlindEffect", false); emailBlacklist = configFile.getStringList("Email.emailBlacklisted"); + emailWhitelist = configFile.getStringList("Email.emailWhitelisted"); // Reload the welcome message getWelcomeMessage(AuthMe.getInstance()); @@ -789,8 +792,12 @@ public final class Settings extends YamlConfiguration { set("Email.emailBlacklisted", new ArrayList()); changes = true; } - if (contains("Performances.useMultiThreading")) set( - "Performances.useMultiThreading", null); + if (contains("Performances.useMultiThreading")) + set("Performances.useMultiThreading", null); + if (!contains("Email.emailWhitelisted")) { + set("Email.emailWhitelisted", new ArrayList()); + changes = true; + } if (changes) { plugin.getLogger() @@ -1008,10 +1015,23 @@ public final class Settings extends YamlConfiguration { if (!email.contains("@")) correct = false; if (!email.equalsIgnoreCase("your@email.com")) correct = false; String emailDomain = email.split("@")[1]; - for (String domain : emailBlacklist) { - if (domain.equalsIgnoreCase(emailDomain)) { - correct = false; - break; + if (emailWhitelist != null && !emailWhitelist.isEmpty()) { + for (String domain : emailWhitelist) { + if (!domain.equalsIgnoreCase(emailDomain)) { + correct = false; + } else { + correct = true; + break; + } + } + return correct; + } + if (emailBlacklist != null && !emailBlacklist.isEmpty()) { + for (String domain : emailBlacklist) { + if (domain.equalsIgnoreCase(emailDomain)) { + correct = false; + break; + } } } return correct; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 80481c1ea..0c322d60a 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -359,9 +359,11 @@ Email: recallPlayers: false # Delay in minute for the recall scheduler delayRecall: 5 - # Blacklist these domain for emails + # Blacklist these domains for emails emailBlacklisted: - 10minutemail.com + # WhiteList only these domains for emails + emailWhitelisted: [] Hooks: # Do we need to hook with multiverse for spawn checking? multiverse: true