diff options
author | ElgarL <ElgarL@palmergames.com> | 2013-01-09 14:38:00 +0000 |
---|---|---|
committer | ElgarL <ElgarL@palmergames.com> | 2013-01-09 14:38:00 +0000 |
commit | f25693026905df423b8e92f9cb252a292c50fcab (patch) | |
tree | cf0095a6a1a36a11a9694285020e555afe414728 /EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java | |
parent | cde95d832e0a1bbb51b3d0228def2356456a8c25 (diff) | |
download | Essentials-f25693026905df423b8e92f9cb252a292c50fcab.tar Essentials-f25693026905df423b8e92f9cb252a292c50fcab.tar.gz Essentials-f25693026905df423b8e92f9cb252a292c50fcab.tar.lz Essentials-f25693026905df423b8e92f9cb252a292c50fcab.tar.xz Essentials-f25693026905df423b8e92f9cb252a292c50fcab.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.java | 25 |
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 |