From 09637f293ea760f6f05c5abc461c1ebd9c26024c Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Tue, 13 Sep 2011 09:00:35 +0800 Subject: [PATCH] Make marker API stay loaded across /dynmap reload (screws up API users otherwise) --- src/main/java/org/dynmap/DynmapPlugin.java | 7 +++---- src/main/java/org/dynmap/MarkersComponent.java | 16 +++++++--------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index 6e005452..12e7eaf6 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -368,10 +368,9 @@ public class DynmapPlugin extends JavaPlugin { ll.clear(); /* Empty list - we use presence of list to remember that we've registered with Bukkit */ } playerfacemgr = null; - if(markerapi != null) { - markerapi.cleanup(this); - markerapi = null; - } + + /* Don't clean up markerAPI - other plugins may still be accessing it */ + Debug.clearDebuggers(); } diff --git a/src/main/java/org/dynmap/MarkersComponent.java b/src/main/java/org/dynmap/MarkersComponent.java index 90e245c9..3077906d 100644 --- a/src/main/java/org/dynmap/MarkersComponent.java +++ b/src/main/java/org/dynmap/MarkersComponent.java @@ -22,9 +22,12 @@ public class MarkersComponent extends ClientComponent { public MarkersComponent(DynmapPlugin plugin, ConfigurationNode configuration) { super(plugin, configuration); - /* Register API with plugin */ - api = MarkerAPIImpl.initializeMarkerAPI(plugin); - plugin.registerMarkerAPI(api); + /* Register API with plugin, if needed */ + api = (MarkerAPIImpl)plugin.getMarkerAPI(); + if(api == null) { + api = MarkerAPIImpl.initializeMarkerAPI(plugin); + plugin.registerMarkerAPI(api); + } /* If configuration has enabled sign support, prime it too */ if(configuration.getBoolean("enablesigns", false)) { signmgr = MarkerSignManager.initializeSignManager(plugin); @@ -84,11 +87,6 @@ public class MarkersComponent extends ClientComponent { MarkerSignManager.terminateSignManager(this.plugin); signmgr = null; } - if(api != null) { - /* Clean up API registered with plugin */ - plugin.registerMarkerAPI(null); - api.cleanup(this.plugin); - api = null; - } + /* Don't unregister API - other plugins might be using it, and we want to keep non-persistent markers */ } }