From 767057512abbba410631ea2a29068b6fc79c92d0 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Wed, 9 Jan 2013 14:38:00 +0000 Subject: Synchronize the raising of GroupManager events to Bukkit.getServer() (should prevent deadlocks). --- .../groupmanager/events/GMSystemEvent.java | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java') 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 -- cgit v1.2.3