diff options
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java | 386 |
1 files changed, 171 insertions, 215 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 1c4011ff8..df46b70d0 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -12,7 +12,6 @@ import org.anjocaido.groupmanager.data.Variables; import org.anjocaido.groupmanager.data.User; import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder; -import org.anjocaido.groupmanager.dataholder.WorldDataHolder; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -29,7 +28,6 @@ import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder; import org.anjocaido.groupmanager.events.GMSystemEvent; import org.anjocaido.groupmanager.events.GMWorldListener; import org.anjocaido.groupmanager.events.GroupManagerEventHandler; -import org.anjocaido.groupmanager.events.GMGroupEvent.Action; import org.anjocaido.groupmanager.utils.GMLoggerHandler; import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; @@ -40,20 +38,17 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.Event; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; -@SuppressWarnings("unused") /** * - * @author gabrielcouto + * @author gabrielcouto, ElgarL */ public class GroupManager extends JavaPlugin { - // private File configFile; private File backupFolder; private Runnable commiter; private ScheduledThreadPoolExecutor scheduler; @@ -61,13 +56,14 @@ public class GroupManager extends JavaPlugin { private Map<CommandSender, String> selectedWorlds = new HashMap<CommandSender, String>(); private WorldsHolder worldsHolder; private boolean validateOnlinePlayer = true; - + private String lastError = ""; - + /** * @return the validateOnlinePlayer */ public boolean isValidateOnlinePlayer() { + return validateOnlinePlayer; } @@ -75,10 +71,10 @@ public class GroupManager extends JavaPlugin { * @param validateOnlinePlayer the validateOnlinePlayer to set */ public void setValidateOnlinePlayer(boolean validateOnlinePlayer) { + this.validateOnlinePlayer = validateOnlinePlayer; } - private boolean isReady = false; private static boolean isLoaded = false; protected GMConfiguration config; @@ -90,14 +86,15 @@ public class GroupManager extends JavaPlugin { public static final Logger logger = Logger.getLogger(GroupManager.class.getName()); // PERMISSIONS FOR COMMAND BEING LOADED - OverloadedWorldHolder dataHolder = null; - AnjoPermissionsHandler permissionHandler = null; + private OverloadedWorldHolder dataHolder = null; + private AnjoPermissionsHandler permissionHandler = null; @Override public void onDisable() { + setLoaded(false); - - // Un-register this service. + + // Unregister this service. this.getServer().getServicesManager().unregister(this.worldsHolder); disableScheduler(); // Shutdown before we save, so it doesn't interfere. @@ -109,32 +106,32 @@ public class GroupManager extends JavaPlugin { } } - WorldEvents = null; - + if (WorldEvents != null) + WorldEvents = null; + // Remove all attachments before clearing if (BukkitPermissions != null) { BukkitPermissions.removeAllAttachments(); BukkitPermissions = null; } - // EXAMPLE: Custom code, here we just output some info so we can check that - // all is well + // EXAMPLE: Custom code, here we just output some info so we can check that all is well PluginDescriptionFile pdfFile = this.getDescription(); System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is disabled!"); GroupManager.logger.removeHandler(ch); } - //@Override + @Override public void onEnable() { - + try { lastError = ""; - + GroupManager.logger.setUseParentHandlers(false); ch = new GMLoggerHandler(); GroupManager.logger.addHandler(ch); logger.setLevel(Level.ALL); - + // Create the backup folder, if it doesn't exist. prepareFileFields(); // Load the config.yml @@ -142,41 +139,39 @@ public class GroupManager extends JavaPlugin { // Load the global groups globalGroups = new GlobalGroups(this); worldsHolder = new WorldsHolder(this); - - + PluginDescriptionFile pdfFile = this.getDescription(); if (worldsHolder == null) { GroupManager.logger.severe("Can't enable " + pdfFile.getName() + " version " + pdfFile.getVersion() + ", bad loading!"); this.getServer().getPluginManager().disablePlugin(this); throw new IllegalStateException("An error ocurred while loading GroupManager"); } - + // Set a few defaults (reloads) setLoaded(false); - - // Initialize the world listener and bukkit permissions to handle - // events. + + // Initialize the world listener and bukkit permissions to handle events. WorldEvents = new GMWorldListener(this); BukkitPermissions = new BukkitPermissions(this); - + enableScheduler(); - + /* - * Schedule a Bukiit Permissions update for 1 tick later. All plugins - * will be loaded by then + * Schedule a Bukkit Permissions update for 1 tick later. + * All plugins will be loaded by then */ - + if (getServer().getScheduler().scheduleSyncDelayedTask(this, new BukkitPermsUpdateTask(), 1) == -1) { GroupManager.logger.severe("Could not schedule superperms Update."); setLoaded(true); } - + System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!"); - + // Register as a service this.getServer().getServicesManager().register(WorldsHolder.class, this.worldsHolder, this, ServicePriority.Lowest); } catch (Exception ex) { - + /* * Store the error and write to the log. */ @@ -185,41 +180,41 @@ public class GroupManager extends JavaPlugin { /* * Throw an error so Bukkit knows about it. */ - throw new IllegalArgumentException(ex.getMessage(),ex); + throw new IllegalArgumentException(ex.getMessage(), ex); } } - + /** * Write an error.log * * @param ex */ private void saveErrorLog(Exception ex) { - + if (!getDataFolder().exists()) { - getDataFolder().mkdirs(); - } - + getDataFolder().mkdirs(); + } + lastError = ex.getMessage(); - + GroupManager.logger.severe("==================================================="); GroupManager.logger.severe("= ERROR REPORT START ="); GroupManager.logger.severe("==================================================="); GroupManager.logger.severe("=== PLEASE COPY AND PASTE THE ERROR.LOG FROM THE =="); GroupManager.logger.severe("= GROUPMANAGER FOLDER TO AN ESSENTIALS DEVELOPER ="); GroupManager.logger.severe("==================================================="); - GroupManager.logger.severe(lastError); + GroupManager.logger.severe(lastError); GroupManager.logger.severe("==================================================="); GroupManager.logger.severe("= ERROR REPORT ENDED ="); GroupManager.logger.severe("==================================================="); // Append this error to the error log. - try { - String error = "=============================== GM ERROR LOG ===============================\n\n"; - error += Tasks.getStackTraceAsString(ex); - error += "\n============================================================================\n"; - + try { + String error = "=============================== GM ERROR LOG ===============================\n\n"; + error += Tasks.getStackTraceAsString(ex); + error += "\n============================================================================\n"; + Tasks.appendStringToFile(error, (getDataFolder() + System.getProperty("file.separator") + "ERROR.LOG")); } catch (IOException e) { // Failed to write file. @@ -229,19 +224,22 @@ public class GroupManager extends JavaPlugin { } public static boolean isLoaded() { + return isLoaded; } public static void setLoaded(boolean isLoaded) { + GroupManager.isLoaded = isLoaded; } public InputStream getResourceAsStream(String fileName) { + return this.getClassLoader().getResourceAsStream(fileName); } private void prepareFileFields() { - // configFile = new File(this.getDataFolder(), "config.yml"); + backupFolder = new File(this.getDataFolder(), "backup"); if (!backupFolder.exists()) { getBackupFolder().mkdirs(); @@ -249,16 +247,19 @@ public class GroupManager extends JavaPlugin { } private void prepareConfig() { + config = new GMConfiguration(this); } public void enableScheduler() { + if (worldsHolder != null) { disableScheduler(); commiter = new Runnable() { @Override public void run() { + try { worldsHolder.saveChanges(false); GroupManager.logger.log(Level.INFO, " Data files refreshed."); @@ -268,18 +269,19 @@ public class GroupManager extends JavaPlugin { } }; scheduler = new ScheduledThreadPoolExecutor(1); - long minutes = (long)getGMConfig().getSaveInterval(); + long minutes = (long) getGMConfig().getSaveInterval(); if (minutes > 0) { - scheduler.scheduleAtFixedRate(commiter, minutes, minutes, TimeUnit.MINUTES); + scheduler.scheduleAtFixedRate(commiter, minutes, minutes, TimeUnit.MINUTES); GroupManager.logger.info("Scheduled Data Saving is set for every " + minutes + " minutes!"); } else GroupManager.logger.info("Scheduled Data Saving is Disabled!"); - + GroupManager.logger.info("Backups will be retained for " + getGMConfig().getBackupDuration() + " hours!"); } } public void disableScheduler() { + if (scheduler != null) { try { scheduler.setContinueExistingPeriodicTasksAfterShutdownPolicy(false); @@ -292,57 +294,9 @@ public class GroupManager extends JavaPlugin { } } - /** - * Use the WorldsHolder saveChanges directly instead Saves the data on file - */ - @Deprecated - public void commit() { - if (worldsHolder != null) { - worldsHolder.saveChanges(); - } - } - - /** - * Use worlds holder to reload a specific world Reloads the data - */ - @Deprecated - public void reload() { - worldsHolder.reloadAll(); - } - public WorldsHolder getWorldsHolder() { - return worldsHolder; - } - - /** - * The handler in the interface created by AnjoCaido - * - * @return AnjoPermissionsHandler - */ - @Deprecated - public AnjoPermissionsHandler getPermissionHandler() { - return worldsHolder.getDefaultWorld().getPermissionsHandler(); - } - - /** - * A simple interface, for ones that don't want to mess with overloading. - * Yet it is affected by overloading. But seamless. - * - * @return the dataholder with all information - */ - @Deprecated - public WorldDataHolder getData() { - return worldsHolder.getDefaultWorld(); - } - /** - * Use this if you want to play with overloading. - * - * @return a dataholder with overloading interface - */ - @Deprecated - public OverloadedWorldHolder getOverloadedClassData() { - return worldsHolder.getDefaultWorld(); + return worldsHolder; } /** @@ -352,26 +306,25 @@ public class GroupManager extends JavaPlugin { * @param cmd * @param args */ - @SuppressWarnings({ "deprecation" }) @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { + boolean playerCanDo = false; boolean isConsole = false; Player senderPlayer = null, targetPlayer = null; Group senderGroup = null; User senderUser = null; boolean isOpOverride = config.isOpOverride(); - // DETERMINING PLAYER INFORMATION if (sender instanceof Player) { senderPlayer = (Player) sender; - + if (!lastError.isEmpty() && !commandLabel.equalsIgnoreCase("manload")) { sender.sendMessage(ChatColor.RED + "All commands are locked due to an error. Check the log and then try a '/manload'.)"); return true; } - + senderUser = worldsHolder.getWorldData(senderPlayer).getUser(senderPlayer.getName()); senderGroup = senderUser.getGroup(); isOpOverride = (isOpOverride && (senderPlayer.isOp() || worldsHolder.getWorldPermissions(senderPlayer).has(senderPlayer, "groupmanager.op"))); @@ -381,12 +334,12 @@ public class GroupManager extends JavaPlugin { playerCanDo = true; } } else if (sender instanceof ConsoleCommandSender) { - + if (!lastError.isEmpty() && !commandLabel.equalsIgnoreCase("manload")) { sender.sendMessage(ChatColor.RED + "All commands are locked due to an error. Check the log and then try a '/manload'.)"); return true; } - + isConsole = true; } @@ -451,29 +404,29 @@ public class GroupManager extends JavaPlugin { if (isConsole || playerCanDo) { switch (execCmd) { case manuadd: - + // Validating arguments if ((args.length != 2) && (args.length != 3)) { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group> | optional [world])"); return false; } - + // Select the relevant world (if specified) if (args.length == 3) { dataHolder = worldsHolder.getWorldData(args[2]); permissionHandler = dataHolder.getPermissionsHandler(); } - + // Validating state of sender if (dataHolder == null || permissionHandler == null) { if (!setDefaultWorldHandler(sender)) return true; } - + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -509,7 +462,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "' in world '" + dataHolder.getName() + "'."); return true; - + case manudel: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -522,9 +475,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -545,7 +498,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updatePermissions(targetPlayer); return true; - + case manuaddsub: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -561,9 +514,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -586,7 +539,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "The subgroup '" + auxGroup.getName() + "' is already available to '" + auxUser.getName() + "'."); return true; - + case manudelsub: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -599,9 +552,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -622,12 +575,12 @@ public class GroupManager extends JavaPlugin { auxUser.removeSubGroup(auxGroup); sender.sendMessage(ChatColor.YELLOW + "You removed subgroup '" + auxGroup.getName() + "' from player '" + auxUser.getName() + "' list."); - //targetPlayer = this.getServer().getPlayer(auxUser.getName()); - //if (targetPlayer != null) - // BukkitPermissions.updatePermissions(targetPlayer); + // targetPlayer = this.getServer().getPlayer(auxUser.getName()); + // if (targetPlayer != null) + // BukkitPermissions.updatePermissions(targetPlayer); return true; - + case mangadd: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -649,7 +602,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "You created a group named: " + auxGroup.getName()); return true; - + case mangdel: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -673,7 +626,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); return true; - + case manuaddp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -686,9 +639,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -738,7 +691,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updatePermissions(targetPlayer); return true; - + case manudelp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -751,9 +704,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -789,7 +742,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updatePermissions(targetPlayer); return true; - + case manulistp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -801,11 +754,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> (+))"); return false; } - + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -854,7 +807,7 @@ public class GroupManager extends JavaPlugin { } return true; - + case manucheckp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -868,9 +821,9 @@ public class GroupManager extends JavaPlugin { } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -881,9 +834,9 @@ public class GroupManager extends JavaPlugin { permissionResult = permissionHandler.checkFullGMPermission(auxUser, args[1], false); if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) { - //No permissions found in GM so fall through and check Bukkit. + // No permissions found in GM so fall through and check Bukkit. sender.sendMessage(ChatColor.RED + "The player doesn't have access to that permission"); - + } else { // This permission was found in groupmanager. if (permissionResult.owner instanceof User) { @@ -909,7 +862,7 @@ public class GroupManager extends JavaPlugin { } return true; - + case mangaddp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -964,7 +917,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); return true; - + case mangdelp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1005,7 +958,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); return true; - + case manglistp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1054,7 +1007,7 @@ public class GroupManager extends JavaPlugin { } return true; - + case mangcheckp: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1078,8 +1031,7 @@ public class GroupManager extends JavaPlugin { return false; } // Seems OK - // auxString = - // permissionHandler.checkUserOnlyPermission(auxUser, args[1]); + // auxString = permissionHandler.checkUserOnlyPermission(auxUser, args[1]); if (permissionResult.owner instanceof Group) { if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) { sender.sendMessage(ChatColor.RED + "The group inherits the a negation permission from group: " + permissionResult.owner.getName()); @@ -1090,7 +1042,7 @@ public class GroupManager extends JavaPlugin { } return true; - + case mangaddi: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1116,9 +1068,9 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance."); return false; } - + // Validating permission - if (permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) { + if (permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) { sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " already inherits " + auxGroup2.getName() + " (might not be directly)"); return false; } @@ -1129,7 +1081,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); return true; - + case mangdeli: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1155,9 +1107,9 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance."); return false; } - + // Validating permission - if (!permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) { + if (!permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) { sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + "."); return false; } @@ -1172,7 +1124,7 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); return true; - + case manuaddv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1185,9 +1137,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -1204,9 +1156,9 @@ public class GroupManager extends JavaPlugin { } auxUser.getVariables().addVar(args[1], Variables.parseVariableValue(auxString)); sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + ":'" + ChatColor.GREEN + auxString + ChatColor.YELLOW + "' added to the user " + auxUser.getName()); - + return true; - + case manudelv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1219,9 +1171,9 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } - + if (match != null) { auxUser = dataHolder.getUser(match.get(0)); } else { @@ -1234,9 +1186,9 @@ public class GroupManager extends JavaPlugin { // Seems OK auxUser.getVariables().removeVar(args[1]); sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + " removed from the user " + ChatColor.GREEN + auxUser.getName()); - + return true; - + case manulistv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1249,7 +1201,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1269,9 +1221,9 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "Variables of user " + auxUser.getName() + ": "); sender.sendMessage(auxString + "."); sender.sendMessage(ChatColor.YELLOW + "Plus all variables from group: " + auxUser.getGroupName()); - + return true; - + case manucheckv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1284,7 +1236,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1300,7 +1252,8 @@ public class GroupManager extends JavaPlugin { if (!auxUser.isSubGroupsEmpty() && auxGroup2 == null) for (Group subGroup : auxUser.subGroupListCopy()) { auxGroup2 = permissionHandler.nextGroupWithVariable(subGroup, args[1]); - if (auxGroup2 != null) continue; + if (auxGroup2 != null) + continue; } if (auxGroup2 == null) { sender.sendMessage(ChatColor.RED + "The user doesn't have access to that variable!"); @@ -1316,9 +1269,9 @@ public class GroupManager extends JavaPlugin { if (!auxGroup.equals(auxGroup2)) { sender.sendMessage(ChatColor.YELLOW + "And the value was inherited from group: " + ChatColor.GREEN + auxGroup2.getName()); } - + return true; - + case mangaddv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1352,7 +1305,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + ":'" + ChatColor.GREEN + auxString + ChatColor.YELLOW + "' added to the group " + auxGroup.getName()); return true; - + case mangdelv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1382,7 +1335,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + " removed from the group " + ChatColor.GREEN + auxGroup.getName()); return true; - + case manglistv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1423,9 +1376,9 @@ public class GroupManager extends JavaPlugin { auxString = auxString.substring(0, auxString.lastIndexOf(",")); sender.sendMessage(ChatColor.YELLOW + "Plus all variables from groups: " + auxString); } - + return true; - + case mangcheckv: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1447,7 +1400,7 @@ public class GroupManager extends JavaPlugin { return false; } // Validating permission - auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1], null); + auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1]); if (auxGroup2 == null) { sender.sendMessage(ChatColor.RED + "The group doesn't have access to that variable!"); } @@ -1456,9 +1409,9 @@ public class GroupManager extends JavaPlugin { if (!auxGroup.equals(auxGroup2)) { sender.sendMessage(ChatColor.YELLOW + "And the value was inherited from group: " + ChatColor.GREEN + auxGroup2.getName()); } - + return true; - + case manwhois: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1471,7 +1424,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1490,7 +1443,7 @@ public class GroupManager extends JavaPlugin { auxString = auxString.substring(0, auxString.lastIndexOf(",")); sender.sendMessage(ChatColor.YELLOW + "subgroups: " + auxString); } - + sender.sendMessage(ChatColor.YELLOW + "Overloaded: " + ChatColor.GREEN + dataHolder.isOverloaded(auxUser.getName())); auxGroup = dataHolder.surpassOverload(auxUser.getName()).getGroup(); if (!auxGroup.equals(auxUser.getGroup())) { @@ -1498,7 +1451,7 @@ public class GroupManager extends JavaPlugin { } // victim.permissions.add(args[1]); return true; - + case tempadd: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1511,7 +1464,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1532,7 +1485,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "Player overloaded!"); return true; - + case tempdel: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1545,7 +1498,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1568,7 +1521,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "You removed that player's overload. He's back to normal!"); return true; - + case templist: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1597,9 +1550,9 @@ public class GroupManager extends JavaPlugin { } overloadedUsers.get(dataHolder.getName().toLowerCase()).removeAll(removeList); sender.sendMessage(ChatColor.YELLOW + " " + count + " Users in overload mode: " + ChatColor.WHITE + auxString); - + return true; - + case tempdelall: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1626,14 +1579,14 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + " " + count + "All users in overload mode are now normal again."); return true; - + case mansave: - + boolean forced = false; - + if ((args.length == 1) && (args[0].equalsIgnoreCase("force"))) forced = true; - + try { worldsHolder.saveChanges(forced); sender.sendMessage(ChatColor.YELLOW + " All changes were saved."); @@ -1643,17 +1596,17 @@ public class GroupManager extends JavaPlugin { return true; case manload: - + /** * Attempt to reload a specific world */ if (args.length > 0) { - + if (!lastError.isEmpty()) { sender.sendMessage(ChatColor.RED + "All commands are locked due to an error. Check the log and then try a '/manload'.)"); return true; } - + auxString = ""; for (int i = 0; i < args.length; i++) { auxString += args[i]; @@ -1666,7 +1619,7 @@ public class GroupManager extends JavaPlugin { globalGroups.load(); worldsHolder.loadWorld(auxString); - + sender.sendMessage("The request to reload world '" + auxString + "' was attempted."); isLoaded = true; @@ -1674,29 +1627,29 @@ public class GroupManager extends JavaPlugin { BukkitPermissions.updateAllPlayers(); } else { - + /** * Reload all settings and data as no world was specified. */ - + /* * Reset the last error as we are attempting a fresh load. */ lastError = ""; onDisable(); onEnable(); - + sender.sendMessage("All settings and worlds were reloaded!"); } - + /** * Fire an event as none will have been triggered in the reload. */ if (GroupManager.isLoaded()) - GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED); + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED); return true; - + case listgroups: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1715,9 +1668,9 @@ public class GroupManager extends JavaPlugin { auxString = auxString.substring(0, auxString.lastIndexOf(",")); } sender.sendMessage(ChatColor.YELLOW + " Groups Available: " + ChatColor.WHITE + auxString); - + return true; - + case manpromote: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1730,7 +1683,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1773,7 +1726,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + "."); return true; - + case mandemote: // Validating state of sender if (dataHolder == null || permissionHandler == null) { @@ -1786,7 +1739,7 @@ public class GroupManager extends JavaPlugin { return false; } if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { - return false; + return false; } if (match != null) { auxUser = dataHolder.getUser(match.get(0)); @@ -1829,7 +1782,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + "."); return true; - + case mantogglevalidate: validateOnlinePlayer = !validateOnlinePlayer; sender.sendMessage(ChatColor.YELLOW + "Validade if player is online, now set to: " + Boolean.toString(validateOnlinePlayer)); @@ -1860,9 +1813,9 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.YELLOW + "Your world now uses permissions of world name: '" + dataHolder.getName() + "' "); } } - + return true; - + case manselect: if (args.length < 1) { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <world>)"); @@ -1893,9 +1846,9 @@ public class GroupManager extends JavaPlugin { permissionHandler = dataHolder.getPermissionsHandler(); selectedWorlds.put(sender, dataHolder.getName()); sender.sendMessage(ChatColor.YELLOW + "You have selected world '" + dataHolder.getName() + "'."); - + return true; - + case manclear: if (args.length != 0) { sender.sendMessage(ChatColor.RED + "Review your arguments count!"); @@ -1903,9 +1856,9 @@ public class GroupManager extends JavaPlugin { } selectedWorlds.remove(sender); sender.sendMessage(ChatColor.YELLOW + "You have removed your world selection. Working with current world(if possible)."); - + return true; - + default: break; } @@ -1955,7 +1908,7 @@ public class GroupManager extends JavaPlugin { } } - + /** * Load a List of players matching the name given. If none online, check * Offline. @@ -1974,7 +1927,7 @@ public class GroupManager extends JavaPlugin { if (Arrays.asList(this.getServer().getOfflinePlayers()).contains(Bukkit.getOfflinePlayer(playerName))) { match.add(playerName); } else { - //look for partial matches + // look for partial matches for (OfflinePlayer offline : this.getServer().getOfflinePlayers()) { if (offline.getName().toLowerCase().startsWith(playerName.toLowerCase())) match.add(offline.getName()); @@ -1994,7 +1947,7 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Too many matches found! (" + match.toString() + ")"); return null; } - + return match; } @@ -2003,6 +1956,7 @@ public class GroupManager extends JavaPlugin { * @return the config */ public GMConfiguration getGMConfig() { + return config; } @@ -2010,10 +1964,12 @@ public class GroupManager extends JavaPlugin { * @return the backupFolder */ public File getBackupFolder() { + return backupFolder; } public static GlobalGroups getGlobalGroups() { + return globalGroups; } |