Skip to content

Commit 136fd4b

Browse files
committed
Add platform and ping retriever
1 parent 42b9dc2 commit 136fd4b

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package it.renvins.serverpulse.bungeecord.metrics;
2+
3+
import it.renvins.serverpulse.api.metrics.IPingRetriever;
4+
import it.renvins.serverpulse.bungeecord.ServerPulseBungeeCord;
5+
import lombok.RequiredArgsConstructor;
6+
import net.md_5.bungee.api.connection.ProxiedPlayer;
7+
8+
@RequiredArgsConstructor
9+
public class BungeeCordPingRetriever implements IPingRetriever {
10+
11+
private final ServerPulseBungeeCord plugin;
12+
13+
@Override
14+
public int getMinPing() {
15+
int minPing = Integer.MAX_VALUE;
16+
if (plugin.getProxy().getPlayers().isEmpty()) {
17+
return 0;
18+
}
19+
for (ProxiedPlayer player : plugin.getProxy().getPlayers()) {
20+
minPing = Math.min(minPing, player.getPing());
21+
}
22+
return minPing;
23+
}
24+
25+
@Override
26+
public int getMaxPing() {
27+
int maxPing = 0;
28+
if (plugin.getProxy().getPlayers().isEmpty()) {
29+
return 0;
30+
}
31+
for (ProxiedPlayer player : plugin.getProxy().getPlayers()) {
32+
maxPing = Math.max(maxPing, player.getPing());
33+
}
34+
return maxPing;
35+
}
36+
37+
@Override
38+
public int getAveragePing() {
39+
int totalPing = 0;
40+
int playerCount = plugin.getProxy().getPlayers().size();
41+
if (playerCount == 0) {
42+
return 0;
43+
}
44+
for (ProxiedPlayer player : plugin.getProxy().getPlayers()) {
45+
totalPing += player.getPing();
46+
}
47+
return totalPing / playerCount;
48+
}
49+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package it.renvins.serverpulse.bungeecord.platform;
2+
3+
import it.renvins.serverpulse.bungeecord.ServerPulseBungeeCord;
4+
import it.renvins.serverpulse.common.platform.Platform;
5+
import lombok.RequiredArgsConstructor;
6+
7+
@RequiredArgsConstructor
8+
public class BungeeCordPlatform implements Platform {
9+
10+
private final ServerPulseBungeeCord plugin;
11+
12+
// Needs to be done in this horrible way here in Bungee
13+
@Override
14+
public boolean isEnabled() {
15+
return plugin != null &&
16+
plugin.getProxy().getPluginManager().getPlugin(plugin.getDescription().getName()) != null;
17+
}
18+
19+
@Override
20+
public void disable() {
21+
plugin.getProxy().stop();
22+
}
23+
24+
@Override
25+
public boolean isPrimaryThread() {
26+
return true;
27+
}
28+
29+
@Override
30+
public int getOnlinePlayerCount() {
31+
return plugin.getProxy().getOnlineCount();
32+
}
33+
}

0 commit comments

Comments
 (0)