2
2
3
3
import java .util .logging .Logger ;
4
4
5
+ import it .renvins .serverpulse .api .ServerPulseProvider ;
6
+ import it .renvins .serverpulse .api .metrics .IDiskRetriever ;
7
+ import it .renvins .serverpulse .api .metrics .IPingRetriever ;
8
+ import it .renvins .serverpulse .api .metrics .ITPSRetriever ;
9
+ import it .renvins .serverpulse .api .service .IDatabaseService ;
10
+ import it .renvins .serverpulse .api .service .IMetricsService ;
11
+ import it .renvins .serverpulse .common .DatabaseService ;
12
+ import it .renvins .serverpulse .common .MetricsService ;
13
+ import it .renvins .serverpulse .common .config .DatabaseConfiguration ;
14
+ import it .renvins .serverpulse .common .config .MetricsConfiguration ;
15
+ import it .renvins .serverpulse .common .logger .PulseLogger ;
16
+ import it .renvins .serverpulse .common .metrics .DiskRetriever ;
17
+ import it .renvins .serverpulse .common .platform .Platform ;
18
+ import it .renvins .serverpulse .common .scheduler .TaskScheduler ;
19
+ import it .renvins .serverpulse .fabric .config .FabricConfiguration ;
20
+ import it .renvins .serverpulse .fabric .config .FabricDatabaseConfiguration ;
21
+ import it .renvins .serverpulse .fabric .config .FabricMetricsConfiguration ;
22
+ import it .renvins .serverpulse .fabric .logger .FabricLogger ;
23
+ import it .renvins .serverpulse .fabric .metrics .FabricPingRetriever ;
24
+ import it .renvins .serverpulse .fabric .metrics .FabricTPSRetriever ;
25
+ import it .renvins .serverpulse .fabric .platform .FabricPlatform ;
26
+ import it .renvins .serverpulse .fabric .task .FabricScheduler ;
5
27
import lombok .Getter ;
6
28
import net .fabricmc .api .ModInitializer ;
7
29
import net .fabricmc .fabric .api .event .lifecycle .v1 .ServerLifecycleEvents ;
30
+ import net .fabricmc .loader .api .FabricLoader ;
8
31
import net .minecraft .server .MinecraftServer ;
9
32
10
33
public class ServerPulseFabric implements ModInitializer {
11
34
12
35
public static final String MOD_ID = "serverpulse" ;
13
36
public static final Logger LOGGER = Logger .getLogger (MOD_ID );
14
37
38
+ private final FabricConfiguration config ;
39
+
40
+ private final Platform platform ;
41
+
42
+ private final IDatabaseService databaseService ;
43
+ private final IMetricsService metricsService ;
44
+
45
+ private final ITPSRetriever tpsRetriever ;
46
+ private final IDiskRetriever diskRetriever ;
47
+ private final IPingRetriever pingRetriever ;
48
+
49
+ public ServerPulseFabric () {
50
+ this .config = new FabricConfiguration (FabricLoader .getInstance ().getConfigDir (), "config.yml" );
51
+
52
+ PulseLogger logger = new FabricLogger ();
53
+
54
+ this .platform = new FabricPlatform (this );
55
+ TaskScheduler scheduler = new FabricScheduler ();
56
+
57
+ DatabaseConfiguration dbConfig = new FabricDatabaseConfiguration (config );
58
+ MetricsConfiguration metricsConfig = new FabricMetricsConfiguration (config );
59
+
60
+ this .databaseService = new DatabaseService (logger , platform , dbConfig , scheduler );
61
+ this .metricsService = new MetricsService (logger , platform , metricsConfig , scheduler );
62
+
63
+ this .tpsRetriever = new FabricTPSRetriever (scheduler );
64
+ this .diskRetriever = new DiskRetriever (FabricLoader .getInstance ().getGameDir ().toFile ());
65
+ this .pingRetriever = new FabricPingRetriever (this );
66
+ }
67
+
15
68
@ Getter private MinecraftServer server ;
16
69
17
70
@ Override
@@ -25,10 +78,28 @@ public void onInitialize() {
25
78
private void onServerStarting (MinecraftServer server ) {
26
79
LOGGER .info ("ServerPulse is starting..." );
27
80
this .server = server ;
81
+
82
+ config .load ();
83
+
84
+ ServerPulseProvider .register (new ServerPulseFabricAPI (databaseService , metricsService , tpsRetriever , diskRetriever , pingRetriever ));
85
+
86
+ databaseService .load ();
87
+ if (!platform .isEnabled ()) {
88
+ return ;
89
+ }
90
+ metricsService .load ();
91
+
92
+ LOGGER .info ("Starting tick monitoring task..." );
93
+ ((FabricTPSRetriever ) tpsRetriever ).startTickMonitor ();
28
94
}
29
95
30
96
private void onServerStopped (MinecraftServer server ) {
31
97
LOGGER .info ("ServerPulse is stopping..." );
98
+
99
+ databaseService .unload ();
100
+ metricsService .unload ();
101
+
102
+ ServerPulseProvider .unregister ();
32
103
this .server = null ;
33
104
}
34
105
}
0 commit comments