Skip to content

Commit 65bcabc

Browse files
committed
Version 3.2.0
- Add Metrics for bStats
1 parent 183b920 commit 65bcabc

8 files changed

Lines changed: 116 additions & 4 deletions

File tree

bungeecord/pom.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@
7070
<artifactId>configurate-yaml</artifactId>
7171
<version>3.7.2</version>
7272
</dependency>
73+
<dependency>
74+
<groupId>org.bstats</groupId>
75+
<artifactId>bstats-bungeecord</artifactId>
76+
<version>2.2.1</version>
77+
<scope>compile</scope>
78+
</dependency>
7379
</dependencies>
7480

7581
<build>
@@ -95,7 +101,11 @@
95101
<relocations>
96102
<relocation>
97103
<pattern>ninja.leaping.configurate</pattern>
98-
<shadedPattern>com.andre601.oneversionremake.dependencies.configurate</shadedPattern>
104+
<shadedPattern>com.andre601.oneversionremake.bungeecord.dependencies.configurate</shadedPattern>
105+
</relocation>
106+
<relocation>
107+
<pattern>org.bstats</pattern>
108+
<shadedPattern>com.andre601.oneversionremake.bungeecord.dependencies.bstats</shadedPattern>
99109
</relocation>
100110
</relocations>
101111
</configuration>

bungeecord/src/main/java/com/andre601/oneversionremake/bungeecord/BungeeCore.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,20 @@
2323
import com.andre601.oneversionremake.bungeecord.listener.BungeePingListener;
2424
import com.andre601.oneversionremake.bungeecord.logging.BungeeLogger;
2525
import com.andre601.oneversionremake.core.OneVersionRemake;
26+
import com.andre601.oneversionremake.core.enums.ProtocolVersion;
2627
import com.andre601.oneversionremake.core.enums.ProxyPlatform;
2728
import com.andre601.oneversionremake.core.files.ConfigHandler;
2829
import com.andre601.oneversionremake.core.interfaces.PluginCore;
2930
import com.andre601.oneversionremake.core.interfaces.ProxyLogger;
3031
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
3132
import net.md_5.bungee.api.plugin.Plugin;
33+
import org.bstats.bungeecord.Metrics;
34+
import org.bstats.charts.DrilldownPie;
3235

3336
import java.nio.file.Path;
37+
import java.util.HashMap;
38+
import java.util.List;
39+
import java.util.Map;
3440

3541
public class BungeeCore extends Plugin implements PluginCore{
3642

@@ -63,6 +69,39 @@ public void setConfigHandler(ConfigHandler configHandler){
6369
this.configHandler = configHandler;
6470
}
6571

72+
@Override
73+
public void loadMetrics(){
74+
Metrics metrics = new Metrics(this, 10340);
75+
76+
metrics.addCustomChart(new DrilldownPie("allowed_versions", () -> {
77+
Map<String, Map<String, Integer>> map = new HashMap<>();
78+
Map<String, Integer> entry = new HashMap<>();
79+
80+
List<Integer> protocolVersions = getConfigHandler().getIntList("Protocol", "Versions");
81+
if(protocolVersions.isEmpty()){
82+
String unknown = ProtocolVersion.getFriendlyName(0);
83+
entry.put(unknown, 1);
84+
map.put("other", entry);
85+
86+
return map;
87+
}
88+
89+
for(int version : protocolVersions){
90+
String major = ProtocolVersion.getMajor(version);
91+
String name = ProtocolVersion.getFriendlyName(version);
92+
93+
entry.put(name, 1);
94+
if(major.equalsIgnoreCase("?")){
95+
map.put("other", entry);
96+
}else{
97+
map.put(major, entry);
98+
}
99+
}
100+
101+
return map;
102+
}));
103+
}
104+
66105
@Override
67106
public boolean reloadConfig(){
68107
return core.reloadConfig();
@@ -96,4 +135,6 @@ public ConfigHandler getConfigHandler(){
96135
public String getVersion(){
97136
return core.getVersion();
98137
}
138+
139+
// 10340
99140
}

core/src/main/java/com/andre601/oneversionremake/core/OneVersionRemake.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ private void start(){
9090
pluginCore.loadEventListeners();
9191
logger.info("Event Listeners loaded!");
9292

93+
logger.info("Loading Metrics...");
94+
pluginCore.loadMetrics();
95+
logger.info("Metrics loaded!");
96+
9397
logger.info("OneVersionRemake is ready!");
9498
}
9599

core/src/main/java/com/andre601/oneversionremake/core/enums/ProtocolVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static String getFriendlyNames(List<Integer> protocols, boolean majorOnly
8888
.collect(Collectors.joining(", "));
8989
}
9090

91-
private static String getMajor(int protocol){
91+
public static String getMajor(int protocol){
9292
for(ProtocolVersion version : values()){
9393
if(version.getProtocol() == protocol)
9494
return version.getMajor();

core/src/main/java/com/andre601/oneversionremake/core/interfaces/PluginCore.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public interface PluginCore{
3131

3232
void setConfigHandler(ConfigHandler configHandler);
3333

34+
void loadMetrics();
35+
3436
boolean reloadConfig();
3537

3638
Path getPath();

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<properties>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14-
<plugin.version>3.1.1</plugin.version>
14+
<plugin.version>3.2.0</plugin.version>
1515
<maven.compiler.target>1.8</maven.compiler.target>
1616
<maven.compiler.source>1.8</maven.compiler.source>
1717
</properties>

velocity/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@
6262
<version>4.0.0-SNAPSHOT</version>
6363
<scope>compile</scope>
6464
</dependency>
65+
<dependency>
66+
<groupId>org.bstats</groupId>
67+
<artifactId>bstats-velocity</artifactId>
68+
<version>2.2.1</version>
69+
<scope>compile</scope>
70+
</dependency>
6571
</dependencies>
6672

6773
<build>
@@ -84,6 +90,12 @@
8490
<version>3.2.4</version>
8591
<configuration>
8692
<minimizeJar>true</minimizeJar>
93+
<relocations>
94+
<relocation>
95+
<pattern>org.bstats</pattern>
96+
<shadedPattern>com.andre601.oneversionremake.velocity.dependencies.bstats</shadedPattern>
97+
</relocation>
98+
</relocations>
8799
</configuration>
88100
<executions>
89101
<execution>

velocity/src/main/java/com/andre601/oneversionremake/velocity/VelocityCore.java

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package com.andre601.oneversionremake.velocity;
2020

2121
import com.andre601.oneversionremake.core.OneVersionRemake;
22+
import com.andre601.oneversionremake.core.enums.ProtocolVersion;
2223
import com.andre601.oneversionremake.core.enums.ProxyPlatform;
2324
import com.andre601.oneversionremake.core.files.ConfigHandler;
2425
import com.andre601.oneversionremake.core.interfaces.PluginCore;
@@ -33,25 +34,34 @@
3334
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
3435
import com.velocitypowered.api.plugin.annotation.DataDirectory;
3536
import com.velocitypowered.api.proxy.ProxyServer;
37+
import org.bstats.charts.DrilldownPie;
38+
import org.bstats.velocity.Metrics;
3639
import org.slf4j.LoggerFactory;
3740

3841
import java.nio.file.Path;
42+
import java.util.HashMap;
43+
import java.util.List;
44+
import java.util.Map;
3945

4046
public class VelocityCore implements PluginCore{
4147

4248
private final ProxyLogger logger;
4349
private final ProxyServer proxy;
4450
private final Path path;
4551

52+
private final Metrics.Factory factory;
53+
4654
private OneVersionRemake core;
4755

4856
private ConfigHandler configHandler = null;
4957

5058
@Inject
51-
public VelocityCore(ProxyServer proxy, @DataDirectory Path path){
59+
public VelocityCore(ProxyServer proxy, @DataDirectory Path path, Metrics.Factory factory){
5260
this.logger = new VelocityLogger(LoggerFactory.getLogger("OneVersionRemake"));
5361
this.proxy = proxy;
5462
this.path = path;
63+
64+
this.factory = factory;
5565
}
5666

5767
@Subscribe
@@ -81,6 +91,39 @@ public void setConfigHandler(ConfigHandler configHandler){
8191
this.configHandler = configHandler;
8292
}
8393

94+
@Override
95+
public void loadMetrics(){
96+
Metrics metrics = factory.make(this, 10341);
97+
98+
metrics.addCustomChart(new DrilldownPie("allowed_versions", () -> {
99+
Map<String, Map<String, Integer>> map = new HashMap<>();
100+
Map<String, Integer> entry = new HashMap<>();
101+
102+
List<Integer> protocolVersions = getConfigHandler().getIntList("Protocol", "Versions");
103+
if(protocolVersions.isEmpty()){
104+
String unknown = ProtocolVersion.getFriendlyName(0);
105+
entry.put(unknown, 1);
106+
map.put("other", entry);
107+
108+
return map;
109+
}
110+
111+
for(int version : protocolVersions){
112+
String major = ProtocolVersion.getMajor(version);
113+
String name = ProtocolVersion.getFriendlyName(version);
114+
115+
entry.put(name, 1);
116+
if(major.equalsIgnoreCase("?")){
117+
map.put("other", entry);
118+
}else{
119+
map.put(major, entry);
120+
}
121+
}
122+
123+
return map;
124+
}));
125+
}
126+
84127
@Override
85128
public boolean reloadConfig(){
86129
return core.reloadConfig();

0 commit comments

Comments
 (0)