Skip to content

Commit ae73261

Browse files
committed
Some refactoring
Refactor ServerPulseVelocity to integrate Velocity-specific services and configurations, enhance logging, and implement metrics retrieval
1 parent 20b4803 commit ae73261

File tree

4 files changed

+71
-17
lines changed

4 files changed

+71
-17
lines changed

velocity/src/main/java/it/renvins/serverpulse/velocity/ServerPulseVelocity.java

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,26 @@
99
import com.velocitypowered.api.plugin.Plugin;
1010
import com.velocitypowered.api.plugin.annotation.DataDirectory;
1111
import com.velocitypowered.api.proxy.ProxyServer;
12+
import it.renvins.serverpulse.api.ServerPulseProvider;
13+
import it.renvins.serverpulse.api.metrics.IDiskRetriever;
14+
import it.renvins.serverpulse.api.metrics.IPingRetriever;
1215
import it.renvins.serverpulse.api.service.IDatabaseService;
1316
import it.renvins.serverpulse.api.service.IMetricsService;
1417
import it.renvins.serverpulse.common.DatabaseService;
1518
import it.renvins.serverpulse.common.MetricsService;
1619
import it.renvins.serverpulse.common.config.DatabaseConfiguration;
20+
import it.renvins.serverpulse.common.config.MetricsConfiguration;
21+
import it.renvins.serverpulse.common.logger.PulseLogger;
22+
import it.renvins.serverpulse.common.metrics.DiskRetriever;
23+
import it.renvins.serverpulse.common.platform.Platform;
24+
import it.renvins.serverpulse.common.scheduler.TaskScheduler;
25+
import it.renvins.serverpulse.velocity.config.VelocityConfiguration;
26+
import it.renvins.serverpulse.velocity.config.VelocityDatabaseConfiguration;
27+
import it.renvins.serverpulse.velocity.config.VelocityMetricsConfiguration;
28+
import it.renvins.serverpulse.velocity.logger.VelocityLogger;
29+
import it.renvins.serverpulse.velocity.metrics.VelocityPingRetriever;
30+
import it.renvins.serverpulse.velocity.platform.VelocityPlatform;
31+
import it.renvins.serverpulse.velocity.scheduler.VelocityTaskScheduler;
1732
import lombok.Getter;
1833
import org.slf4j.Logger;
1934

@@ -22,25 +37,55 @@
2237
public class ServerPulseVelocity {
2338

2439
@Getter private final ProxyServer server;
25-
private final Logger logger;
2640
private final Path dataDirectory;
41+
private final PulseLogger logger;
42+
43+
private final VelocityConfiguration config;
44+
45+
private final IDiskRetriever diskRetriever;
46+
private final IPingRetriever pingRetriever;
2747

2848
private IDatabaseService databaseService;
2949
private IMetricsService metricsService;
3050

3151
@Inject
32-
public ServerPulseVelocity(ProxyServer server, Logger logger, @DataDirectory Path dataDirectory) {
52+
public ServerPulseVelocity(ProxyServer server, @DataDirectory Path dataDirectory, Logger logger) {
3353
this.server = server;
34-
this.logger = logger;
3554
this.dataDirectory = dataDirectory;
55+
56+
this.logger = new VelocityLogger(logger);
57+
this.config = new VelocityConfiguration(logger, dataDirectory, "config.yml");
58+
59+
this.diskRetriever = new DiskRetriever(dataDirectory.toFile());
60+
this.pingRetriever = new VelocityPingRetriever(this);
3661
}
3762

3863
@Subscribe
3964
public void onProxyInitialization() {
40-
this.databaseService = new DatabaseService();
41-
this.metricsService = new MetricsService();
42-
}
65+
logger.info("Loading configuration file...");
66+
config.load();
67+
68+
if(!config.getConfig().getBoolean("metrics.enabled")) {
69+
logger.error("Shutting down the plugin because metrics are disabled!");
70+
server.shutdown();
71+
72+
return;
73+
}
74+
databaseService.load();
75+
if (server.isShuttingDown()) {
76+
return;
77+
}
78+
79+
DatabaseConfiguration dbConfig = new VelocityDatabaseConfiguration(config);
80+
MetricsConfiguration metricsConfig = new VelocityMetricsConfiguration(config);
81+
82+
Platform platform = new VelocityPlatform(this);
83+
TaskScheduler scheduler = new VelocityTaskScheduler(this);
84+
85+
this.databaseService = new DatabaseService(logger, platform, dbConfig, scheduler);
86+
this.metricsService = new MetricsService(logger, platform, metricsConfig, scheduler);
4387

44-
private void loadConfig() {
88+
metricsService.load();
89+
ServerPulseProvider.register(new ServerPulseVelocityAPI(databaseService, metricsService, diskRetriever, pingRetriever));
4590
}
4691
}

velocity/src/main/java/it/renvins/serverpulse/velocity/ServerPulseVelocityAPI.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,33 @@
66
import it.renvins.serverpulse.api.metrics.ITPSRetriever;
77
import it.renvins.serverpulse.api.service.IDatabaseService;
88
import it.renvins.serverpulse.api.service.IMetricsService;
9+
import lombok.RequiredArgsConstructor;
910

11+
@RequiredArgsConstructor
1012
public class ServerPulseVelocityAPI implements ServerPulseAPI {
1113

14+
private final IDatabaseService databaseService;
15+
private final IMetricsService metricsService;
16+
private final IDiskRetriever diskRetriever;
17+
private final IPingRetriever pingRetriever;
18+
1219
@Override
1320
public IDatabaseService getDatabaseService() {
14-
return null;
21+
return databaseService;
1522
}
1623

1724
@Override
1825
public IMetricsService getMetricsService() {
19-
return null;
20-
}
21-
22-
@Override
23-
public ITPSRetriever getTPSRetriever() {
24-
return null;
26+
return metricsService;
2527
}
2628

2729
@Override
2830
public IDiskRetriever getDiskRetriever() {
29-
return null;
31+
return diskRetriever;
3032
}
3133

3234
@Override
3335
public IPingRetriever getPingRetriever() {
34-
return null;
36+
return pingRetriever;
3537
}
3638
}

velocity/src/main/java/it/renvins/serverpulse/velocity/config/VelocityConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ private boolean copyDefaultsFromResource() {
5252
if (in != null) {
5353
Files.copy(in, config.getConfigurationFile().toPath());
5454
return true;
55+
} else {
56+
return false;
5557
}
5658
} catch (IOException e) {
5759
logger.error("Failed to copy default configuration file: " + name, e);

velocity/src/main/java/it/renvins/serverpulse/velocity/logger/VelocityLogger.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ public void info(String message) {
1515
}
1616

1717
@Override
18-
public void warn(String message) {
18+
public void warning(String message) {
1919
logger.warn(message);
2020
}
2121

22+
@Override
23+
public void error(String message) {
24+
logger.error(message);
25+
}
26+
2227
@Override
2328
public void error(String message, Throwable throwable) {
2429
logger.error(message, throwable);

0 commit comments

Comments
 (0)