summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java
diff options
context:
space:
mode:
authorElgarL <ElgarL@palmergames.com>2013-01-09 14:38:00 +0000
committerElgarL <ElgarL@palmergames.com>2013-01-09 14:38:00 +0000
commit767057512abbba410631ea2a29068b6fc79c92d0 (patch)
tree5f55ed2cdf98c3896ca766b6e87d9e59de291b2d /EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java
parent11022e868341b33292b74902935f33bf7ccaf833 (diff)
downloadEssentials-767057512abbba410631ea2a29068b6fc79c92d0.tar
Essentials-767057512abbba410631ea2a29068b6fc79c92d0.tar.gz
Essentials-767057512abbba410631ea2a29068b6fc79c92d0.tar.lz
Essentials-767057512abbba410631ea2a29068b6fc79c92d0.tar.xz
Essentials-767057512abbba410631ea2a29068b6fc79c92d0.zip
Synchronize the raising of GroupManager events to Bukkit.getServer()
(should prevent deadlocks).
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java25
1 files changed, 14 insertions, 11 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java
index d11581356..b89db6147 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java
@@ -1,7 +1,7 @@
package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
-import org.bukkit.Bukkit;
+import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
@@ -30,11 +30,12 @@ public class GMSystemEvent extends Event {
//////////////////////////////
protected Action action;
+ protected Server server;
public GMSystemEvent(Action action) {
super();
-
+
this.action = action;
}
@@ -49,14 +50,16 @@ public class GMSystemEvent extends Event {
public void schedule(final GMSystemEvent event) {
- if (Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Bukkit.getPluginManager().getPlugin("GroupManager"), new Runnable() {
-
- @Override
- public void run() {
-
- Bukkit.getServer().getPluginManager().callEvent(event);
- }
- }, 1) == -1)
- GroupManager.logger.warning("Could not schedule GM Event.");
+ synchronized (GroupManager.getGMEventHandler().getServer()) {
+ if (server.getScheduler().scheduleSyncDelayedTask(server.getPluginManager().getPlugin("GroupManager"), new Runnable() {
+
+ @Override
+ public void run() {
+
+ server.getPluginManager().callEvent(event);
+ }
+ }, 1) == -1)
+ GroupManager.logger.warning("Could not schedule GM Event.");
+ }
}
} \ No newline at end of file