File tree Expand file tree Collapse file tree 2 files changed +82
-0
lines changed
bungeecord/src/main/java/it/renvins/serverpulse/bungeecord Expand file tree Collapse file tree 2 files changed +82
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments