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<>();
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;
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>> 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.utilities.MiscUtils;
import org.apache.commons.dbcp2.BasicDataSource;
import org.sqlite.SQLiteException;
import java.sql.Connection;
import java.sql.SQLException;
@ -410,7 +409,7 @@ public abstract class SQLDB extends Database {
if (!usingMySQL) {
connection.commit();
}
} catch (SQLiteException e) {
} catch (SQLException e) {
if (!e.getMessage().contains("cannot commit")) {
Log.toLog(this.getClass().getName(), e);
}

View File

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

View File

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

View File

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

View File

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

View File

@ -354,7 +354,7 @@
<div class="card">
<div class="header">
<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>
</div>
</div>
@ -380,7 +380,7 @@
<div class="card">
<div class="header">
<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>
</div>
</div>

View File

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

File diff suppressed because it is too large Load Diff