From cd7bf5eff2a1daeb9ad792820265c70ff8b3e0dc Mon Sep 17 00:00:00 2001 From: ElgarL Date: Wed, 18 Apr 2012 22:22:35 +0100 Subject: Prevent null perms getting past the GlobalGroups loader. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../src/org/anjocaido/groupmanager/GlobalGroups.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index fcdc1ed9d..e321c7741 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -180,4 +180,5 @@ v 2.0: - 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. \ No newline at end of file + - 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. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java index 647d729e5..04d9e86be 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java @@ -159,12 +159,14 @@ public class GlobalGroups { if (element instanceof List) { try { for (String node : (List) element) { - newGroup.addPermission(node); + if ((node != null) && !node.isEmpty()) + newGroup.addPermission(node); } } catch (ClassCastException ex) { throw new IllegalArgumentException("Invalid permission node for global group: " + groupName, ex); } } else if (element instanceof String) { + if ((element != null) && !((String)element).isEmpty()) newGroup.addPermission((String) element); } else throw new IllegalArgumentException("Unknown type of permission node for global group: " + groupName); -- cgit v1.2.3 From 4e10470acd507e41c1df334ae4489dc34fd4c308 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 21 Apr 2012 02:32:02 +0100 Subject: Remove unneeded dependency of craftbukkit (Eclipse building) --- EssentialsGroupManager/.classpath | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsGroupManager/.classpath b/EssentialsGroupManager/.classpath index 61f808b2d..bc8106503 100644 --- a/EssentialsGroupManager/.classpath +++ b/EssentialsGroupManager/.classpath @@ -2,6 +2,6 @@ - + -- cgit v1.2.3 From 3d9022d8fabd336c50b337cf17b41c0d9819fde3 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 21 Apr 2012 02:32:37 +0100 Subject: remove unneeded dependency of craftbukkit --- EssentialsGroupBridge/.classpath | 1 - EssentialsGroupBridge/.project | 10 ++++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/EssentialsGroupBridge/.classpath b/EssentialsGroupBridge/.classpath index 9330eb06e..ebd606dca 100644 --- a/EssentialsGroupBridge/.classpath +++ b/EssentialsGroupBridge/.classpath @@ -3,7 +3,6 @@ - diff --git a/EssentialsGroupBridge/.project b/EssentialsGroupBridge/.project index 0780b7dbb..2ea0b05e1 100644 --- a/EssentialsGroupBridge/.project +++ b/EssentialsGroupBridge/.project @@ -10,6 +10,16 @@ + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/GroupBridge.launch + + + org.eclipse.jdt.core.javanature -- cgit v1.2.3 From a21b5fac76958a13fa067bfc452415d3885fc553 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 21 Apr 2012 02:33:13 +0100 Subject: updated classpath (eclipse) for teh whole project --- .classpath | 1 - 1 file changed, 1 deletion(-) diff --git a/.classpath b/.classpath index 0683da590..db361119a 100644 --- a/.classpath +++ b/.classpath @@ -3,6 +3,5 @@ - -- cgit v1.2.3 From fc7689354f3dea2614f248a1f82eb740b6a4fb9f Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 21 Apr 2012 16:58:22 +0100 Subject: Fix forgetting sub groups on a manload. --- EssentialsGroupManager/src/Changelog.txt | 3 +- .../org/anjocaido/groupmanager/GroupManager.java | 48 +++++++++++++++++++--- .../dataholder/worlds/WorldsHolder.java | 1 + .../permissions/BukkitPermissions.java | 9 +++- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index e321c7741..c3ec8ccc1 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -181,4 +181,5 @@ v 2.0: - 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. \ No newline at end of file + - Prevent null perms getting past the GlobalGroups loader. + - Fix forgetting sub groups on a manload. \ 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 3da9666c3..0571db4b6 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -103,13 +103,20 @@ public class GroupManager extends JavaPlugin { } } - if (WorldEvents != null) - WorldEvents = null; + // Remove all attachments before clearing if (BukkitPermissions != null) { BukkitPermissions.removeAllAttachments(); + } + + if (!restarting) { + + if (WorldEvents != null) + WorldEvents = null; + BukkitPermissions = null; + } // EXAMPLE: Custom code, here we just output some info so we can check that all is well @@ -130,6 +137,9 @@ public class GroupManager extends JavaPlugin { selectedWorlds = new HashMap(); lastError = ""; + /* + * Setup our logger if we are not restarting. + */ if (!restarting) { GroupManager.logger.setUseParentHandlers(false); ch = new GMLoggerHandler(); @@ -144,11 +154,17 @@ public class GroupManager extends JavaPlugin { // 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!"); @@ -156,13 +172,30 @@ public class GroupManager extends JavaPlugin { throw new IllegalStateException("An error ocurred while loading GroupManager"); } - // Set a few defaults (reloads) + /* + * 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. - WorldEvents = new GMWorldListener(this); - BukkitPermissions = new BukkitPermissions(this); + /* + * 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(); /* @@ -172,6 +205,9 @@ public class GroupManager extends JavaPlugin { 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); } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java index a9ab4befa..27a7d9a59 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java @@ -62,6 +62,7 @@ public class WorldsHolder { public void resetWorldsHolder() { + worldsData = new HashMap(); mirrorsGroup = new HashMap(); mirrorsUser = new HashMap(); diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index c366b65bf..e8322c391 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -96,12 +96,17 @@ public class BukkitPermissions { public BukkitPermissions(GroupManager plugin) { this.plugin = plugin; - this.collectPermissions(); + this.reset(); this.registerEvents(); - this.updateAllPlayers(); + GroupManager.logger.info("Superperms support enabled."); } + + public void reset() { + this.collectPermissions(); + this.updateAllPlayers(); + } private void registerEvents() { -- cgit v1.2.3 From 06247732da564876d97de99aa706fd7e823c0df9 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sun, 22 Apr 2012 12:12:50 +0100 Subject: Allow 'manucheckp' to notify when superperms reports false but it is really negated. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../src/org/anjocaido/groupmanager/GroupManager.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index c3ec8ccc1..4a3c232be 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -182,4 +182,5 @@ v 2.0: - 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. \ No newline at end of file + - 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 diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 0571db4b6..5f357641a 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -921,7 +921,7 @@ public class GroupManager extends JavaPlugin { // superperms if (targetPlayer != null) { - sender.sendMessage(ChatColor.YELLOW + "SuperPerms reports Node: " + targetPlayer.hasPermission(args[1])); + sender.sendMessage(ChatColor.YELLOW + "SuperPerms reports Node: " + targetPlayer.hasPermission(args[1]) + ((!targetPlayer.hasPermission(args[1]) && targetPlayer.isPermissionSet(args[1])) ? " (Negated)": "")); } return true; -- cgit v1.2.3