From 759892078ad99db2bb548f32b5588b51a5433ee3 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 13 Dec 2011 17:13:53 +0000 Subject: Added custom events so plugins can now be notified of changes within GroupManager. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../org/anjocaido/groupmanager/GlobalGroups.java | 6 +++++ .../org/anjocaido/groupmanager/GroupManager.java | 10 ++++++++ .../src/org/anjocaido/groupmanager/data/Group.java | 16 +++++++++--- .../src/org/anjocaido/groupmanager/data/User.java | 17 ++++++++++--- .../groupmanager/dataholder/WorldDataHolder.java | 29 ++++++++++++++++++++-- 6 files changed, 70 insertions(+), 11 deletions(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 00df6628d..7561214fd 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -82,4 +82,5 @@ v 1.6: - Added file details in error messages for loading groups/users. v 1.7: - GM now supports offline players without having to mantogglevalidate - - Offline player checks now support partial name matches. \ No newline at end of file + - Offline player checks now support partial name matches. + - Added custom events so plugins can now be notified of changes within GroupManager. \ 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 d7971d424..33b7b46f1 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java @@ -14,6 +14,8 @@ import java.util.Set; import java.util.logging.Level; import org.anjocaido.groupmanager.data.Group; +import org.anjocaido.groupmanager.events.GMGroupEvent; +import org.anjocaido.groupmanager.events.GroupManagerEventHandler; import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; import org.bukkit.configuration.MemorySection; @@ -243,6 +245,8 @@ public class GlobalGroups { newGroup(groupToAdd); haveGroupsChanged = true; + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(groupToAdd, GMGroupEvent.Action.GROUP_ADDED); } /** @@ -270,6 +274,8 @@ public class GlobalGroups { if (groups.containsKey(groupName.toLowerCase())) { groups.remove(groupName.toLowerCase()); this.setGroupsChanged(true); + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(groupName.toLowerCase(), GMGroupEvent.Action.GROUP_REMOVED); return true; } return false; diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 37131f888..ab8eefb36 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -26,6 +26,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder; import org.anjocaido.groupmanager.events.GMWorldListener; +import org.anjocaido.groupmanager.events.GroupManagerEvent; import org.anjocaido.groupmanager.utils.GMLoggerHandler; import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; @@ -1828,6 +1829,15 @@ public class GroupManager extends JavaPlugin { return match; } + + /** + * Triggers all GroupManager events for other plugins to see. + * + * @param event + */ + public static void callEvent(GroupManagerEvent event) { + Bukkit.getServer().getPluginManager().callEvent(event); + } /** * @return the config diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java index ba8915a18..a0b50bf5b 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java @@ -6,6 +6,9 @@ package org.anjocaido.groupmanager.data; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.dataholder.WorldDataHolder; +import org.anjocaido.groupmanager.events.GMGroupEvent.Action; +import org.anjocaido.groupmanager.events.GroupManagerEventHandler; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -13,7 +16,7 @@ import java.util.Map; /** * - * @author gabrielcouto + * @author gabrielcouto/ElgarL */ public class Group extends DataUnit implements Cloneable { @@ -45,7 +48,7 @@ public class Group extends DataUnit implements Cloneable { public Group(String name) { super(name); } - + /** * Clone this group * @return a clone of this group @@ -114,14 +117,17 @@ public class Group extends DataUnit implements Cloneable { inherits.add(inherit.getName().toLowerCase()); } flagAsChanged(); - if (GroupManager.isLoaded()) + if (GroupManager.isLoaded()) { GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.INHERITANCE_CHANGED); + } } public boolean removeInherits(String inherit) { if (this.inherits.contains(inherit.toLowerCase())) { this.inherits.remove(inherit.toLowerCase()); flagAsChanged(); + GroupManagerEventHandler.callEvent(this, Action.INHERITANCE_CHANGED); return true; } return false; @@ -145,7 +151,9 @@ public class Group extends DataUnit implements Cloneable { variables.addVar(key, temp.getVarObject(key)); } flagAsChanged(); - if (GroupManager.isLoaded()) + if (GroupManager.isLoaded()) { GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.INFO_CHANGED); + } } } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index 10757475d..81d188c80 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -9,6 +9,9 @@ import java.util.ArrayList; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.dataholder.WorldDataHolder; +import org.anjocaido.groupmanager.events.GMUserEvent.Action; +import org.anjocaido.groupmanager.events.GroupManagerEventHandler; + import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -16,7 +19,7 @@ import org.bukkit.entity.Player; /** * - * @author gabrielcouto + * @author gabrielcouto/ElgarL */ public class User extends DataUnit implements Cloneable { @@ -139,6 +142,8 @@ public class User extends DataUnit implements Cloneable { if (notify) GroupManager.notify(this.getName(), String.format(" moved to the group %s.", group.getName())); + + GroupManagerEventHandler.callEvent(this, Action.GROUP_CHANGED); } } @@ -153,9 +158,11 @@ public class User extends DataUnit implements Cloneable { removeSubGroup(subGroup); subGroups.add(subGroup.getName()); flagAsChanged(); - if (GroupManager.isLoaded()) + if (GroupManager.isLoaded()) { if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.SUBGROUP_CHANGED); + } } public int subGroupsSize() { @@ -177,6 +184,7 @@ public class User extends DataUnit implements Cloneable { if (GroupManager.isLoaded()) if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.SUBGROUP_CHANGED); return true; } } catch (Exception e) { @@ -220,9 +228,11 @@ public class User extends DataUnit implements Cloneable { variables.addVar(key, varList.get(key)); } flagAsChanged(); - if (GroupManager.isLoaded()) + if (GroupManager.isLoaded()) { if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.INFO_CHANGED); + } } public User updatePlayer(Player player) { @@ -238,5 +248,4 @@ public class User extends DataUnit implements Cloneable { } return bukkitPlayer; } - } 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()); - } + } + } -- cgit v1.2.3 From 5b195299badac21ae3a16de49d62a32866d00f19 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 13 Dec 2011 17:32:39 +0000 Subject: Update event Action names to be unique --- .../src/org/anjocaido/groupmanager/data/Group.java | 6 +-- .../src/org/anjocaido/groupmanager/data/User.java | 8 +-- .../groupmanager/events/GMGroupEvent.java | 56 +++++++++++++++++++++ .../groupmanager/events/GMSystemEvent.java | 32 ++++++++++++ .../anjocaido/groupmanager/events/GMUserEvent.java | 58 ++++++++++++++++++++++ .../groupmanager/events/GroupManagerEvent.java | 22 ++++++++ .../events/GroupManagerEventHandler.java | 42 ++++++++++++++++ 7 files changed, 217 insertions(+), 7 deletions(-) create mode 100644 EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java create mode 100644 EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java create mode 100644 EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java create mode 100644 EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEvent.java create mode 100644 EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEventHandler.java (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java index a0b50bf5b..5a39600b6 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java @@ -119,7 +119,7 @@ public class Group extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) { GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.INHERITANCE_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); } } @@ -127,7 +127,7 @@ public class Group extends DataUnit implements Cloneable { if (this.inherits.contains(inherit.toLowerCase())) { this.inherits.remove(inherit.toLowerCase()); flagAsChanged(); - GroupManagerEventHandler.callEvent(this, Action.INHERITANCE_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); return true; } return false; @@ -153,7 +153,7 @@ public class Group extends DataUnit implements Cloneable { flagAsChanged(); if (GroupManager.isLoaded()) { GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.INFO_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INFO_CHANGED); } } } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index 81d188c80..1f2be9875 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -143,7 +143,7 @@ public class User extends DataUnit implements Cloneable { if (notify) GroupManager.notify(this.getName(), String.format(" moved to the group %s.", group.getName())); - GroupManagerEventHandler.callEvent(this, Action.GROUP_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.USER_GROUP_CHANGED); } } @@ -161,7 +161,7 @@ public class User extends DataUnit implements Cloneable { if (GroupManager.isLoaded()) { if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.SUBGROUP_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); } } @@ -184,7 +184,7 @@ public class User extends DataUnit implements Cloneable { if (GroupManager.isLoaded()) if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.SUBGROUP_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); return true; } } catch (Exception e) { @@ -231,7 +231,7 @@ public class User extends DataUnit implements Cloneable { if (GroupManager.isLoaded()) { if (GroupManager.BukkitPermissions.player_join = false) GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.INFO_CHANGED); + GroupManagerEventHandler.callEvent(this, Action.USER_INFO_CHANGED); } } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java new file mode 100644 index 000000000..cd31758e5 --- /dev/null +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java @@ -0,0 +1,56 @@ +package org.anjocaido.groupmanager.events; + +import org.anjocaido.groupmanager.data.Group; + + +/** + * @author ElgarL + * + */ +public class GMGroupEvent extends GroupManagerEvent { + + /** + * + */ + private static final long serialVersionUID = -5294917600434510451L; + + protected Group group; + + protected String groupName; + + protected Action action; + + public GMGroupEvent(Group group, Action action) { + super(action.toString()); + + this.group = group; + this.action = action; + } + + public GMGroupEvent(String groupName, Action action) { + super(action.toString()); + + this.groupName = groupName; + this.action = action; + } + + public Action getAction(){ + return this.action; + } + + public Group getGroup() { + return group; + } + + public String getGroupName() { + return groupName; + } + + public enum Action { + GROUP_PERMISSIONS_CHANGED, + GROUP_INHERITANCE_CHANGED, + GROUP_INFO_CHANGED, + GROUP_ADDED, + GROUP_REMOVED, + } +} \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java new file mode 100644 index 000000000..f7ecf79de --- /dev/null +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java @@ -0,0 +1,32 @@ +package org.anjocaido.groupmanager.events; + + +/** + * @author ElgarL + * + */ +public class GMSystemEvent extends GroupManagerEvent { + + /** + * + */ + private static final long serialVersionUID = -8786811924448821548L; + protected Action action; + + public GMSystemEvent(Action action) { + super(action.toString()); + + this.action = action; + } + + public Action getAction(){ + return this.action; + } + + public enum Action { + RELOADED, + SAVED, + DEFAULT_GROUP_CHANGED, + VALIDATE_TOGGLE, + } +} \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java new file mode 100644 index 000000000..ef84b075e --- /dev/null +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java @@ -0,0 +1,58 @@ +package org.anjocaido.groupmanager.events; + +import org.anjocaido.groupmanager.data.User; + + +/** + * @author ElgarL + * + */ +public class GMUserEvent extends GroupManagerEvent { + + /** + * + */ + private static final long serialVersionUID = -5294917600434510451L; + + protected User user; + + protected String userName; + + protected Action action; + + public GMUserEvent(User user, Action action) { + super(action.toString()); + + this.user = user; + this.action = action; + } + + public GMUserEvent(String userName, Action action) { + super(action.toString()); + + this.userName = userName; + this.action = action; + } + + public Action getAction(){ + return this.action; + } + + public User getUser() { + return user; + } + + public String getUserName() { + return userName; + } + + public enum Action { + USER_PERMISSIONS_CHANGED, + USER_INHERITANCE_CHANGED, + USER_INFO_CHANGED, + USER_GROUP_CHANGED, + USER_SUBGROUP_CHANGED, + USER_ADDED, + USER_REMOVED, + } +} \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEvent.java new file mode 100644 index 000000000..856abbc28 --- /dev/null +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEvent.java @@ -0,0 +1,22 @@ +package org.anjocaido.groupmanager.events; + + +import org.bukkit.event.Event; + +/** + * @author ElgarL + * + */ +public abstract class GroupManagerEvent extends Event { + + /** + * + */ + private static final long serialVersionUID = 8790362185329926951L; + + protected GroupManagerEvent(String name) { + super(name); + } + + +} \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEventHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEventHandler.java new file mode 100644 index 000000000..83cac393d --- /dev/null +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GroupManagerEventHandler.java @@ -0,0 +1,42 @@ +package org.anjocaido.groupmanager.events; + +import org.anjocaido.groupmanager.GroupManager; +import org.anjocaido.groupmanager.data.Group; +import org.anjocaido.groupmanager.data.User; + + + +/** + * @author ElgarL + * + */ +public class GroupManagerEventHandler { + + protected static void callEvent(GMGroupEvent event) { + GroupManager.callEvent(event); + } + protected static void callEvent(GMUserEvent event) { + GroupManager.callEvent(event); + } + protected static void callEvent(GMSystemEvent event) { + GroupManager.callEvent(event); + } + + public static void callEvent(Group group, GMGroupEvent.Action action) { + callEvent(new GMGroupEvent(group, action)); + } + public static void callEvent(String groupName, GMGroupEvent.Action action) { + callEvent(new GMGroupEvent(groupName, action)); + } + + public static void callEvent(User user, GMUserEvent.Action action) { + callEvent(new GMUserEvent(user, action)); + } + public static void callEvent(String userName, GMUserEvent.Action action) { + callEvent(new GMUserEvent(userName, action)); + } + + public static void callEvent(GMSystemEvent.Action action) { + callEvent(new GMSystemEvent(action)); + } +} \ No newline at end of file -- cgit v1.2.3 From 559400c606775141397b691fce2385e541bf143b Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 13 Dec 2011 18:20:02 +0000 Subject: GM now registers with Bukkits ServicesManager. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../src/org/anjocaido/groupmanager/GroupManager.java | 8 ++++++++ .../src/org/anjocaido/groupmanager/events/GMGroupEvent.java | 1 + .../src/org/anjocaido/groupmanager/events/GMUserEvent.java | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 7561214fd..b3a95d830 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -83,4 +83,5 @@ v 1.6: v 1.7: - GM now supports offline players without having to mantogglevalidate - Offline player checks now support partial name matches. - - Added custom events so plugins can now be notified of changes within GroupManager. \ No newline at end of file + - Added custom events so plugins can now be notified of changes within GroupManager. + - GM now registers with Bukkits ServicesManager. \ 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 ab8eefb36..2d46e74c8 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -38,8 +38,10 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Event; +import org.bukkit.event.Event.Priority; import org.bukkit.event.world.WorldListener; import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; @@ -90,6 +92,9 @@ public class GroupManager extends JavaPlugin { @Override public void onDisable() { setLoaded(false); + + // Un-register this service. + this.getServer().getServicesManager().unregister(this); disableScheduler(); // Shutdown before we save, so it doesn't interfere. if (worldsHolder != null) { @@ -154,6 +159,9 @@ public class GroupManager extends JavaPlugin { } System.out.println(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!"); + + // Register as a service + this.getServer().getServicesManager().register(AnjoPermissionsHandler.class, this.permissionHandler, this, ServicePriority.Normal); } public static boolean isLoaded() { diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java index cd31758e5..9a44a21b8 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java @@ -25,6 +25,7 @@ public class GMGroupEvent extends GroupManagerEvent { this.group = group; this.action = action; + this.groupName = group.getName(); } public GMGroupEvent(String groupName, Action action) { diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java index ef84b075e..68483c036 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java @@ -25,6 +25,7 @@ public class GMUserEvent extends GroupManagerEvent { this.user = user; this.action = action; + this.userName = user.getName(); } public GMUserEvent(String userName, Action action) { -- cgit v1.2.3