diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 3115eb35..5f910525 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -605,6 +605,8 @@ public class AuthMe extends JavaPlugin { dataManager.purgeLimitedCreative(cleared); if (Settings.purgeAntiXray) dataManager.purgeAntiXray(cleared); + if (Settings.purgePermissions) + dataManager.purgePermissions(cleared, permission); } public Location getSpawnLocation(Player player) { diff --git a/src/main/java/fr/xephi/authme/DataManager.java b/src/main/java/fr/xephi/authme/DataManager.java index 9d651c21..3ffa278d 100644 --- a/src/main/java/fr/xephi/authme/DataManager.java +++ b/src/main/java/fr/xephi/authme/DataManager.java @@ -3,8 +3,12 @@ package fr.xephi.authme; import java.io.File; import java.util.List; +import net.milkbowl.vault.Vault; +import net.milkbowl.vault.permission.Permission; + import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.settings.Settings; @@ -48,7 +52,8 @@ public class DataManager extends Thread { playerFile.delete(); i++; } - } catch (Exception e) {} + } catch (Exception e) { + } } ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " AntiXRayData Files"); } @@ -76,7 +81,8 @@ public class DataManager extends Thread { playerFile.delete(); i++; } - } catch (Exception e) {} + } catch (Exception e) { + } } ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " LimitedCreative Survival, Creative and Adventure files"); } @@ -94,7 +100,8 @@ public class DataManager extends Thread { playerFile.delete(); i++; } - } catch (Exception e) {} + } catch (Exception e) { + } } ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " .dat Files"); } @@ -108,8 +115,24 @@ public class DataManager extends Thread { playerFile.delete(); i++; } - } catch (Exception e) {} + } catch (Exception e) { + } } ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " EssentialsFiles"); } + + public void purgePermissions(List cleared, Permission permission) { + int i = 0; + for (String name : cleared) { + try { + OfflinePlayer p = Bukkit.getOfflinePlayer(name); + for (String group : permission.getPlayerGroups((Player) p)) { + permission.playerRemoveGroup(null, p, group); + } + i++; + } catch (Exception e) { + } + } + ConsoleLogger.info("AutoPurgeDatabase : Remove " + i + " Permissions"); + } } diff --git a/src/main/java/fr/xephi/authme/settings/Messages.java b/src/main/java/fr/xephi/authme/settings/Messages.java index a36b69cd..f6c11c2a 100644 --- a/src/main/java/fr/xephi/authme/settings/Messages.java +++ b/src/main/java/fr/xephi/authme/settings/Messages.java @@ -92,7 +92,7 @@ public class Messages extends CustomConfiguration { loc[0] = "Error with " + msg + " translation; Please contact the admin for verify or update translation files"; return (loc); } - int i = ((s.split("&n").length; + int i = s.split("&n").length; String[] loc = new String[i]; int a; for (a = 0; a < i; a++) { diff --git a/src/main/java/fr/xephi/authme/settings/Settings.java b/src/main/java/fr/xephi/authme/settings/Settings.java index e86c140f..f09b8663 100644 --- a/src/main/java/fr/xephi/authme/settings/Settings.java +++ b/src/main/java/fr/xephi/authme/settings/Settings.java @@ -239,8 +239,7 @@ public final class Settings extends YamlConfiguration { getWordPressPrefix = configFile.getString("ExternalBoardOptions.wordpressTablePrefix", "wp_"); purgeLimitedCreative = configFile.getBoolean("Purge.removeLimitedCreativesInventories", false); purgeAntiXray = configFile.getBoolean("Purge.removeAntiXRayFile", false); - // purgePermissions = configFile.getBoolean("Purge.removePermissions", - // false); + purgePermissions = configFile.getBoolean("Purge.removePermissions", false); enableProtection = configFile.getBoolean("Protection.enableProtection", false); countries = (List) configFile.getList("Protection.countries", new ArrayList()); enableAntiBot = configFile.getBoolean("Protection.enableAntiBot", false); @@ -407,8 +406,7 @@ public final class Settings extends YamlConfiguration { getWordPressPrefix = configFile.getString("ExternalBoardOptions.wordpressTablePrefix", "wp_"); purgeLimitedCreative = configFile.getBoolean("Purge.removeLimitedCreativesInventories", false); purgeAntiXray = configFile.getBoolean("Purge.removeAntiXRayFile", false); - // purgePermissions = configFile.getBoolean("Purge.removePermissions", - // false); + purgePermissions = configFile.getBoolean("Purge.removePermissions", false); enableProtection = configFile.getBoolean("Protection.enableProtection", false); countries = (List) configFile.getList("Protection.countries"); enableAntiBot = configFile.getBoolean("Protection.enableAntiBot", false); @@ -586,6 +584,11 @@ public final class Settings extends YamlConfiguration { set("Hooks.customAttributes", false); changes = true; } + if (!contains("Purge.removePermissions")) + { + set("Purge.removePermissions", false); + changes = true; + } if (changes) { plugin.getLogger().warning("Merge new Config Options - I'm not an error, please don't report me"); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 4b5846e3..d2147b1f 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -402,6 +402,8 @@ Purge: removeLimitedCreativesInventories: false # Do we need to remove the AntiXRayData/PlayerData/player file during purge process ? removeAntiXRayFile: false + # Do we need to remove permissions ? + removePermissions: false Protection: # Enable some servers protection ( country based login, antibot ) enableProtection: false