mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-11-01 00:10:12 +01:00
Change player ping graph data format
HighCharts error 12 was occurring due to too many data points This commit changes player ping graph data to be served in format expected by turbo-mode so that it renders. Affects issues: - Fixed #3498
This commit is contained in:
parent
e1b4e34e77
commit
70e3f394ba
@ -28,15 +28,15 @@ import java.util.Objects;
|
||||
*/
|
||||
public class ServerSpecificLineGraph {
|
||||
|
||||
private final List<Double[]> points;
|
||||
private final List<Number[]> points;
|
||||
private final ServerDto server;
|
||||
|
||||
public ServerSpecificLineGraph(List<Double[]> points, ServerDto server) {
|
||||
public ServerSpecificLineGraph(List<Number[]> points, ServerDto server) {
|
||||
this.points = points;
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public List<Double[]> getPoints() {
|
||||
public List<Number[]> getPoints() {
|
||||
return points;
|
||||
}
|
||||
|
||||
|
@ -154,9 +154,9 @@ public class PlayerJSONCreator {
|
||||
private Map<String, Object> createPingGraphJson(PlayerContainer player) {
|
||||
PingGraph pingGraph = graphs.line().pingGraph(player.getUnsafe(PlayerKeys.PING));
|
||||
return Maps.builder(String.class, Object.class)
|
||||
.put("min_ping_series", pingGraph.getMinGraph().getPoints())
|
||||
.put("avg_ping_series", pingGraph.getAvgGraph().getPoints())
|
||||
.put("max_ping_series", pingGraph.getMaxGraph().getPoints())
|
||||
.put("min_ping_series", pingGraph.getMinGraph().getPointArrays())
|
||||
.put("avg_ping_series", pingGraph.getAvgGraph().getPointArrays())
|
||||
.put("max_ping_series", pingGraph.getMaxGraph().getPointArrays())
|
||||
.put("colors", Maps.builder(String.class, String.class)
|
||||
.put("min", theme.getValue(ThemeVal.GRAPH_MIN_PING))
|
||||
.put("avg", theme.getValue(ThemeVal.GRAPH_AVG_PING))
|
||||
|
@ -537,7 +537,7 @@ public class GraphJSONCreator {
|
||||
List<ServerSpecificLineGraph> proxyGraphs = new ArrayList<>();
|
||||
for (Server proxy : db.query(ServerQueries.fetchProxyServers())) {
|
||||
ServerUUID proxyUUID = proxy.getUuid();
|
||||
List<Double[]> points = Lists.map(
|
||||
List<Number[]> points = Lists.map(
|
||||
db.query(TPSQueries.fetchPlayersOnlineOfServer(halfYearAgo, now, proxyUUID)),
|
||||
point -> Point.fromDateObj(point).toArray()
|
||||
);
|
||||
|
@ -21,6 +21,7 @@ import com.djrapitops.plan.delivery.rendering.json.graphs.HighChart;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* This is a LineGraph for any set of Points, thus it is Abstract.
|
||||
@ -80,6 +81,10 @@ public class LineGraph implements HighChart {
|
||||
return points;
|
||||
}
|
||||
|
||||
public List<Number[]> getPointArrays() {
|
||||
return getPoints().stream().map(Point::toArray).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void addMissingPoints(StringBuilder arrayBuilder, Long lastX, long date) {
|
||||
long iterate = lastX + gapStrategy.diffToFirstGapPointMs;
|
||||
while (iterate < date) {
|
||||
|
@ -75,7 +75,7 @@ public class Point {
|
||||
"y=" + y + '}';
|
||||
}
|
||||
|
||||
public Double[] toArray() {
|
||||
return new Double[]{x, y};
|
||||
public Number[] toArray() {
|
||||
return new Number[]{x, y};
|
||||
}
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ public class FiltersJSONResolver implements Resolver {
|
||||
)).build();
|
||||
}
|
||||
|
||||
private List<Double[]> fetchViewGraphPoints() {
|
||||
private List<Number[]> fetchViewGraphPoints() {
|
||||
List<DateObj<Integer>> data = dbSystem.getDatabase().query(TPSQueries.fetchViewPreviewGraphData(serverInfo.getServerUUID()));
|
||||
Long earliestStart = dbSystem.getDatabase().query(SessionQueries.earliestSessionStart());
|
||||
data.add(0, new DateObj<>(earliestStart, 1));
|
||||
@ -136,9 +136,9 @@ public class FiltersJSONResolver implements Resolver {
|
||||
class FilterResponseDto {
|
||||
final List<FilterDto> filters;
|
||||
final ViewDto view;
|
||||
final List<Double[]> viewPoints;
|
||||
final List<Number[]> viewPoints;
|
||||
|
||||
public FilterResponseDto(Map<String, Filter> filtersByKind, ViewDto view, List<Double[]> viewPoints) {
|
||||
public FilterResponseDto(Map<String, Filter> filtersByKind, ViewDto view, List<Number[]> viewPoints) {
|
||||
this.viewPoints = viewPoints;
|
||||
this.filters = new ArrayList<>();
|
||||
for (Map.Entry<String, Filter> entry : filtersByKind.entrySet()) {
|
||||
|
Loading…
Reference in New Issue
Block a user