diff options
author | ElgarL <ElgarL@palmergames.com> | 2011-12-13 17:13:53 +0000 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2011-12-13 17:13:53 +0000 |
commit | 6f77addc71c1c0901d10c23a5d31c349df9abdf3 (patch) | |
tree | 19fb9c11c720d529fd7345ad97e3c4470c3af2eb /EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder | |
parent | 016c181b70a92d9e8ea3f4315bec1cd5b179ff01 (diff) | |
download | Essentials-6f77addc71c1c0901d10c23a5d31c349df9abdf3.tar Essentials-6f77addc71c1c0901d10c23a5d31c349df9abdf3.tar.gz Essentials-6f77addc71c1c0901d10c23a5d31c349df9abdf3.tar.lz Essentials-6f77addc71c1c0901d10c23a5d31c349df9abdf3.tar.xz Essentials-6f77addc71c1c0901d10c23a5d31c349df9abdf3.zip |
Added custom events so plugins can now be notified of changes within
GroupManager.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java index 4ef77687a..2a944856b 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java @@ -22,6 +22,11 @@ import java.util.logging.Logger; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.data.User; +import org.anjocaido.groupmanager.events.GMGroupEvent; +import org.anjocaido.groupmanager.events.GMSystemEvent; +import org.anjocaido.groupmanager.events.GMUserEvent; +import org.anjocaido.groupmanager.events.GMUserEvent.Action; +import org.anjocaido.groupmanager.events.GroupManagerEventHandler; import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler; import org.bukkit.Server; import org.bukkit.plugin.Plugin; @@ -144,6 +149,8 @@ public class WorldDataHolder { removeUser(theUser.getName()); users.put(theUser.getName().toLowerCase(), theUser); haveUsersChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(theUser, Action.USER_ADDED); } /** @@ -155,6 +162,8 @@ public class WorldDataHolder { if (users.containsKey(userName.toLowerCase())) { users.remove(userName.toLowerCase()); haveUsersChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(userName, GMUserEvent.Action.USER_REMOVED); return true; } return false; @@ -179,6 +188,8 @@ public class WorldDataHolder { } defaultGroup = this.getGroup(group.getName()); haveGroupsChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.DEFAULT_GROUP_CHANGED); } /** @@ -221,6 +232,7 @@ public class WorldDataHolder { public void addGroup(Group groupToAdd) { if (groupToAdd.getName().toLowerCase().startsWith("g:")) { GroupManager.getGlobalGroups().addGroup(groupToAdd); + GroupManagerEventHandler.callEvent(groupToAdd, GMGroupEvent.Action.GROUP_ADDED); return; } @@ -230,10 +242,12 @@ public class WorldDataHolder { removeGroup(groupToAdd.getName()); groups.put(groupToAdd.getName().toLowerCase(), groupToAdd); haveGroupsChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(groupToAdd, GMGroupEvent.Action.GROUP_ADDED); } /** - * Remove the group to the list + * Remove the group from the list * @param groupName * @return true if had something to remove. false the group was default or non-existant */ @@ -248,6 +262,8 @@ public class WorldDataHolder { if (groups.containsKey(groupName.toLowerCase())) { groups.remove(groupName.toLowerCase()); haveGroupsChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(groupName.toLowerCase(), GMGroupEvent.Action.GROUP_REMOVED); return true; } return false; @@ -345,6 +361,7 @@ public class WorldDataHolder { Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex); } GroupManager.setLoaded(true); + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED); } /** @@ -375,6 +392,7 @@ public class WorldDataHolder { Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex); } GroupManager.setLoaded(true); + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED); } /** @@ -936,6 +954,9 @@ public class WorldDataHolder { ph.groupsFile = groupsFile; ph.setTimeStampGroups(groupsFile.lastModified()); ph.removeGroupsChangedFlag(); + + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.SAVED); /*FileWriter tx = null; try { @@ -1010,6 +1031,9 @@ public class WorldDataHolder { ph.setTimeStampUsers(usersFile.lastModified()); ph.removeUsersChangedFlag(); + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.SAVED); + /*FileWriter tx = null; try { tx = new FileWriter(usersFile, false); @@ -1191,5 +1215,6 @@ public class WorldDataHolder { setTimeStampGroups(groupsFile.lastModified()); if (usersFile != null) setTimeStampUsers(usersFile.lastModified()); - } + } + } |