1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-06 06:37:28 +02:00

- Fix Synchronization on adding subgroups (thanks snowleo).

- Remove info node support from GlobalGroups. It should not have them
as GlobalGroups are only permission collections.
This commit is contained in:
ElgarL
2012-09-22 19:18:51 +01:00
parent b1ad781628
commit 79a25c435f
3 changed files with 27 additions and 26 deletions

View File

@@ -197,3 +197,5 @@ v 2.0:
- No more null errors from corrupt config.yml's. - No more null errors from corrupt config.yml's.
- Give a better error when a subgroup is null. - Give a better error when a subgroup is null.
- Include the GM version when logging errors. - Include the GM version when logging errors.
- Fix Synchronization on adding subgroups (thanks snowleo).
- Remove info node support from GlobalGroups. It should not have them as GlobalGroups are only permission collections.

View File

@@ -19,7 +19,6 @@ import org.anjocaido.groupmanager.events.GMGroupEvent;
import org.anjocaido.groupmanager.events.GroupManagerEventHandler; import org.anjocaido.groupmanager.events.GroupManagerEventHandler;
import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.PermissionCheckResult;
import org.anjocaido.groupmanager.utils.Tasks; import org.anjocaido.groupmanager.utils.Tasks;
import org.bukkit.configuration.MemorySection;
import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.constructor.SafeConstructor;
@@ -184,22 +183,22 @@ public class GlobalGroups {
} else } else
throw new IllegalArgumentException("Unknown type of permission node for global group: " + groupName); throw new IllegalArgumentException("Unknown type of permission node for global group: " + groupName);
// Info nodes // // Info nodes
try { // try {
element = ((Map<String, Object>)allGroups.get(groupName)).get("info"); // element = ((Map<String, Object>)allGroups.get(groupName)).get("info");
} catch ( Exception ex) { // } catch ( Exception ex) {
throw new IllegalArgumentException("The GlobalGroup ' " + groupName + "' is formatted incorrectly: ", ex); // throw new IllegalArgumentException("The GlobalGroup ' " + groupName + "' is formatted incorrectly: ", ex);
} // }
//
if (element != null) // if (element != null)
if (element instanceof MemorySection) { // if (element instanceof MemorySection) {
Map<String, Object> vars = new HashMap<String, Object>(); // Map<String, Object> vars = new HashMap<String, Object>();
for (String key : ((MemorySection) element).getKeys(false)) { // for (String key : ((MemorySection) element).getKeys(false)) {
vars.put(key, ((MemorySection) element).get(key)); // vars.put(key, ((MemorySection) element).get(key));
} // }
newGroup.setVariables(vars); // newGroup.setVariables(vars);
} else // } else
throw new IllegalArgumentException("Unknown type of info node for global group: " + groupName); // throw new IllegalArgumentException("Unknown type of info node for global group: " + groupName);
// Push a new group // Push a new group
addGroup(newGroup); addGroup(newGroup);
@@ -236,13 +235,13 @@ public class GlobalGroups {
Map<String, Object> aGroupMap = new HashMap<String, Object>(); Map<String, Object> aGroupMap = new HashMap<String, Object>();
groupsMap.put(group.getName(), aGroupMap); groupsMap.put(group.getName(), aGroupMap);
// Info nodes // // Info nodes
Map<String, Object> infoMap = new HashMap<String, Object>(); // Map<String, Object> infoMap = new HashMap<String, Object>();
aGroupMap.put("info", infoMap); // aGroupMap.put("info", infoMap);
//
for (String infoKey : group.getVariables().getVarKeyList()) { // for (String infoKey : group.getVariables().getVarKeyList()) {
infoMap.put(infoKey, group.getVariables().getVarObject(infoKey)); // infoMap.put(infoKey, group.getVariables().getVarObject(infoKey));
} // }
// Permission nodes // Permission nodes
aGroupMap.put("permissions", group.getPermissionList()); aGroupMap.put("permissions", group.getPermissionList());

View File

@@ -28,7 +28,7 @@ public class User extends DataUnit implements Cloneable {
* *
*/ */
private String group = null; private String group = null;
private final List<String> subGroups = Collections.synchronizedList(Collections.<String>emptyList()); private final List<String> subGroups = Collections.synchronizedList(new ArrayList<String>());
/** /**
* This one holds the fields in INFO node. like prefix = 'c' or build = * This one holds the fields in INFO node. like prefix = 'c' or build =
* false * false