From 0b8118566c8559dc09a1b7d370f12f9394944b35 Mon Sep 17 00:00:00 2001 From: Stormboomer Date: Sat, 1 Jun 2019 20:03:10 +0200 Subject: [PATCH 1/2] Added functionality for restarting the scheduled job that stores markers to markers.yml. This should fix problems with markers not being stored after a dynmap reload, as well as vanishing markers. --- DynmapCore/src/main/java/org/dynmap/DynmapCore.java | 2 +- .../main/java/org/dynmap/markers/impl/MarkerAPIImpl.java | 2 +- spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java index dceb8ea1..16bd294f 100644 --- a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java +++ b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java @@ -140,7 +140,7 @@ public class DynmapCore implements DynmapCommonAPI { public boolean is_reload = false; public static boolean ignore_chunk_loads = false; /* Flag keep us from processing our own chunk loads */ - private MarkerAPIImpl markerapi; + public MarkerAPIImpl markerapi; private File dataDirectory; private File tilesDirectory; 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 3eb3692b..d22d7af3 100644 --- a/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java +++ b/DynmapCore/src/main/java/org/dynmap/markers/impl/MarkerAPIImpl.java @@ -407,7 +407,7 @@ public class MarkerAPIImpl implements MarkerAPI, Event.Listener { return api; } - private void scheduleWriteJob() { + public void scheduleWriteJob() { core.getServer().scheduleServerTask(new DoFileWrites(), 20); } diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index 23267bb3..e97356a1 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -790,6 +790,12 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { @Override public void onEnable() { + if(core != null){ + if(core.markerapi != null){ + getLogger().info("Starting Scheduled Write Job (markerAPI)."); + core.markerapi.scheduleWriteJob(); + } + } if (helper == null) { Log.info("Dynmap is disabled (unsupported platform)"); return; From 39053e36d9208173e179c560750baeae16414442 Mon Sep 17 00:00:00 2001 From: Stormboomer Date: Sun, 2 Jun 2019 13:27:19 +0200 Subject: [PATCH 2/2] added method to call marker save scheduled job to Dynmap Core, so that MarkerAPIImpl can be private and might not be used directly by other devs. --- DynmapCore/src/main/java/org/dynmap/DynmapCore.java | 6 ++++-- spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java index 16bd294f..82570a03 100644 --- a/DynmapCore/src/main/java/org/dynmap/DynmapCore.java +++ b/DynmapCore/src/main/java/org/dynmap/DynmapCore.java @@ -140,7 +140,7 @@ public class DynmapCore implements DynmapCommonAPI { public boolean is_reload = false; public static boolean ignore_chunk_loads = false; /* Flag keep us from processing our own chunk loads */ - public MarkerAPIImpl markerapi; + private MarkerAPIImpl markerapi; private File dataDirectory; private File tilesDirectory; @@ -159,7 +159,9 @@ public class DynmapCore implements DynmapCommonAPI { server = null; markerapi = null; } - + public void restartMarkerSaveJob(){ + this.markerapi.scheduleWriteJob(); + } // Set plugin jar file public void setPluginJarFile(File f) { jarfile = f; diff --git a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index e97356a1..518dd0c5 100644 --- a/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/spigot/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -791,9 +791,9 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { @Override public void onEnable() { if(core != null){ - if(core.markerapi != null){ + if(core.getMarkerAPI() != null){ getLogger().info("Starting Scheduled Write Job (markerAPI)."); - core.markerapi.scheduleWriteJob(); + core.restartMarkerSaveJob(); } } if (helper == null) {