summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsGroupManager/src')
-rw-r--r--EssentialsGroupManager/src/Changelog.txt45
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java144
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java870
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java317
4 files changed, 584 insertions, 792 deletions
diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt
index 4a3c232be..6f1b2e3b4 100644
--- a/EssentialsGroupManager/src/Changelog.txt
+++ b/EssentialsGroupManager/src/Changelog.txt
@@ -34,10 +34,10 @@ v 1.3:
(for all worlds named in config.yml)
- Attempt to stop GM wiping groups/users yml's on a bad shut down.
- Added event handling to manage new world creation at runtime.
- - Added the ability to handle unknown worlds at server start.
- (GM will create the data files for any worlds it finds which are not in the config.yml)
+ - Added the ability to handle unknown worlds at server start.
+ (GM will create the data files for any worlds it finds which are not in the config.yml)
- Fix for Bukkit passing a null To location on a player Portaling
- - Fixed manudelsub not correctly selecting the group to remove.
+ - Fixed manudelsub not correctly selecting the group to remove.
- Added two new permission nodes - groupmanager.notify.self & groupmanager.notify.other
These allow players/admins to be notified when players are moved between groups.
v 1.4:
@@ -146,41 +146,4 @@ v 1.9:
- Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes.
- Prevent adding inheritances and info nodes to globalgroups. These are permissions collections, not player groups.
- Prevent promoting players to, and demoting to GlobalGroups.
- - Make 'manload' reload the config correctly.
- - Minor optimization when checking bukkit permissions.
- - Better reporting when a users.yml is failing to load.
- - Expanded '/manuadd'to accept an optional variable for the world (eg '/manuadd <player> <group> <world>').
- - Removed some debug spam.
- - Don't remove an attachment on a player leaving as Bukkit never forgets it. This fixes non mirrored permissions being messed up if a player relogs.
- - Treat all world names as lower case for file handling (please check in your worlds folder. You should have no folders with upper case letters from now).
- - Auto rename all case sensitive world folders to lower case (if possible).
- - Update GlobalGroups.yml for new/changed Towny permission nodes.
- - Stop attempting to push empty permissions when players edit the yml's incorrectly.
- - Catch errors caused by bad indentation in yml's.
- - Force remove player attachments on disconnect, and tidyup during player join in case of any errors. Fixes a bug of losing permissions.
- - Added a new permission node 'groupmanager.op'. This will cause players with this node to be treated as op's when
- using GroupManager commands (they will still require each commands permission node to use them).
- - Prevent Null entries in group inheritance from throwing errors.
-v 2.0:
- - Fix GM reporting of permission inheritance to retain the correct order. Lower inheritance groups can no longer negate a higher groups permissions.
- - Fix an error I caused trying to modify an unmodifiable list when parsing '*' permissions.
- - Don't throw errors when attempting to remove permission attachments (bukkit will have already removed it).
- - Remove all permission attachments when performing a manload or restart.
- - Expand 'manwhois' to also list a users subgroups.
- - Fix a concurrent modification error when removing all attachments.
- - Better handling of errors in user and group yml's.
- - Added missing confirmation message on '/manload'.
- - Stop the error on shutdown if GM failed to load at startup.
- - GroupManager will now generate it's own log (in the GM folder) to keep things tidy, but also to account of those players unable to find/access their server.log.
- - Startup errors will now lock out ALL commands other than '/manload'
- - Fix 'manuadd' to use the default or selected world (via 'manselect'), if the world is not specified in the command.
- - Expand GlobalGroups.yml and groups.yml to cover the VanishNoPacket plugin. Demonstrating how to negate and add nodes when using the '*' permission with inheritance.
- - Fix silly nested throw/catch statements. Errors are now correctly generated when reading yml's.
- - Unregister the worldsHolder as a service on a reload/shutdown instead of the whole plugin.
- - Update all code formatting to use tabs for indentation.
- - Stop using our own deprecated methods as we tell others to do.
- - Finally remove all deprecated methods.
- - Re-initialize the WorldsHolder on a reload, as un-registering and re-registering a new holder means all plugins have to check for the new service on every quiery.
- - Prevent null perms getting past the GlobalGroups loader.
- - Fix forgetting sub groups on a manload.
- - Allow 'manucheckp' to notify when superperms reports false but it is really negated. \ No newline at end of file
+ - Make 'manload' reload the config correctly. \ No newline at end of file
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
index 0832000f2..98ff075dd 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
@@ -13,89 +13,81 @@ import org.anjocaido.groupmanager.utils.Tasks;
import org.bukkit.configuration.file.YamlConfiguration;
/**
- *
+ *
* @author gabrielcouto
*/
public class GMConfiguration {
- private GroupManager plugin;
- private File configFile;
- private YamlConfiguration GMconfig;
-
- public GMConfiguration(GroupManager plugin) {
-
- this.plugin = plugin;
- load();
- }
-
- public void load() {
-
- if (!plugin.getDataFolder().exists()) {
- plugin.getDataFolder().mkdirs();
- }
- configFile = new File(plugin.getDataFolder(), "config.yml");
-
- if (!configFile.exists()) {
- try {
- Tasks.copy(plugin.getResourceAsStream("config.yml"), configFile);
- } catch (IOException ex) {
- GroupManager.logger.log(Level.SEVERE, null, ex);
- }
- }
-
- GMconfig = new YamlConfiguration();
-
- try {
- GMconfig.load(configFile);
- } catch (Exception ex) {
- throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + configFile.getPath(), ex);
- }
-
- // Setup defaults
- adjustLoggerLevel();
- plugin.setValidateOnlinePlayer(isToggleValidate());
- }
-
- public boolean isOpOverride() {
-
- return GMconfig.getBoolean("settings.config.opOverrides", true);
- }
-
- public boolean isToggleValidate() {
-
- return GMconfig.getBoolean("settings.config.validate_toggle", true);
- }
-
- public Map<String, Object> getMirrorsMap() {
-
- // Try to fetch the old mirror path first
+ private GroupManager plugin;
+ private File configFile;
+ private YamlConfiguration GMconfig;
+
+ public GMConfiguration(GroupManager plugin) {
+ this.plugin = plugin;
+ load();
+ }
+
+ public void load() {
+ if (!plugin.getDataFolder().exists()) {
+ plugin.getDataFolder().mkdirs();
+ }
+ configFile = new File(plugin.getDataFolder(), "config.yml");
+
+ if (!configFile.exists()) {
+ try {
+ Tasks.copy(plugin.getResourceAsStream("config.yml"), configFile);
+ } catch (IOException ex) {
+ GroupManager.logger.log(Level.SEVERE, null, ex);
+ }
+ }
+
+ GMconfig = new YamlConfiguration();
+
+ try {
+ GMconfig.load(configFile);
+ } catch (Exception ex) {
+ throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + configFile.getPath(), ex);
+ }
+
+ // Setup defaults
+ adjustLoggerLevel();
+ plugin.setValidateOnlinePlayer(isToggleValidate());
+ }
+
+ public boolean isOpOverride() {
+ return GMconfig.getBoolean("settings.config.opOverrides", true);
+ }
+ public boolean isToggleValidate() {
+ return GMconfig.getBoolean("settings.config.validate_toggle", true);
+ }
+
+ public Map<String, Object> getMirrorsMap() {
+ // Try to fetch the old mirror path first
if (GMconfig.isConfigurationSection("settings.permission.world.mirror")) {
return (Map<String, Object>) GMconfig.getConfigurationSection("settings.permission.world.mirror").getValues(false);
- } else if (GMconfig.isConfigurationSection("settings.mirrors")) {
+ } else if (GMconfig.isConfigurationSection("settings.mirrors")){
return (Map<String, Object>) GMconfig.getConfigurationSection("settings.mirrors").getValues(false);
}
return null;
-
- }
-
- public Integer getSaveInterval() {
-
- return GMconfig.getInt("settings.data.save.minutes", 10);
- }
-
- public Integer getBackupDuration() {
-
- return GMconfig.getInt("settings.data.save.hours", 24);
- }
-
- public void adjustLoggerLevel() {
-
- try {
- GroupManager.logger.setLevel(Level.parse(GMconfig.getString("settings.logging.level", "INFO")));
- return;
- } catch (Exception e) {
- }
-
- GroupManager.logger.setLevel(Level.INFO);
- }
+
+ }
+
+ public Integer getSaveInterval() {
+ return GMconfig.getInt("settings.data.save.minutes", 10);
+ }
+
+ public Integer getBackupDuration() {
+ return GMconfig.getInt("settings.data.save.hours", 24);
+ }
+
+ public void adjustLoggerLevel() {
+
+ try {
+ GroupManager.logger.setLevel(Level.parse(GMconfig.getString("settings.logging.level", "INFO")));
+ return;
+ } catch (Exception e) {
+ }
+
+ GroupManager.logger.setLevel(Level.INFO);
+ }
} \ No newline at end of file
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
index 5f357641a..00c71a41e 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
@@ -12,8 +12,8 @@ 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;
import java.util.ArrayList;
import java.util.Arrays;
@@ -28,6 +28,7 @@ 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;
@@ -38,17 +39,20 @@ 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, ElgarL
+ * @author gabrielcouto
*/
public class GroupManager extends JavaPlugin {
+ // private File configFile;
private File backupFolder;
private Runnable commiter;
private ScheduledThreadPoolExecutor scheduler;
@@ -56,7 +60,21 @@ public class GroupManager extends JavaPlugin {
private Map<CommandSender, String> selectedWorlds = new HashMap<CommandSender, String>();
private WorldsHolder worldsHolder;
private boolean validateOnlinePlayer = true;
-
+ /**
+ * @return the validateOnlinePlayer
+ */
+ public boolean isValidateOnlinePlayer() {
+ return validateOnlinePlayer;
+ }
+
+ /**
+ * @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;
@@ -68,31 +86,15 @@ public class GroupManager extends JavaPlugin {
public static final Logger logger = Logger.getLogger(GroupManager.class.getName());
// PERMISSIONS FOR COMMAND BEING LOADED
- private OverloadedWorldHolder dataHolder = null;
- private AnjoPermissionsHandler permissionHandler = null;
-
- private String lastError = "";
+ OverloadedWorldHolder dataHolder = null;
+ AnjoPermissionsHandler permissionHandler = null;
@Override
public void onDisable() {
-
- onDisable(false);
- }
-
- @Override
- public void onEnable() {
-
- onEnable(false);
- }
-
- public void onDisable(boolean restarting) {
-
setLoaded(false);
-
- if (!restarting) {
- // Unregister this service if we are shutting down.
- this.getServer().getServicesManager().unregister(this.worldsHolder);
- }
+
+ // Un-register this service.
+ this.getServer().getServicesManager().unregister(this);
disableScheduler(); // Shutdown before we save, so it doesn't interfere.
if (worldsHolder != null) {
@@ -103,206 +105,79 @@ public class GroupManager extends JavaPlugin {
}
}
-
-
- // Remove all attachments before clearing
- if (BukkitPermissions != null) {
- BukkitPermissions.removeAllAttachments();
- }
-
- if (!restarting) {
-
- if (WorldEvents != null)
- WorldEvents = null;
-
- BukkitPermissions = null;
-
- }
+ WorldEvents = null;
+ 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
+ // all is well
PluginDescriptionFile pdfFile = this.getDescription();
System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is disabled!");
-
- if (!restarting)
- GroupManager.logger.removeHandler(ch);
+ GroupManager.logger.removeHandler(ch);
}
-
- public void onEnable(boolean restarting) {
-
- try {
- /*
- * reset local variables.
- */
- overloadedUsers = new HashMap<String, ArrayList<User>>();
- selectedWorlds = new HashMap<CommandSender, String>();
- lastError = "";
-
- /*
- * Setup our logger if we are not restarting.
- */
- if (!restarting) {
- 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
- prepareConfig();
- // Load the global groups
- globalGroups = new GlobalGroups(this);
-
- /*
- * Configure the worlds holder.
- */
- if (!restarting)
- worldsHolder = new WorldsHolder(this);
- else
- worldsHolder.resetWorldsHolder();
-
- /*
- * This should NEVER happen. No idea why it's still here.
- */
- 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");
- }
-
- /*
- * Prevent our registered events from triggering
- * updates as we are not fully loaded.
- */
- setLoaded(false);
-
- /*
- * Initialize the world listener and bukkit permissions
- * to handle events if this is a fresh start
- *
- * else
- *
- * Reset bukkit perms.
- */
- if (!restarting) {
- WorldEvents = new GMWorldListener(this);
- BukkitPermissions = new BukkitPermissions(this);
- } else {
- BukkitPermissions.reset();
- }
-
- /*
- * Start the scheduler for data saving.
- */
- enableScheduler();
-
- /*
- * 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.");
- /*
- * Flag that we are now loaded and should start processing events.
- */
- setLoaded(true);
- }
-
- System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!");
- // Register as a service
- if (!restarting)
- this.getServer().getServicesManager().register(WorldsHolder.class, this.worldsHolder, this, ServicePriority.Lowest);
-
- } catch (Exception ex) {
+ @Override
+ public void onEnable() {
+ GroupManager.logger.setUseParentHandlers(false);
+ ch = new GMLoggerHandler();
+ GroupManager.logger.addHandler(ch);
+ logger.setLevel(Level.ALL);
- /*
- * Store the error and write to the log.
- */
- saveErrorLog(ex);
+ // Create the backup folder, if it doesn't exist.
+ prepareFileFields();
+ // Load the config.yml
+ prepareConfig();
+ // Load the global groups
+ globalGroups = new GlobalGroups(this);
+ worldsHolder = new WorldsHolder(this);
- /*
- * Throw an error so Bukkit knows about it.
- */
- throw new IllegalArgumentException(ex.getMessage(), ex);
+ 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");
}
- }
-
- /**
- * Write an error.log
- *
- * @param ex
- */
- private void saveErrorLog(Exception ex) {
- if (!getDataFolder().exists()) {
- getDataFolder().mkdirs();
- }
+ // Set a few defaults (reloads)
+ setLoaded(false);
+
+ // Initialize the world listener and bukkit permissions to handle
+ // events.
+ WorldEvents = new GMWorldListener(this);
+ BukkitPermissions = new BukkitPermissions(this);
- lastError = ex.getMessage();
+ enableScheduler();
- 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("===================================================");
- GroupManager.logger.severe("= ERROR REPORT ENDED =");
- GroupManager.logger.severe("===================================================");
+ /*
+ * Schedule a Bukiit Permissions update for 1 tick later. All plugins
+ * will be loaded by then
+ */
- // Append this error to the error log.
- 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.
- e.printStackTrace();
+ if (getServer().getScheduler().scheduleSyncDelayedTask(this, new BukkitPermsUpdateTask(), 1) == -1) {
+ GroupManager.logger.severe("Could not schedule superperms Update.");
+ setLoaded(true);
}
- }
-
- /**
- * @return the validateOnlinePlayer
- */
- public boolean isValidateOnlinePlayer() {
-
- return validateOnlinePlayer;
- }
-
- /**
- * @param validateOnlinePlayer the validateOnlinePlayer to set
- */
- public void setValidateOnlinePlayer(boolean validateOnlinePlayer) {
-
- this.validateOnlinePlayer = validateOnlinePlayer;
+ 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);
}
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();
@@ -310,19 +185,16 @@ 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.");
@@ -332,19 +204,18 @@ 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);
@@ -357,21 +228,69 @@ public class GroupManager extends JavaPlugin {
}
}
- public WorldsHolder getWorldsHolder() {
+ /**
+ * 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();
+ }
+
+ /**
* Called when a command registered by this plugin is received.
*
* @param sender
* @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;
@@ -382,27 +301,15 @@ public class GroupManager extends JavaPlugin {
// 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")));
+ isOpOverride = (isOpOverride && senderPlayer.isOp());
System.out.println("[PLAYER_COMMAND] " + senderPlayer.getName() + ": /" + commandLabel + " " + Tasks.join(args, " "));
if (isOpOverride || worldsHolder.getWorldPermissions(senderPlayer).has(senderPlayer, "groupmanager." + cmd.getName())) {
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;
}
@@ -442,7 +349,7 @@ public class GroupManager extends JavaPlugin {
GroupManager.logger.severe("===================================================");
GroupManager.logger.severe("= ERROR REPORT START =");
GroupManager.logger.severe("===================================================");
- GroupManager.logger.severe("= COPY AND PASTE THIS TO A GROUPMANAGER DEVELOPER =");
+ GroupManager.logger.severe("= COPY AND PASTE THIS TO GROUPMANAGER DEVELOPER =");
GroupManager.logger.severe("===================================================");
GroupManager.logger.severe(this.getDescription().getName());
GroupManager.logger.severe(this.getDescription().getVersion());
@@ -467,29 +374,20 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
-
- if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
+ // VALIDANDO ARGUMENTOS
+ if (args.length != 2) {
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
return false;
}
-
+ if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
+ return false;
+ }
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
@@ -505,9 +403,9 @@ public class GroupManager extends JavaPlugin {
return false;
}
- // Validating permissions
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "Can't modify a player with the same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
@@ -515,43 +413,47 @@ public class GroupManager extends JavaPlugin {
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player involving a group that you don't inherit.");
return false;
}
- // Seems OK
+ // PARECE OK
auxUser.setGroup(auxGroup);
if (!sender.hasPermission("groupmanager.notify.other") || (isConsole))
- sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "' in world '" + dataHolder.getName() + "'.");
+ sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "'.");
- return true;
+ //targetPlayer = this.getServer().getPlayer(auxUser.getName());
+ //if (targetPlayer != null)
+ // BukkitPermissions.updatePermissions(targetPlayer);
+ return true;
+ // break;
case manudel:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
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 {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
- // Seems OK
+ // PARECE OK
dataHolder.removeUser(auxUser.getName());
sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' to default settings.");
@@ -561,9 +463,8 @@ public class GroupManager extends JavaPlugin {
BukkitPermissions.updatePermissions(targetPlayer);
return true;
-
case manuaddsub:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender)) {
sender.sendMessage(ChatColor.RED + "Couldn't retrieve your world. World selection is needed.");
@@ -571,15 +472,15 @@ public class GroupManager extends JavaPlugin {
return true;
}
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
@@ -590,34 +491,37 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Group not found!");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
- // Seems OK
+ // PARECE OK
if (auxUser.addSubGroup(auxGroup))
sender.sendMessage(ChatColor.YELLOW + "You added subgroup '" + auxGroup.getName() + "' to player '" + auxUser.getName() + "'.");
else
sender.sendMessage(ChatColor.RED + "The subgroup '" + auxGroup.getName() + "' is already available to '" + auxUser.getName() + "'.");
- return true;
+ //targetPlayer = this.getServer().getPlayer(auxUser.getName());
+ //if (targetPlayer != null)
+ // BukkitPermissions.updatePermissions(targetPlayer);
+ return true;
case manudelsub:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudelsub <user> <group>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
@@ -629,28 +533,27 @@ public class GroupManager extends JavaPlugin {
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
- // Seems OK
+ // PARECE OK
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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
return false;
@@ -660,19 +563,18 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Group already exists!");
return false;
}
- // Seems OK
+ // PARECE OK
auxGroup = dataHolder.createGroup(args[0]);
sender.sendMessage(ChatColor.YELLOW + "You created a group named: " + auxGroup.getName());
return true;
-
case mangdel:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
return false;
@@ -682,45 +584,44 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Group not exists!");
return false;
}
- // Seems OK
+ // PARECE OK
dataHolder.removeGroup(auxGroup.getName());
sender.sendMessage(ChatColor.YELLOW + "You deleted a group named " + auxGroup.getName() + ", it's users are default group now.");
BukkitPermissions.updateAllPlayers();
return true;
-
case manuaddp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating your permissions
+ // VALIDANDO SUA PERMISSAO
if (!isConsole && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "Can't modify player with same group than you, or higher.");
return false;
}
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && !isOpOverride && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
- sender.sendMessage(ChatColor.RED + "You can't add a permission you don't have.");
+ sender.sendMessage(ChatColor.RED + "Can't add a permission you don't have.");
return false;
}
- // Validating permissions of user
+ // VALIDANDO PERMISSAO DO DESTINO
permissionResult = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
if (args[1].startsWith("+")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
@@ -745,7 +646,7 @@ public class GroupManager extends JavaPlugin {
return false;
}
}
- // Seems OK
+ // PARECE OK
auxUser.addPermission(args[1]);
sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to player '" + auxUser.getName() + "' permissions.");
@@ -754,38 +655,38 @@ public class GroupManager extends JavaPlugin {
BukkitPermissions.updatePermissions(targetPlayer);
return true;
-
+ // break;
case manudelp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating your permissions
+ // VALIDANDO SUA PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same group as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same group than you, or higher.");
return false;
}
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && !isOpOverride && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
- sender.sendMessage(ChatColor.RED + "You can't remove a permission you don't have.");
+ sender.sendMessage(ChatColor.RED + "Can't remove a permission you don't have.");
return false;
}
- // Validating permissions of user
+ // VALIDANDO PERMISSAO DO DESTINO
permissionResult = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
sender.sendMessage(ChatColor.RED + "The user doesn't have direct access to that permission.");
@@ -796,7 +697,7 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "But might match node: " + permissionResult.accessLevel);
return false;
}
- // Seems OK
+ // PARECE OK
auxUser.removePermission(args[1]);
sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from player '" + auxUser.getName() + "' permissions.");
@@ -805,30 +706,30 @@ public class GroupManager extends JavaPlugin {
BukkitPermissions.updatePermissions(targetPlayer);
return true;
-
+ // break;
case manulistp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if ((args.length == 0) || (args.length > 2)) {
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 {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
- // Seems OK
+ // VALIDANDO PERMISSAO
+ // PARECE OK
auxString = "";
for (String perm : auxUser.getPermissionList()) {
auxString += perm + ", ";
@@ -870,36 +771,35 @@ public class GroupManager extends JavaPlugin {
}
return true;
-
case manucheckp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
targetPlayer = this.getServer().getPlayer(auxUser.getName());
- // Validating permission
+ // VALIDANDO PERMISSAO
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) {
@@ -921,34 +821,33 @@ public class GroupManager extends JavaPlugin {
// superperms
if (targetPlayer != null) {
- sender.sendMessage(ChatColor.YELLOW + "SuperPerms reports Node: " + targetPlayer.hasPermission(args[1]) + ((!targetPlayer.hasPermission(args[1]) && targetPlayer.isPermissionSet(args[1])) ? " (Negated)": ""));
+ sender.sendMessage(ChatColor.YELLOW + "SuperPerms reports Node: " + targetPlayer.hasPermission(args[1]));
}
return true;
-
case mangaddp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
- // Validating your permissions
+ // VALIDANDO SUA PERMISSAO
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
- sender.sendMessage(ChatColor.RED + "You can't add a permission you don't have.");
+ sender.sendMessage(ChatColor.RED + "Can't add a permission you don't have.");
return false;
}
- // Validating permissions of user
+ // VALIDANDO PERMISSAO DO DESTINO
permissionResult = permissionHandler.checkGroupOnlyPermission(auxGroup, args[1]);
if (args[1].startsWith("+")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
@@ -968,42 +867,41 @@ public class GroupManager extends JavaPlugin {
}
} else {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND)) {
- sender.sendMessage(ChatColor.RED + "The group already has direct access to that permission.");
+ sender.sendMessage(ChatColor.RED + "The user already has direct access to that permission.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
return false;
}
}
- // Seems OK
+ // PARECE OK
auxGroup.addPermission(args[1]);
sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to group '" + auxGroup.getName() + "' permissions.");
BukkitPermissions.updateAllPlayers();
return true;
-
case mangdelp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
- // Validating your permissions
+ // VALIDANDO SUA PERMISSAO
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
sender.sendMessage(ChatColor.RED + "Can't remove a permission you don't have.");
return false;
}
- // Validating permissions of user
+ // VALIDANDO PERMISSAO DO DESTINO
permissionResult = permissionHandler.checkGroupOnlyPermission(auxGroup, args[1]);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
sender.sendMessage(ChatColor.RED + "The group doesn't have direct access to that permission.");
@@ -1014,33 +912,32 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "But might match node: " + permissionResult.accessLevel);
return false;
}
- // Seems OK
+ // PARECE OK
auxGroup.removePermission(args[1]);
sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from group '" + auxGroup.getName() + "' permissions.");
BukkitPermissions.updateAllPlayers();
return true;
-
case manglistp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
- // Seems OK
+ // PARECE OK
auxString = "";
for (String perm : auxGroup.getPermissionList()) {
auxString += perm + ", ";
@@ -1070,31 +967,31 @@ public class GroupManager extends JavaPlugin {
}
return true;
-
case mangcheckp:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
permissionResult = permissionHandler.checkGroupPermissionWithInheritance(auxGroup, args[1]);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
sender.sendMessage(ChatColor.RED + "The group doesn't have access to that permission");
return false;
}
- // Seems OK
- // auxString = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
+ // PARECE OK
+ // 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());
@@ -1105,74 +1002,72 @@ public class GroupManager extends JavaPlugin {
}
return true;
-
case mangaddi:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group1> <group2>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group 1 does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group 1 does not exists!");
return false;
}
auxGroup2 = dataHolder.getGroup(args[1]);
if (auxGroup2 == null) {
- sender.sendMessage(ChatColor.RED + "Group 2 does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group 2 does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance.");
return false;
}
-
- // Validating permission
- if (permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) {
+
+ // VALIDANDO PERMISSAO
+ if (permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " already inherits " + auxGroup2.getName() + " (might not be directly)");
return false;
}
- // Seems OK
+ // PARECE OK
auxGroup.addInherits(auxGroup2);
sender.sendMessage(ChatColor.RED + "Group " + auxGroup2.getName() + " is now in " + auxGroup.getName() + " inheritance list.");
BukkitPermissions.updateAllPlayers();
return true;
-
case mangdeli:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group1> <group2>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group 1 does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group 1 does not exists!");
return false;
}
auxGroup2 = dataHolder.getGroup(args[1]);
if (auxGroup2 == null) {
- sender.sendMessage(ChatColor.RED + "Group 2 does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group 2 does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance.");
return false;
}
-
- // Validating permission
- if (!permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) {
+
+ // VALIDANDO PERMISSAO
+ if (!permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + ".");
return false;
}
@@ -1180,36 +1075,35 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + " directly.");
return false;
}
- // Seems OK
+ // PARECE OK
auxGroup.removeInherits(auxGroup2.getName());
sender.sendMessage(ChatColor.RED + "Group " + auxGroup2.getName() + " was removed from " + auxGroup.getName() + " inheritance list.");
BukkitPermissions.updateAllPlayers();
return true;
-
case manuaddv:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length < 3) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable> <value>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
- // Seems OK
+ // VALIDANDO PERMISSAO
+ // PARECE OK
auxString = "";
for (int i = 2; i < args.length; i++) {
auxString += args[i];
@@ -1219,60 +1113,56 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
-
+
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!auxUser.getVariables().hasVar(args[1])) {
sender.sendMessage(ChatColor.RED + "The user doesn't have directly that variable!");
}
- // Seems OK
+ // PARECE 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
- // Seems OK
+ // VALIDANDO PERMISSAO
+ // PARECE OK
auxString = "";
for (String varKey : auxUser.getVariables().getVarKeyList()) {
Object o = auxUser.getVariables().getVarObject(varKey);
@@ -1284,29 +1174,27 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
} else {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
+ // VALIDANDO PERMISSAO
auxGroup = auxUser.getGroup();
auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1]);
@@ -1315,15 +1203,14 @@ 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!");
return false;
}
}
- // Seems OK
+ // PARECE OK
if (auxUser.getVariables().hasVar(auxString)) {
sender.sendMessage(ChatColor.YELLOW + "The value of variable '" + ChatColor.GOLD + args[1] + ChatColor.YELLOW + "' is: '" + ChatColor.GREEN + auxUser.getVariables().getVarObject(args[1]).toString() + ChatColor.WHITE + "'");
sender.sendMessage(ChatColor.YELLOW + "This user own directly the variable");
@@ -1332,31 +1219,29 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length < 3) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable> <value>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
return false;
}
- // Validating permission
- // Seems OK
+ // VALIDANDO PERMISSAO
+ // PARECE OK
auxString = "";
for (int i = 2; i < args.length; i++) {
auxString += args[i];
@@ -1368,59 +1253,57 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!auxGroup.getVariables().hasVar(args[1])) {
sender.sendMessage(ChatColor.RED + "The group doesn't have directly that variable!");
}
- // Seems OK
+ // PARECE OK
auxGroup.getVariables().removeVar(args[1]);
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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
return false;
}
- // Validating permission
- // Seems OK
+ // VALIDANDO PERMISSAO
+ // PARECE OK
auxString = "";
for (String varKey : auxGroup.getVariables().getVarKeyList()) {
Object o = auxGroup.getVariables().getVarObject(varKey);
@@ -1439,74 +1322,60 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "Group does not exists!");
return false;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
return false;
}
- // Validating permission
- auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1]);
+ // VALIDANDO PERMISSAO
+ auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1], null);
if (auxGroup2 == null) {
sender.sendMessage(ChatColor.RED + "The group doesn't have access to that variable!");
}
- // Seems OK
+ // PARECE OK
sender.sendMessage(ChatColor.YELLOW + "The value of variable '" + ChatColor.GOLD + args[1] + ChatColor.YELLOW + "' is: '" + ChatColor.GREEN + auxGroup2.getVariables().getVarObject(args[1]).toString() + ChatColor.WHITE + "'");
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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
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 {
auxUser = dataHolder.getUser(args[0]);
}
- // Seems OK
+ // PARECE OK
sender.sendMessage(ChatColor.YELLOW + "Name: " + ChatColor.GREEN + auxUser.getName());
sender.sendMessage(ChatColor.YELLOW + "Group: " + ChatColor.GREEN + auxUser.getGroup().getName());
- // Compile a list of subgroups
- auxString = "";
- for (String subGroup : auxUser.subGroupListStringCopy()) {
- auxString += subGroup + ", ";
- }
- if (auxString.lastIndexOf(",") > 0) {
- 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())) {
@@ -1514,32 +1383,32 @@ public class GroupManager extends JavaPlugin {
}
// victim.permissions.add(args[1]);
return true;
-
+ // break;
case tempadd:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
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 {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
- // Seems OK
+ // PARECE OK
if (overloadedUsers.get(dataHolder.getName().toLowerCase()) == null) {
overloadedUsers.put(dataHolder.getName().toLowerCase(), new ArrayList<User>());
}
@@ -1548,32 +1417,32 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.YELLOW + "Player overloaded!");
return true;
-
+ // break;
case tempdel:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 1) {
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 {
auxUser = dataHolder.getUser(args[0]);
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
- // Seems OK
+ // PARECE OK
if (overloadedUsers.get(dataHolder.getName().toLowerCase()) == null) {
overloadedUsers.put(dataHolder.getName().toLowerCase(), new ArrayList<User>());
}
@@ -1581,12 +1450,12 @@ public class GroupManager extends JavaPlugin {
if (overloadedUsers.get(dataHolder.getName().toLowerCase()).contains(auxUser)) {
overloadedUsers.get(dataHolder.getName().toLowerCase()).remove(auxUser);
}
- sender.sendMessage(ChatColor.YELLOW + "You removed that player's overload. He's back to normal!");
+ sender.sendMessage(ChatColor.YELLOW + "You removed that player overload. He's back to normal!");
return true;
-
+ // break;
case templist:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
@@ -1604,7 +1473,7 @@ public class GroupManager extends JavaPlugin {
}
}
if (count == 0) {
- sender.sendMessage(ChatColor.YELLOW + "There are no users in overload mode.");
+ sender.sendMessage(ChatColor.YELLOW + "There is no users in overload mode");
return true;
}
auxString = auxString.substring(0, auxString.lastIndexOf(","));
@@ -1613,11 +1482,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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
@@ -1632,24 +1499,23 @@ public class GroupManager extends JavaPlugin {
}
}
if (count == 0) {
- sender.sendMessage(ChatColor.YELLOW + "There are no users in overload mode.");
+ sender.sendMessage(ChatColor.YELLOW + "There is no users in overload mode");
return true;
}
if (overloadedUsers.get(dataHolder.getName().toLowerCase()) == null) {
overloadedUsers.put(dataHolder.getName().toLowerCase(), new ArrayList<User>());
}
overloadedUsers.get(dataHolder.getName().toLowerCase()).clear();
- sender.sendMessage(ChatColor.YELLOW + " " + count + "All users in overload mode are now normal again.");
+ sender.sendMessage(ChatColor.YELLOW + " " + count + " Users in overload mode. Now they are 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.");
@@ -1659,17 +1525,10 @@ 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];
@@ -1682,7 +1541,7 @@ public class GroupManager extends JavaPlugin {
globalGroups.load();
worldsHolder.loadWorld(auxString);
-
+
sender.sendMessage("The request to reload world '" + auxString + "' was attempted.");
isLoaded = true;
@@ -1690,30 +1549,24 @@ public class GroupManager extends JavaPlugin {
BukkitPermissions.updateAllPlayers();
} else {
-
+
/**
* Reload all settings and data as no world was specified.
*/
-
- /*
- * Attempting a fresh load.
- */
- onDisable(true);
- onEnable(true);
-
- sender.sendMessage("All settings and worlds were reloaded!");
+ onDisable();
+ onEnable();
}
-
+
/**
* 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
@@ -1730,22 +1583,20 @@ 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
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
@@ -1761,9 +1612,9 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly.");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
@@ -1771,37 +1622,41 @@ public class GroupManager extends JavaPlugin {
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player involving a group that you don't inherit.");
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxUser.getGroup(), auxGroup.getName()) && !permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player using groups with different heritage line.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player using groups with different heritage line.");
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "The new group must be a higher rank.");
return false;
}
- // Seems OK
+ // PARECE OK
auxUser.setGroup(auxGroup);
if (!sender.hasPermission("groupmanager.notify.other") || (isConsole))
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
- return true;
+ //targetPlayer = this.getServer().getPlayer(auxUser.getName());
+ //if (targetPlayer != null)
+ // BukkitPermissions.updatePermissions(targetPlayer);
+ return true;
+ // break;
case mandemote:
- // Validating state of sender
+ // VALIDANDO ESTADO DO SENDER
if (dataHolder == null || permissionHandler == null) {
if (!setDefaultWorldHandler(sender))
return true;
}
- // Validating arguments
+ // VALIDANDO ARGUMENTOS
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
return false;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
- return false;
+ return false;
}
if (match != null) {
auxUser = dataHolder.getUser(match.get(0));
@@ -1817,9 +1672,9 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly.");
return false;
}
- // Validating permission
+ // VALIDANDO PERMISSAO
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
return false;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
@@ -1827,24 +1682,28 @@ public class GroupManager extends JavaPlugin {
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player involving a group that you don' inherit.");
return false;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxUser.getGroup(), auxGroup.getName()) && !permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
- sender.sendMessage(ChatColor.RED + "You can't modify a player using groups with different heritage line.");
+ sender.sendMessage(ChatColor.RED + "Can't modify player using groups with different heritage line.");
return false;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "The new group must be a lower rank.");
return false;
}
- // Seems OK
+ // PARECE OK
auxUser.setGroup(auxGroup);
if (!sender.hasPermission("groupmanager.notify.other") || (isConsole))
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
- return true;
+ //targetPlayer = this.getServer().getPlayer(auxUser.getName());
+ //if (targetPlayer != null)
+ // BukkitPermissions.updatePermissions(targetPlayer);
+ return true;
+ // break;
case mantogglevalidate:
validateOnlinePlayer = !validateOnlinePlayer;
sender.sendMessage(ChatColor.YELLOW + "Validade if player is online, now set to: " + Boolean.toString(validateOnlinePlayer));
@@ -1875,9 +1734,7 @@ 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>)");
@@ -1908,9 +1765,7 @@ 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!");
@@ -1918,9 +1773,7 @@ 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;
}
@@ -1970,7 +1823,7 @@ public class GroupManager extends JavaPlugin {
}
}
-
+
/**
* Load a List of players matching the name given. If none online, check
* Offline.
@@ -1989,7 +1842,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());
@@ -2009,7 +1862,7 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Too many matches found! (" + match.toString() + ")");
return null;
}
-
+
return match;
}
@@ -2018,7 +1871,6 @@ public class GroupManager extends JavaPlugin {
* @return the config
*/
public GMConfiguration getGMConfig() {
-
return config;
}
@@ -2026,12 +1878,10 @@ public class GroupManager extends JavaPlugin {
* @return the backupFolder
*/
public File getBackupFolder() {
-
return backupFolder;
}
public static GlobalGroups getGlobalGroups() {
-
return globalGroups;
}
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java
index 751dc8fd6..396240ec6 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java
@@ -15,173 +15,160 @@ import java.util.List;
import java.util.Map;
/**
- *
+ *
* @author gabrielcouto/ElgarL
*/
public class Group extends DataUnit implements Cloneable {
- /**
- * The group it inherits DIRECTLY!
- */
- private ArrayList<String> inherits = new ArrayList<String>();
- /**
- * This one holds the fields in INFO node.
- * like prefix = 'c'
- * or build = false
- */
- private GroupVariables variables = new GroupVariables(this);
-
- /**
- * Constructor for individual World Groups.
- *
- * @param name
- */
- public Group(WorldDataHolder source, String name) {
-
- super(source, name);
- }
-
- /**
- * Constructor for Global Groups.
- *
- * @param name
- */
- public Group(String name) {
-
- super(name);
- }
-
- /**
- * Is this a GlobalGroup
- *
- * @return true if this is a global group
- */
- public boolean isGlobal() {
-
- return (getDataSource() == null);
- }
-
- /**
- * Clone this group
- *
- * @return a clone of this group
- */
- @Override
- public Group clone() {
-
- Group clone;
-
- if (isGlobal()) {
- clone = new Group(this.getName());
- } else {
- clone = new Group(getDataSource(), this.getName());
- clone.inherits = new ArrayList<String>(this.getInherits());
- }
-
- for (String perm : this.getPermissionList()) {
- clone.addPermission(perm);
- }
- clone.variables = ((GroupVariables) variables).clone(clone);
- //clone.flagAsChanged();
- return clone;
- }
-
- /**
- * Use this to deliver a group from a different dataSource to another
- *
- * @param dataSource
- * @return Null or Clone
- */
- public Group clone(WorldDataHolder dataSource) {
-
- if (dataSource.groupExists(this.getName())) {
- return null;
- }
-
- Group clone = dataSource.createGroup(this.getName());
-
- // Don't add inheritance for GlobalGroups
- if (!isGlobal()) {
- clone.inherits = new ArrayList<String>(this.getInherits());
- }
- for (String perm : this.getPermissionList()) {
- clone.addPermission(perm);
- }
- clone.variables = variables.clone(clone);
- clone.flagAsChanged(); //use this to make the new dataSource save the new group
- return clone;
- }
-
- /**
- * an unmodifiable list of inherits list
- * You can't manage the list by here
- * Lol... version 0.6 had a problem because this.
- *
- * @return the inherits
- */
- public List<String> getInherits() {
-
- return Collections.unmodifiableList(inherits);
- }
-
- /**
- * @param inherit the inherits to set
- */
- public void addInherits(Group inherit) {
-
- if (!isGlobal()) {
- if (!this.getDataSource().groupExists(inherit.getName())) {
- getDataSource().addGroup(inherit);
- }
- if (!inherits.contains(inherit.getName().toLowerCase())) {
- inherits.add(inherit.getName().toLowerCase());
- }
- flagAsChanged();
- if (GroupManager.isLoaded()) {
- GroupManager.BukkitPermissions.updateAllPlayers();
- GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED);
- }
- }
- }
-
- public boolean removeInherits(String inherit) {
-
- if (!isGlobal()) {
- if (this.inherits.contains(inherit.toLowerCase())) {
- this.inherits.remove(inherit.toLowerCase());
- flagAsChanged();
- GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED);
- return true;
- }
- }
- return false;
- }
-
- /**
- * @return the variables
- */
- public GroupVariables getVariables() {
-
- return variables;
- }
-
- /**
- *
- * @param varList
- */
- public void setVariables(Map<String, Object> varList) {
-
- if (!isGlobal()) {
- GroupVariables temp = new GroupVariables(this, varList);
- variables.clearVars();
- for (String key : temp.getVarKeyList()) {
- variables.addVar(key, temp.getVarObject(key));
- }
- flagAsChanged();
- if (GroupManager.isLoaded()) {
- GroupManager.BukkitPermissions.updateAllPlayers();
- GroupManagerEventHandler.callEvent(this, Action.GROUP_INFO_CHANGED);
- }
- }
- }
+ /**
+ * The group it inherits DIRECTLY!
+ */
+ private ArrayList<String> inherits = new ArrayList<String>();
+ /**
+ *This one holds the fields in INFO node.
+ * like prefix = 'c'
+ * or build = false
+ */
+ private GroupVariables variables = new GroupVariables(this);
+
+ /**
+ * Constructor for individual World Groups.
+ *
+ * @param name
+ */
+ public Group(WorldDataHolder source, String name) {
+ super(source, name);
+ }
+
+ /**
+ * Constructor for Global Groups.
+ *
+ * @param name
+ */
+ public Group(String name) {
+ super(name);
+ }
+
+ /**
+ * Is this a GlobalGroup
+ *
+ * @return
+ */
+ public boolean isGlobal() {
+ return (getDataSource() == null);
+ }
+
+ /**
+ * Clone this group
+ * @return a clone of this group
+ */
+ @Override
+ public Group clone() {
+ Group clone;
+
+ if (isGlobal()) {
+ clone = new Group(this.getName());
+ } else {
+ clone = new Group(getDataSource(), this.getName());
+ clone.inherits = new ArrayList<String>(this.getInherits());
+ }
+
+ for (String perm : this.getPermissionList()) {
+ clone.addPermission(perm);
+ }
+ clone.variables = ((GroupVariables) variables).clone(clone);
+ //clone.flagAsChanged();
+ return clone;
+ }
+
+ /**
+ * Use this to deliver a group from a different dataSource to another
+ * @param dataSource
+ * @return Null or Clone
+ */
+ public Group clone(WorldDataHolder dataSource) {
+ if (dataSource.groupExists(this.getName())) {
+ return null;
+ }
+
+ Group clone = dataSource.createGroup(this.getName());
+
+ // Don't add inheritance for GlobalGroups
+ if (!isGlobal()) {
+ clone.inherits = new ArrayList<String>(this.getInherits());
+ }
+ for (String perm : this.getPermissionList()) {
+ clone.addPermission(perm);
+ }
+ clone.variables = variables.clone(clone);
+ clone.flagAsChanged(); //use this to make the new dataSource save the new group
+ return clone;
+ }
+
+ /**
+ * an unmodifiable list of inherits list
+ * You can't manage the list by here
+ * Lol... version 0.6 had a problem because this.
+ * @return the inherits
+ */
+ public List<String> getInherits() {
+ return Collections.unmodifiableList(inherits);
+ }
+
+ /**
+ * @param inherit the inherits to set
+ */
+ public void addInherits(Group inherit) {
+ if (!isGlobal()) {
+ if (!this.getDataSource().groupExists(inherit.getName())) {
+ getDataSource().addGroup(inherit);
+ }
+ if (!inherits.contains(inherit.getName().toLowerCase())) {
+ inherits.add(inherit.getName().toLowerCase());
+ }
+ flagAsChanged();
+ if (GroupManager.isLoaded()) {
+ GroupManager.BukkitPermissions.updateAllPlayers();
+ GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED);
+ }
+ }
+ }
+
+ public boolean removeInherits(String inherit) {
+ if (!isGlobal()) {
+ if (this.inherits.contains(inherit.toLowerCase())) {
+ this.inherits.remove(inherit.toLowerCase());
+ flagAsChanged();
+ GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @return the variables
+ */
+ public GroupVariables getVariables() {
+ return variables;
+ }
+
+ /**
+ *
+ * @param varList
+ */
+ public void setVariables(Map<String, Object> varList) {
+ if (!isGlobal()) {
+ GroupVariables temp = new GroupVariables(this, varList);
+ variables.clearVars();
+ for (String key : temp.getVarKeyList()) {
+ variables.addVar(key, temp.getVarObject(key));
+ }
+ flagAsChanged();
+ if (GroupManager.isLoaded()) {
+ GroupManager.BukkitPermissions.updateAllPlayers();
+ GroupManagerEventHandler.callEvent(this, Action.GROUP_INFO_CHANGED);
+ }
+ }
+ }
}