mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-01-01 14:07:54 +01:00
Fixed nickname display on Actions table, PluginData (Bans) now affect ban info
This commit is contained in:
parent
382080aae1
commit
7e79ec02d2
@ -236,7 +236,7 @@ public class HealthNotes {
|
|||||||
} else {
|
} else {
|
||||||
healthNotes.add("<p>" + Html.RED_WARN.parse() + " Total Server downtime (No Data) was "
|
healthNotes.add("<p>" + Html.RED_WARN.parse() + " Total Server downtime (No Data) was "
|
||||||
+ FormatUtils.formatTimeAmount(serverDownTime) + "</p>");
|
+ FormatUtils.formatTimeAmount(serverDownTime) + "</p>");
|
||||||
serverHealth *= serverDownTime * 1.0 / TimeAmount.MONTH.ms();
|
serverHealth *= (TimeAmount.MONTH.ms() - serverDownTime) * 1.0 / TimeAmount.MONTH.ms();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import main.java.com.djrapitops.plan.data.AnalysisData;
|
|||||||
import main.java.com.djrapitops.plan.data.PlayerProfile;
|
import main.java.com.djrapitops.plan.data.PlayerProfile;
|
||||||
import main.java.com.djrapitops.plan.data.ServerProfile;
|
import main.java.com.djrapitops.plan.data.ServerProfile;
|
||||||
import main.java.com.djrapitops.plan.data.element.AnalysisContainer;
|
import main.java.com.djrapitops.plan.data.element.AnalysisContainer;
|
||||||
|
import main.java.com.djrapitops.plan.data.plugin.BanData;
|
||||||
import main.java.com.djrapitops.plan.data.plugin.PluginData;
|
import main.java.com.djrapitops.plan.data.plugin.PluginData;
|
||||||
import main.java.com.djrapitops.plan.database.Database;
|
import main.java.com.djrapitops.plan.database.Database;
|
||||||
import main.java.com.djrapitops.plan.settings.Settings;
|
import main.java.com.djrapitops.plan.settings.Settings;
|
||||||
@ -23,6 +24,7 @@ import main.java.com.djrapitops.plan.systems.webserver.response.ErrorResponse;
|
|||||||
import main.java.com.djrapitops.plan.systems.webserver.response.InternalErrorResponse;
|
import main.java.com.djrapitops.plan.systems.webserver.response.InternalErrorResponse;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Rsl1122
|
* @author Rsl1122
|
||||||
@ -115,13 +117,11 @@ public class Analysis {
|
|||||||
serverProfile = profile;
|
serverProfile = profile;
|
||||||
|
|
||||||
for (PlayerProfile player : profile.getPlayers()) {
|
for (PlayerProfile player : profile.getPlayers()) {
|
||||||
|
|
||||||
dataCache.updateNames(player.getUuid(), player.getName(), null);
|
dataCache.updateNames(player.getUuid(), player.getName(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
long fetchPhaseLength = Benchmark.stop("Analysis", "Fetch Phase");
|
long fetchPhaseLength = Benchmark.stop("Analysis", "Fetch Phase");
|
||||||
|
setBannedByPlugins(profile);
|
||||||
// TODO BanData (PluginData) effects
|
|
||||||
|
|
||||||
Benchmark.start("Analysis Phase");
|
Benchmark.start("Analysis Phase");
|
||||||
Log.logDebug("Analysis", "Analysis Phase");
|
Log.logDebug("Analysis", "Analysis Phase");
|
||||||
@ -150,6 +150,23 @@ public class Analysis {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setBannedByPlugins(ServerProfile profile) {
|
||||||
|
UUID serverUUID = Plan.getServerUUID();
|
||||||
|
List<BanData> banPlugins = plugin.getHookHandler().getAdditionalDataSources().stream()
|
||||||
|
.filter(p -> p instanceof BanData)
|
||||||
|
.map(p -> (BanData) p)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Set<UUID> banned = new HashSet<>();
|
||||||
|
for (BanData banPlugin : banPlugins) {
|
||||||
|
Set<UUID> uuids = profile.getUuids();
|
||||||
|
banned.addAll(banPlugin.filterBanned(uuids));
|
||||||
|
}
|
||||||
|
|
||||||
|
profile.getPlayers().stream().filter(player -> banned.contains(player.getUuid()))
|
||||||
|
.forEach(player -> player.bannedOnServer(serverUUID));
|
||||||
|
}
|
||||||
|
|
||||||
private void log(String msg) {
|
private void log(String msg) {
|
||||||
if (Settings.ANALYSIS_LOG.isTrue()) {
|
if (Settings.ANALYSIS_LOG.isTrue()) {
|
||||||
Log.info(msg);
|
Log.info(msg);
|
||||||
|
@ -92,7 +92,7 @@ public class HtmlUtils {
|
|||||||
string = Html.SPAN.parse(string);
|
string = Html.SPAN.parse(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
return string.replace("§r", "");
|
return string.replace("§r", "").replace("§l", "").replace("§m", "").replace("§n", "").replace("§o", "").replace("§k", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String separateWithQuotes(String... strings) {
|
public static String separateWithQuotes(String... strings) {
|
||||||
|
@ -71,12 +71,14 @@ public class SessionTabStructureCreator {
|
|||||||
|
|
||||||
String name = Plan.getInstance().getDataCache().getName(uuid);
|
String name = Plan.getInstance().getDataCache().getName(uuid);
|
||||||
String link = Plan.getPlanAPI().getPlayerInspectPageLink(name);
|
String link = Plan.getPlanAPI().getPlayerInspectPageLink(name);
|
||||||
String dotSeparated = appendName ?
|
|
||||||
HtmlStructure.separateWithDots(name, sessionStart) :
|
|
||||||
HtmlStructure.separateWithDots(serverName, sessionStart);
|
|
||||||
String dotSeparated2 = appendWorldPerc
|
String dotSeparated2 = appendWorldPerc
|
||||||
? HtmlStructure.separateWithDots(SessionsTableCreator.getLongestWorldPlayed(session), sessionLength)
|
? HtmlStructure.separateWithDots(sessionStart, SessionsTableCreator.getLongestWorldPlayed(session))
|
||||||
: sessionEnd;
|
: sessionStart;
|
||||||
|
String dotSeparated = appendName ?
|
||||||
|
HtmlStructure.separateWithDots(name, dotSeparated2) :
|
||||||
|
HtmlStructure.separateWithDots(serverName, dotSeparated2);
|
||||||
|
|
||||||
|
|
||||||
String htmlID = "" + session.getSessionStart() + sessionID + i;
|
String htmlID = "" + session.getSessionStart() + sessionID + i;
|
||||||
|
|
||||||
@ -96,7 +98,7 @@ public class SessionTabStructureCreator {
|
|||||||
.append("<a class=\"collapsed\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#session_accordion\" ")
|
.append("<a class=\"collapsed\" role=\"button\" data-toggle=\"collapse\" data-parent=\"#session_accordion\" ")
|
||||||
.append("href=\"#session_").append(htmlID).append("\" aria-expanded=\"false\" ")
|
.append("href=\"#session_").append(htmlID).append("\" aria-expanded=\"false\" ")
|
||||||
.append("aria-controls=\"session_").append(htmlID).append("\">")
|
.append("aria-controls=\"session_").append(htmlID).append("\">")
|
||||||
.append(dotSeparated).append("<span class=\"pull-right\">").append(dotSeparated2).append("</span>") // Title (header)
|
.append(dotSeparated).append("<span class=\"pull-right\">").append(sessionEnd).append("</span>") // Title (header)
|
||||||
.append("</a></h4>") // Closes collapsed, panel title
|
.append("</a></h4>") // Closes collapsed, panel title
|
||||||
.append("</div>"); // Closes panel heading
|
.append("</div>"); // Closes panel heading
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ package main.java.com.djrapitops.plan.utilities.html.tables;
|
|||||||
import main.java.com.djrapitops.plan.data.container.Action;
|
import main.java.com.djrapitops.plan.data.container.Action;
|
||||||
import main.java.com.djrapitops.plan.utilities.FormatUtils;
|
import main.java.com.djrapitops.plan.utilities.FormatUtils;
|
||||||
import main.java.com.djrapitops.plan.utilities.html.Html;
|
import main.java.com.djrapitops.plan.utilities.html.Html;
|
||||||
|
import main.java.com.djrapitops.plan.utilities.html.HtmlUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ public class ActionsTableCreator {
|
|||||||
html.append(Html.TABLELINE_3_CUSTOMKEY_1.parse(
|
html.append(Html.TABLELINE_3_CUSTOMKEY_1.parse(
|
||||||
String.valueOf(date), FormatUtils.formatTimeStampYear(date),
|
String.valueOf(date), FormatUtils.formatTimeStampYear(date),
|
||||||
action.getDoneAction().toString(),
|
action.getDoneAction().toString(),
|
||||||
action.getAdditionalInfo()
|
HtmlUtils.swapColorsToSpan(action.getAdditionalInfo())
|
||||||
));
|
));
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
package main.java.com.djrapitops.plan.utilities.html.tables;
|
package main.java.com.djrapitops.plan.utilities.html.tables;
|
||||||
|
|
||||||
import main.java.com.djrapitops.plan.utilities.html.Html;
|
import main.java.com.djrapitops.plan.utilities.html.Html;
|
||||||
|
import main.java.com.djrapitops.plan.utilities.html.HtmlUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -30,7 +31,7 @@ public class NicknameTableCreator {
|
|||||||
for (Map.Entry<UUID, List<String>> entry : nicknames.entrySet()) {
|
for (Map.Entry<UUID, List<String>> entry : nicknames.entrySet()) {
|
||||||
String serverName = serverNames.getOrDefault(entry.getKey(), "Unknown");
|
String serverName = serverNames.getOrDefault(entry.getKey(), "Unknown");
|
||||||
for (String nick : entry.getValue()) {
|
for (String nick : entry.getValue()) {
|
||||||
html.append(Html.TABLELINE_2.parse(nick, serverName));
|
html.append(Html.TABLELINE_2.parse(HtmlUtils.swapColorsToSpan(HtmlUtils.removeXSS(nick)), serverName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -433,7 +433,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div id="worldPie" style="height: 400px;" class="dashboard-donut-chart"></div>
|
<div id="worldPie" style="height: 340px;" class="dashboard-donut-chart"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- #END# World Pie -->
|
<!-- #END# World Pie -->
|
||||||
|
@ -653,7 +653,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div id="worldPie" style="height: 400px;" class="dashboard-donut-chart"></div>
|
<div id="worldPie" style="height: 340px;" class="dashboard-donut-chart"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user