4040import java .util .Timer ;
4141import java .util .TimerTask ;
4242import java .util .concurrent .atomic .AtomicInteger ;
43+ import java .util .function .Consumer ;
4344
4445public class MapUpdateService extends Thread {
4546
@@ -57,7 +58,9 @@ public class MapUpdateService extends Thread {
5758 private final Map <Vector2i , TimerTask > scheduledUpdates ;
5859 private final Cache <Vector2i , Long > lastUpdateTimes ;
5960
60- public MapUpdateService (RenderManager renderManager , BmMap map , Duration regionUpdateCooldown ) throws IOException {
61+ private final Consumer <String > verboseLog ;
62+
63+ public MapUpdateService (RenderManager renderManager , BmMap map , Duration regionUpdateCooldown , boolean verbose ) throws IOException {
6164 super ("BlueMap-MapUpdateService-" + NEXT_ID .getAndIncrement ());
6265 this .renderManager = renderManager ;
6366 this .map = map ;
@@ -68,13 +71,14 @@ public MapUpdateService(RenderManager renderManager, BmMap map, Duration regionU
6871 .expireAfterWrite (regionUpdateCooldown )
6972 .build ();
7073 this .watchService = map .getWorld ().createRegionWatchService ();
74+ this .verboseLog = verbose ? Logger .global ::logInfo : Logger .global ::logDebug ;
7175 }
7276
7377 @ Override
7478 public void run () {
7579 if (delayTimer == null ) delayTimer = new Timer ("BlueMap-RegionFileWatchService-DelayTimer" , true );
7680
77- Logger . global . logDebug ("Started watching map '" + map .getId () + "' for updates..." );
81+ verboseLog . accept ("Started watching map '" + map .getId () + "' for updates..." );
7882
7983 try {
8084 while (!closed )
@@ -85,7 +89,7 @@ public void run() {
8589 } catch (InterruptedException iex ) {
8690 Thread .currentThread ().interrupt ();
8791 } finally {
88- Logger . global . logDebug ("Stopped watching map '" + map .getId () + "' for updates." );
92+ verboseLog . accept ("Stopped watching map '" + map .getId () + "' for updates." );
8993 if (!closed ) {
9094 Logger .global .logWarning ("Region-file watch-service for map '" + map .getId () +
9195 "' stopped unexpectedly! (This map might not update automatically from now on)" );
@@ -109,7 +113,7 @@ public void run() {
109113 renderManager .scheduleRenderTask (task );
110114 lastUpdateTimes .put (regionPos , System .currentTimeMillis ());
111115
112- Logger . global . logDebug ("Scheduled update for region-file: " + regionPos + " (Map: " + map .getId () + ")" );
116+ verboseLog . accept ("Scheduled update for region-file: " + regionPos + " (Map: " + map .getId () + ")" );
113117 }
114118 }
115119 };
0 commit comments