33import eu .okaeri .configs .ConfigManager ;
44import eu .okaeri .configs .yaml .snakeyaml .YamlSnakeYamlConfigurer ;
55import lombok .Getter ;
6- import lombok .extern .slf4j .Slf4j ;
76import me .daoge .allaymap .httpd .MapHttpServer ;
87import me .daoge .allaymap .listener .WorldEventListener ;
9- import me .daoge .allaymap .render .MapRenderer ;
108import me .daoge .allaymap .render .MapTileManager ;
119import org .allaymc .api .plugin .Plugin ;
1210import org .allaymc .api .server .Server ;
1715
1816/**
1917 * AllayMap - A minimalistic and lightweight world map viewer for Allay servers.
20- * Uses vanilla map rendering style similar to squaremap.
2118 *
2219 * @author daoge_cmd
2320 */
24- @ Slf4j
21+ @ Getter
2522public class AllayMap extends Plugin {
2623
2724 @ Getter
2825 private static AllayMap instance ;
2926
30- @ Getter
31- private AllayMapConfig config ;
27+ {
28+ instance = this ;
29+ }
3230
33- @ Getter
31+ private AllayMapConfig config ;
3432 private MapTileManager tileManager ;
35-
36- @ Getter
3733 private MapHttpServer httpServer ;
3834
3935 @ Override
4036 public void onLoad () {
41- instance = this ;
42- log .info ("AllayMap loading..." );
37+ this .pluginLogger .info ("AllayMap loading..." );
4338
4439 // Load configuration
4540 Path dataDir = getPluginContainer ().dataFolder ();
4641 try {
4742 Files .createDirectories (dataDir );
4843 } catch (IOException e ) {
49- log .error ("Failed to create data directory" , e );
44+ this . pluginLogger .error ("Failed to create data directory" , e );
5045 }
5146
52- config = ConfigManager .create (AllayMapConfig .class , cfg -> {
47+ this . config = ConfigManager .create (AllayMapConfig .class , cfg -> {
5348 cfg .withConfigurer (new YamlSnakeYamlConfigurer ());
5449 cfg .withBindFile (dataDir .resolve ("config.yml" ));
5550 cfg .withRemoveOrphans (true );
@@ -60,48 +55,26 @@ public void onLoad() {
6055
6156 @ Override
6257 public void onEnable () {
63- // Initialize colormap resources
64- MapRenderer .initColormaps ();
65-
6658 // Initialize tile manager
67- tileManager = new MapTileManager (getPluginContainer ().dataFolder ());
59+ this . tileManager = new MapTileManager (getPluginContainer ().dataFolder ());
6860
6961 // Register world event listener for chunk/block changes
70- WorldEventListener eventListener = new WorldEventListener (tileManager .getRenderQueue ());
71- Server .getInstance ().getEventBus ().registerListener (eventListener );
72- log .info ("Registered world event listener for map updates" );
73-
74- // Schedule periodic render task
75- int updateIntervalTicks = config .updateInterval () * 20 ; // Convert seconds to ticks
76- Server .getInstance ().getScheduler ().scheduleRepeating (this , () -> {
77- tileManager .processDirtyChunks ();
78- return true ; // Continue running
79- }, updateIntervalTicks );
80- log .info ("Scheduled map render task every {} seconds" , config .updateInterval ());
62+ Server .getInstance ().getEventBus ().registerListener (new WorldEventListener (this .tileManager .getRenderQueue ()));
8163
8264 // Start HTTP server
83- httpServer = new MapHttpServer (this , tileManager , config .httpPort ());
65+ this . httpServer = new MapHttpServer (this , this . tileManager , this . config .httpPort ());
8466 try {
85- httpServer .start ();
86- log . info ("AllayMap web interface available at http://localhost:{}" , config .httpPort ());
67+ this . httpServer .start ();
68+ this . pluginLogger . info ("AllayMap web interface available at http://localhost:{}" , this . config .httpPort ());
8769 } catch (IOException e ) {
88- log .error ("Failed to start HTTP server on port {}" , config .httpPort (), e );
89- log .info ("Try changing the port in config.yml" );
90- return ;
70+ this .pluginLogger .error ("Failed to start HTTP server on port {}" , this .config .httpPort (), e );
71+ this .pluginLogger .info ("Try changing the port in config.yml" );
9172 }
9273
9374 // Register commands
9475 registerCommands ();
9576
96- log .info ("AllayMap enabled successfully!" );
97- }
98-
99- @ Override
100- public void onDisable () {
101- if (httpServer != null ) {
102- httpServer .stop ();
103- }
104- log .info ("AllayMap disabled" );
77+ this .pluginLogger .info ("AllayMap enabled successfully!" );
10578 }
10679
10780 private void registerCommands () {
@@ -110,22 +83,8 @@ private void registerCommands() {
11083 }
11184
11285 @ Override
113- public boolean isReloadable () {
114- return true ;
115- }
116-
117- @ Override
118- public void reload () {
119- log .info ("Reloading AllayMap..." );
120-
121- // Reload config
122- config .load (true );
123-
124- // Clear tile cache
125- if (tileManager != null ) {
126- tileManager .clearCache ();
127- }
128-
129- log .info ("AllayMap reloaded" );
86+ public void onDisable () {
87+ this .httpServer .stop ();
88+ this .pluginLogger .info ("AllayMap disabled" );
13089 }
13190}
0 commit comments