Skip to content

Commit 3fd53c3

Browse files
committed
Implement all needed configs
1 parent d5d7ab4 commit 3fd53c3

File tree

3 files changed

+134
-0
lines changed

3 files changed

+134
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package it.renvins.serverpulse.bungeecord.config;
2+
3+
import it.renvins.serverpulse.bungeecord.ServerPulseBungeeCord;
4+
import lombok.Getter;
5+
import net.md_5.bungee.config.Configuration;
6+
import net.md_5.bungee.config.ConfigurationProvider;
7+
import net.md_5.bungee.config.YamlConfiguration;
8+
9+
import java.io.File;
10+
import java.io.IOException;
11+
import java.io.InputStream;
12+
import java.util.logging.Level;
13+
14+
public class BungeeCordConfiguration {
15+
16+
private final ServerPulseBungeeCord plugin;
17+
private final String name;
18+
19+
private File file;
20+
@Getter private Configuration config;
21+
22+
public BungeeCordConfiguration(ServerPulseBungeeCord plugin, String name) {
23+
this.plugin = plugin;
24+
this.name = name;
25+
}
26+
27+
public void load() {
28+
if (!plugin.getDataFolder().exists()) {
29+
plugin.getDataFolder().mkdir();
30+
}
31+
32+
file = new File(plugin.getDataFolder(), name);
33+
34+
if (!file.exists()) {
35+
// Copy default config from resources
36+
try (InputStream is = plugin.getResourceAsStream(name)) {
37+
is.transferTo(java.nio.file.Files.newOutputStream(file.toPath()));
38+
plugin.getLogger().info("Created default configuration file: " + name);
39+
} catch (Exception e) {
40+
plugin.getLogger().log(Level.SEVERE, "Failed to copy default config", e);
41+
}
42+
}
43+
try {
44+
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(file);
45+
} catch (IOException e) {
46+
plugin.getLogger().log(Level.SEVERE, "Failed to load config: " + name, e);
47+
}
48+
}
49+
50+
public void save() {
51+
if (file == null || config == null) {
52+
return;
53+
}
54+
try {
55+
ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, file);
56+
} catch (IOException e) {
57+
plugin.getLogger().log(Level.SEVERE, "Failed to save config!", e);
58+
}
59+
}
60+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package it.renvins.serverpulse.bungeecord.config;
2+
3+
import it.renvins.serverpulse.common.config.DatabaseConfiguration;
4+
import lombok.RequiredArgsConstructor;
5+
6+
@RequiredArgsConstructor
7+
public class BungeeCordDatabaseConfiguration implements DatabaseConfiguration {
8+
9+
private final BungeeCordConfiguration configuration;
10+
11+
@Override
12+
public String getHost() {
13+
return configuration.getConfig().getString("metrics.influxdb.url");
14+
}
15+
16+
@Override
17+
public String getOrg() {
18+
return configuration.getConfig().getString("metrics.influxdb.org");
19+
}
20+
21+
@Override
22+
public String getToken() {
23+
return configuration.getConfig().getString("metrics.influxdb.token");
24+
}
25+
26+
@Override
27+
public String getBucket() {
28+
return configuration.getConfig().getString("metrics.influxdb.bucket");
29+
}
30+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package it.renvins.serverpulse.bungeecord.config;
2+
3+
import it.renvins.serverpulse.common.config.MetricsConfiguration;
4+
import lombok.RequiredArgsConstructor;
5+
import net.md_5.bungee.config.Configuration;
6+
7+
import java.util.HashMap;
8+
import java.util.Map;
9+
10+
@RequiredArgsConstructor
11+
public class BungeeCordMetricsConfiguration implements MetricsConfiguration {
12+
13+
private final BungeeCordConfiguration configuration;
14+
15+
@Override
16+
public String getServerTag() {
17+
return configuration.getConfig().getString("metrics.tags.server");
18+
}
19+
20+
@Override
21+
public String getMeasurementTable() {
22+
return configuration.getConfig().getString("metrics.influxdb.table");
23+
}
24+
25+
@Override
26+
public long getMetricsInterval() {
27+
return configuration.getConfig().getLong("metrics.interval");
28+
}
29+
30+
@Override
31+
public Map<String, String> getTags() {
32+
Map<String, String> stringTags = new HashMap<>();
33+
Configuration tagsSection = configuration.getConfig().getSection("metrics.tags");
34+
if (tagsSection != null) {
35+
for (String key : tagsSection.getKeys()) {
36+
Object value = tagsSection.get(key);
37+
if (value instanceof String && !key.equalsIgnoreCase("server") && !key.equalsIgnoreCase("world")) {
38+
stringTags.put(key, (String) value);
39+
}
40+
}
41+
}
42+
return stringTags;
43+
}
44+
}

0 commit comments

Comments
 (0)