diff --git a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java index 22912ca5..50eeab3a 100644 --- a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java +++ b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java @@ -508,6 +508,10 @@ public class DynmapCore implements DynmapCommonAPI { mapManager = new MapManager(this, configuration); mapManager.startRendering(); + if (markerapi != null) { + MarkerAPIImpl.completeInitializeMarkerAPI(markerapi); + } + playerfacemgr = new PlayerFaces(this); updateConfigHashcode(); /* Initialize/update config hashcode */ diff --git a/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java b/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java index 750f032a..e2dc3788 100644 --- a/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java +++ b/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java @@ -394,7 +394,15 @@ public class MarkerAPIImpl implements MarkerAPI, Event.Listener { if(api.markerdir.mkdirs() == false) { /* Create directory if needed */ Log.severe("Error creating markers directory - " + api.markerdir.getPath()); } - } + } + return api; + } + /** + * Singleton initializer complete (after rendder pool available + * @param core - core object + * @return API object + */ + public static void completeInitializeMarkerAPI(MarkerAPIImpl api) { MapManager.scheduleDelayedJob(new Runnable() { public void run() { /* Now publish marker files to the tiles directory */ @@ -404,13 +412,13 @@ public class MarkerAPIImpl implements MarkerAPI, Event.Listener { /* Freshen files */ api.freshenMarkerFiles(); /* Add listener so we update marker files for other worlds as they become active */ - core.events.addListener("worldactivated", api); + api.core.events.addListener("worldactivated", api); api.scheduleWriteJob(); /* Start write job */ - } + + Log.info("Finish marker initialization"); + } }, 0); - - return api; } public void scheduleWriteJob() {