Fixed some introduced bugs on Bungee:

- Fixed  &nbsp breaking the variable parsing of WebAPI
- Fixed NoClassDefError: SQLiteException on bungee
- Fixed NPE on analysis with 0 players
- Changed "No Sessions" to use <p> instead of <h3>
- Fixed player graphs not rendering on network page
This commit is contained in:
Rsl1122 2017-11-25 17:15:40 +02:00
parent 986515896a
commit 1c6375fde7
9 changed files with 70 additions and 3924 deletions

View File

@ -137,21 +137,26 @@ public class AnalysisData extends RawData {
List<String> healthNotes = new ArrayList<>(); List<String> healthNotes = new ArrayList<>();
TreeMap<Long, Map<String, Set<UUID>>> activityData = new TreeMap<>(); TreeMap<Long, Map<String, Set<UUID>>> activityData = new TreeMap<>();
for (PlayerProfile player : players) {
for (long date = now; date >= now - TimeAmount.MONTH.ms() * 2L; date -= TimeAmount.WEEK.ms() * 2L) {
double activityIndex = player.getActivityIndex(date);
String index = FormatUtils.readableActivityIndex(activityIndex)[1];
Map<String, Set<UUID>> map = activityData.getOrDefault(date, new HashMap<>());
Set<UUID> uuids = map.getOrDefault(index, new HashSet<>());
uuids.add(player.getUuid());
map.put(index, uuids);
activityData.put(date, map);
}
}
long fourWeeksAgo = now - TimeAmount.WEEK.ms() * 4L; long fourWeeksAgo = now - TimeAmount.WEEK.ms() * 4L;
if (!players.isEmpty()) {
for (PlayerProfile player : players) {
for (long date = now; date >= now - TimeAmount.MONTH.ms() * 2L; date -= TimeAmount.WEEK.ms() * 2L) {
double activityIndex = player.getActivityIndex(date);
String index = FormatUtils.readableActivityIndex(activityIndex)[1];
Map<String, Set<UUID>> map = activityData.getOrDefault(date, new HashMap<>());
Set<UUID> uuids = map.getOrDefault(index, new HashSet<>());
uuids.add(player.getUuid());
map.put(index, uuids);
activityData.put(date, map);
}
}
} else {
activityData.put(now, new HashMap<>());
activityData.put(fourWeeksAgo, new HashMap<>());
}
Map<String, Set<UUID>> activityNow = activityData.get(now); Map<String, Set<UUID>> activityNow = activityData.get(now);
Map<String, Set<UUID>> activityFourWAgo = activityData.get(fourWeeksAgo); Map<String, Set<UUID>> activityFourWAgo = activityData.get(fourWeeksAgo);

View File

@ -14,7 +14,6 @@ import main.java.com.djrapitops.plan.database.tables.*;
import main.java.com.djrapitops.plan.database.tables.move.Version8TransferTable; import main.java.com.djrapitops.plan.database.tables.move.Version8TransferTable;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import org.apache.commons.dbcp2.BasicDataSource; import org.apache.commons.dbcp2.BasicDataSource;
import org.sqlite.SQLiteException;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
@ -410,7 +409,7 @@ public abstract class SQLDB extends Database {
if (!usingMySQL) { if (!usingMySQL) {
connection.commit(); connection.commit();
} }
} catch (SQLiteException e) { } catch (SQLException e) {
if (!e.getMessage().contains("cannot commit")) { if (!e.getMessage().contains("cannot commit")) {
Log.toLog(this.getClass().getName(), e); Log.toLog(this.getClass().getName(), e);
} }

View File

@ -94,7 +94,7 @@ public abstract class WebAPI {
connection.setRequestMethod("POST"); connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("charset", "ISO-8859-1"); connection.setRequestProperty("charset", "UTF-8");
String parameters = parseVariables(); String parameters = parseVariables();
@ -185,13 +185,13 @@ public abstract class WebAPI {
String serverUUID = MiscUtils.getIPlan().getServerUuid().toString(); String serverUUID = MiscUtils.getIPlan().getServerUuid().toString();
parameters.append("sender=").append(serverUUID); parameters.append("sender=").append(serverUUID);
for (Map.Entry<String, String> entry : variables.entrySet()) { for (Map.Entry<String, String> entry : variables.entrySet()) {
parameters.append(";&").append(entry.getKey()).append("=").append(entry.getValue()); parameters.append(";&variable;").append(entry.getKey()).append("=").append(entry.getValue());
} }
return parameters.toString(); return parameters.toString();
} }
public static Map<String, String> readVariables(String requestBody) { public static Map<String, String> readVariables(String requestBody) {
String[] variables = requestBody.split(";&"); String[] variables = requestBody.split(";&variable;");
return Arrays.stream(variables) return Arrays.stream(variables)
.map(variable -> variable.split("=", 2)) .map(variable -> variable.split("=", 2))

View File

@ -364,7 +364,7 @@ public class HtmlStructure {
"<div class=\"panel panel-default\">" + "<div class=\"panel panel-default\">" +
"<div class=\"panel-heading\">" + "<div class=\"panel-heading\">" +
"<div class=\"row\">" + "<div class=\"row\">" +
"<div id=\"playerChart" + id + "\" style=\"height: 200px;\"></div>" + "<div id=\"playerChart" + id + "\" style=\"width: 100%; height: 200px;\"></div>" +
"</div></div>" + "</div></div>" +
"<div class=\"panel-body\">" + "<div class=\"panel-body\">" +
"<div class=\"row\">" + "<div class=\"row\">" +
@ -396,7 +396,7 @@ public class HtmlStructure {
"</script>" + "</script>" +
"<script>$(function () {" + "<script>$(function () {" +
"playersChartNoNav(playerChart" + id + ", playersOnlineSeries" + id + "playersChartNoNav(playerChart" + id + ", playersOnlineSeries" + id +
");}</script>"; ");})</script>";
} }
public static String parseOfflineServerContainer(String oldContent) { public static String parseOfflineServerContainer(String oldContent) {

View File

@ -35,7 +35,7 @@ public class SessionTabStructureCreator {
if (Verify.isEmpty(allSessions)) { if (Verify.isEmpty(allSessions)) {
return new String[]{"<div class=\"body\">" + return new String[]{"<div class=\"body\">" +
"<h3>No Sessions</h3>" + "<p>No Sessions</p>" +
"</div>", ""}; "</div>", ""};
} }

View File

@ -31,6 +31,9 @@
<!-- AdminBSB Themes. You can choose a theme from css/themes instead of get all themes --> <!-- AdminBSB Themes. You can choose a theme from css/themes instead of get all themes -->
<link href="css/themes/all-themes.css" rel="stylesheet"/> <link href="css/themes/all-themes.css" rel="stylesheet"/>
<!-- Jquery Core Js -->
<script src="plugins/jquery/jquery.min.js"></script>
</head> </head>
<body class="theme-red"> <body class="theme-red">
@ -288,9 +291,6 @@
</div> </div>
</section> </section>
<!-- Jquery Core Js -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap Core Js --> <!-- Bootstrap Core Js -->
<script src="plugins/bootstrap/js/bootstrap.js"></script> <script src="plugins/bootstrap/js/bootstrap.js"></script>
@ -355,9 +355,7 @@
openFunc(slideIndex)(); openFunc(slideIndex)();
// Chart draw scripts // Chart draw scripts
/*playersChart('playerChartDay', playersOnlineSeries, 1); playersChart('playerChartDay', playersOnlineSeries, 2);
${serverTabGraphViewFunctions}
/**/
function openFunc(i) { function openFunc(i) {
return function () { return function () {

View File

@ -354,7 +354,7 @@
<div class="card"> <div class="card">
<div class="header"> <div class="header">
<div class="row clearfix"> <div class="row clearfix">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<h2><i class="fa fa-id-badge"></i> Seen Nicknames</h2> <h2><i class="fa fa-id-badge"></i> Seen Nicknames</h2>
</div> </div>
</div> </div>
@ -380,7 +380,7 @@
<div class="card"> <div class="card">
<div class="header"> <div class="header">
<div class="row clearfix"> <div class="row clearfix">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<h2><i class="fa fa-wifi"></i> Connection Information</h2> <h2><i class="fa fa-wifi"></i> Connection Information</h2>
</div> </div>
</div> </div>

View File

@ -1097,8 +1097,8 @@
// Chart draw scripts // Chart draw scripts
activityPie('activityPie', activitySeries, ${playersTotal}, [${activityPieColors}]); activityPie('activityPie', activitySeries, ${playersTotal}, [${activityPieColors}]);
worldPie('worldPie', worldSeries, gmSeries); worldPie('worldPie', worldSeries, gmSeries);
playersChart('playerChartDay', playersOnlineSeries, 1); playersChart('playerChartDay', playersOnlineSeries, 3);
playersChart('playerChartMonth', playersOnlineSeries, 4); playersChart('playerChartMonth', playersOnlineSeries, 2);
performanceChart('performanceGraph', playersOnlineSeries, tpsSeries, cpuSeries, ramSeries, entitySeries, chunkSeries); performanceChart('performanceGraph', playersOnlineSeries, tpsSeries, cpuSeries, ramSeries, entitySeries, chunkSeries);
tpsChart('tpsGraph', tpsSeries, playersOnlineSeries); tpsChart('tpsGraph', tpsSeries, playersOnlineSeries);
resourceChart('resourceGraph', cpuSeries, ramSeries, playersOnlineSeries); resourceChart('resourceGraph', cpuSeries, ramSeries, playersOnlineSeries);

File diff suppressed because it is too large Load Diff