[New] Added Health info stuff to locale

Affected issues: #734
This commit is contained in:
Rsl1122 2018-10-23 14:43:10 +03:00
parent cff7fffe92
commit 314e0a2ca7
19 changed files with 360 additions and 69 deletions

View File

@ -10,6 +10,7 @@ import com.djrapitops.plan.data.store.mutators.health.HealthInformation;
import com.djrapitops.plan.data.time.WorldTimes; import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.system.database.DBSystem; import com.djrapitops.plan.system.database.DBSystem;
import com.djrapitops.plan.system.info.server.properties.ServerProperties; import com.djrapitops.plan.system.info.server.properties.ServerProperties;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plan.system.settings.config.PlanConfig;
import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.settings.theme.Theme;
@ -46,6 +47,7 @@ public class AnalysisContainer extends DataContainer {
private final ServerContainer serverContainer; private final ServerContainer serverContainer;
private final String version; private final String version;
private final Locale locale;
private final PlanConfig config; private final PlanConfig config;
private final Theme theme; private final Theme theme;
private final DBSystem dbSystem; private final DBSystem dbSystem;
@ -61,6 +63,7 @@ public class AnalysisContainer extends DataContainer {
public AnalysisContainer( public AnalysisContainer(
ServerContainer serverContainer, ServerContainer serverContainer,
String version, String version,
Locale locale,
PlanConfig config, PlanConfig config,
Theme theme, Theme theme,
DBSystem dbSystem, DBSystem dbSystem,
@ -73,6 +76,7 @@ public class AnalysisContainer extends DataContainer {
) { ) {
this.serverContainer = serverContainer; this.serverContainer = serverContainer;
this.version = version; this.version = version;
this.locale = locale;
this.config = config; this.config = config;
this.theme = theme; this.theme = theme;
this.dbSystem = dbSystem; this.dbSystem = dbSystem;
@ -447,6 +451,7 @@ public class AnalysisContainer extends DataContainer {
Key<HealthInformation> healthInformation = new Key<>(HealthInformation.class, "HEALTH_INFORMATION"); Key<HealthInformation> healthInformation = new Key<>(HealthInformation.class, "HEALTH_INFORMATION");
putCachingSupplier(healthInformation, () -> new HealthInformation( putCachingSupplier(healthInformation, () -> new HealthInformation(
this, this,
locale,
config.getNumber(Settings.THEME_GRAPH_TPS_THRESHOLD_MED), config.getNumber(Settings.THEME_GRAPH_TPS_THRESHOLD_MED),
config.getNumber(Settings.ACTIVE_PLAY_THRESHOLD), config.getNumber(Settings.ACTIVE_PLAY_THRESHOLD),
config.getNumber(Settings.ACTIVE_LOGIN_THRESHOLD), config.getNumber(Settings.ACTIVE_LOGIN_THRESHOLD),
@ -471,6 +476,7 @@ public class AnalysisContainer extends DataContainer {
private final String version; private final String version;
private final PlanConfig config; private final PlanConfig config;
private final Locale locale;
private final Theme theme; private final Theme theme;
private final DBSystem dbSystem; private final DBSystem dbSystem;
private final ServerProperties serverProperties; private final ServerProperties serverProperties;
@ -484,6 +490,7 @@ public class AnalysisContainer extends DataContainer {
public Factory( public Factory(
@Named("currentVersion") String version, @Named("currentVersion") String version,
PlanConfig config, PlanConfig config,
Locale locale,
Theme theme, Theme theme,
DBSystem dbSystem, DBSystem dbSystem,
ServerProperties serverProperties, ServerProperties serverProperties,
@ -495,6 +502,7 @@ public class AnalysisContainer extends DataContainer {
) { ) {
this.version = version; this.version = version;
this.config = config; this.config = config;
this.locale = locale;
this.theme = theme; this.theme = theme;
this.dbSystem = dbSystem; this.dbSystem = dbSystem;
this.serverProperties = serverProperties; this.serverProperties = serverProperties;
@ -509,6 +517,7 @@ public class AnalysisContainer extends DataContainer {
return new AnalysisContainer( return new AnalysisContainer(
serverContainer, serverContainer,
version, version,
locale,
config, config,
theme, theme,
dbSystem, dbSystem,

View File

@ -9,6 +9,7 @@ import com.djrapitops.plan.data.store.mutators.TPSMutator;
import com.djrapitops.plan.data.store.mutators.health.NetworkHealthInformation; import com.djrapitops.plan.data.store.mutators.health.NetworkHealthInformation;
import com.djrapitops.plan.system.database.DBSystem; import com.djrapitops.plan.system.database.DBSystem;
import com.djrapitops.plan.system.info.server.properties.ServerProperties; import com.djrapitops.plan.system.info.server.properties.ServerProperties;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plan.system.settings.config.PlanConfig;
import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.settings.theme.Theme;
@ -44,6 +45,7 @@ public class NetworkContainer extends DataContainer {
private final String version; private final String version;
private final PlanConfig config; private final PlanConfig config;
private final Locale locale;
private final Theme theme; private final Theme theme;
private final DBSystem dbSystem; private final DBSystem dbSystem;
private final ServerProperties serverProperties; private final ServerProperties serverProperties;
@ -54,6 +56,7 @@ public class NetworkContainer extends DataContainer {
ServerContainer bungeeContainer, ServerContainer bungeeContainer,
String version, String version,
PlanConfig config, PlanConfig config,
Locale locale,
Theme theme, Theme theme,
DBSystem dbSystem, DBSystem dbSystem,
ServerProperties serverProperties, ServerProperties serverProperties,
@ -63,6 +66,7 @@ public class NetworkContainer extends DataContainer {
this.bungeeContainer = bungeeContainer; this.bungeeContainer = bungeeContainer;
this.version = version; this.version = version;
this.config = config; this.config = config;
this.locale = locale;
this.theme = theme; this.theme = theme;
this.dbSystem = dbSystem; this.dbSystem = dbSystem;
this.serverProperties = serverProperties; this.serverProperties = serverProperties;
@ -101,6 +105,7 @@ public class NetworkContainer extends DataContainer {
Key<NetworkHealthInformation> healthInformation = new Key<>(NetworkHealthInformation.class, "HEALTH_INFORMATION"); Key<NetworkHealthInformation> healthInformation = new Key<>(NetworkHealthInformation.class, "HEALTH_INFORMATION");
putCachingSupplier(healthInformation, () -> new NetworkHealthInformation( putCachingSupplier(healthInformation, () -> new NetworkHealthInformation(
this, this,
locale,
config.getNumber(Settings.ACTIVE_PLAY_THRESHOLD), config.getNumber(Settings.ACTIVE_PLAY_THRESHOLD),
config.getNumber(Settings.ACTIVE_LOGIN_THRESHOLD), config.getNumber(Settings.ACTIVE_LOGIN_THRESHOLD),
formatters.timeAmount(), formatters.decimals(), formatters.percentage() formatters.timeAmount(), formatters.decimals(), formatters.percentage()
@ -212,6 +217,7 @@ public class NetworkContainer extends DataContainer {
private final Lazy<String> version; private final Lazy<String> version;
private final Lazy<PlanConfig> config; private final Lazy<PlanConfig> config;
private final Lazy<Locale> locale;
private final Lazy<Theme> theme; private final Lazy<Theme> theme;
private final Lazy<DBSystem> dbSystem; private final Lazy<DBSystem> dbSystem;
private final Lazy<ServerProperties> serverProperties; private final Lazy<ServerProperties> serverProperties;
@ -222,6 +228,7 @@ public class NetworkContainer extends DataContainer {
public Factory( public Factory(
@Named("currentVersion") Lazy<String> version, @Named("currentVersion") Lazy<String> version,
Lazy<PlanConfig> config, Lazy<PlanConfig> config,
Lazy<Locale> locale,
Lazy<Theme> theme, Lazy<Theme> theme,
Lazy<DBSystem> dbSystem, Lazy<DBSystem> dbSystem,
Lazy<ServerProperties> serverProperties, Lazy<ServerProperties> serverProperties,
@ -230,6 +237,7 @@ public class NetworkContainer extends DataContainer {
) { ) {
this.version = version; this.version = version;
this.config = config; this.config = config;
this.locale = locale;
this.theme = theme; this.theme = theme;
this.dbSystem = dbSystem; this.dbSystem = dbSystem;
this.serverProperties = serverProperties; this.serverProperties = serverProperties;
@ -242,6 +250,7 @@ public class NetworkContainer extends DataContainer {
bungeeContainer, bungeeContainer,
version.get(), version.get(),
config.get(), config.get(),
locale.get(),
theme.get(), theme.get(),
dbSystem.get(), dbSystem.get(),
serverProperties.get(), serverProperties.get(),

View File

@ -3,6 +3,8 @@ package com.djrapitops.plan.data.store.mutators.health;
import com.djrapitops.plan.data.store.containers.PlayerContainer; import com.djrapitops.plan.data.store.containers.PlayerContainer;
import com.djrapitops.plan.data.store.mutators.PlayersMutator; import com.djrapitops.plan.data.store.mutators.PlayersMutator;
import com.djrapitops.plan.data.store.mutators.SessionsMutator; import com.djrapitops.plan.data.store.mutators.SessionsMutator;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.locale.lang.HealthInfoLang;
import com.djrapitops.plan.utilities.formatting.Formatter; import com.djrapitops.plan.utilities.formatting.Formatter;
import com.djrapitops.plan.utilities.html.icon.Icons; import com.djrapitops.plan.utilities.html.icon.Icons;
@ -19,6 +21,7 @@ public abstract class AbstractHealthInfo {
protected double serverHealth; protected double serverHealth;
protected final Locale locale;
protected final int activeMinuteThreshold; protected final int activeMinuteThreshold;
protected final int activeLoginThreshold; protected final int activeLoginThreshold;
protected final Formatter<Long> timeAmountFormatter; protected final Formatter<Long> timeAmountFormatter;
@ -27,7 +30,7 @@ public abstract class AbstractHealthInfo {
public AbstractHealthInfo( public AbstractHealthInfo(
long now, long monthAgo, long now, long monthAgo,
int activeMinuteThreshold, Locale locale, int activeMinuteThreshold,
int activeLoginThreshold, int activeLoginThreshold,
Formatter<Long> timeAmountFormatter, Formatter<Long> timeAmountFormatter,
Formatter<Double> decimalFormatter, Formatter<Double> decimalFormatter,
@ -35,6 +38,7 @@ public abstract class AbstractHealthInfo {
) { ) {
this.now = now; this.now = now;
this.monthAgo = monthAgo; this.monthAgo = monthAgo;
this.locale = locale;
this.activeMinuteThreshold = activeMinuteThreshold; this.activeMinuteThreshold = activeMinuteThreshold;
this.activeLoginThreshold = activeLoginThreshold; this.activeLoginThreshold = activeLoginThreshold;
this.timeAmountFormatter = timeAmountFormatter; this.timeAmountFormatter = timeAmountFormatter;
@ -80,36 +84,40 @@ public abstract class AbstractHealthInfo {
regularRemainCompareSet.removeAll(veryActiveNow); regularRemainCompareSet.removeAll(veryActiveNow);
int notRegularAnymore = regularRemainCompareSet.size(); int notRegularAnymore = regularRemainCompareSet.size();
int remain = activeFWAGNum - notRegularAnymore; int remain = activeFWAGNum - notRegularAnymore;
double percRemain = activeFWAGNum != 0 ? remain / activeFWAGNum : 1.0; double percRemain = activeFWAGNum != 0 ? remain * 1.0 / activeFWAGNum : 1.0;
int newActive = getNewActive(veryActiveNow, activeNow, regularNow, veryActiveFWAG, activeFWAG, regularFWAG); int newActive = getNewActive(veryActiveNow, activeNow, regularNow, veryActiveFWAG, activeFWAG, regularFWAG);
int change = newActive - notRegularAnymore; int change = newActive - notRegularAnymore;
String remainNote = ""; StringBuilder remainNote = new StringBuilder();
if (activeFWAGNum != 0) { if (activeFWAGNum != 0) {
remainNote = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; remainNote.append(subNote);
if (percRemain > 0.5) { if (percRemain > 0.5) {
remainNote += Icons.GREEN_THUMB; remainNote.append(Icons.GREEN_THUMB);
} else if (percRemain > 0.2) { } else if (percRemain > 0.2) {
remainNote += Icons.YELLOW_FLAG; remainNote.append(Icons.YELLOW_FLAG);
} else { } else {
remainNote += Icons.RED_WARN; remainNote.append(Icons.RED_WARN);
serverHealth -= 2.5; serverHealth -= 2.5;
} }
remainNote += " " + percentageFormatter.apply(percRemain) + " of regular players have remained active (" remainNote.append(locale.getString(HealthInfoLang.REGULAR_ACTIVITY_REMAIN,
+ remain + "/" + activeFWAGNum + ")"; percentageFormatter.apply(percRemain),
remain, activeFWAGNum
));
} }
String sentenceStart = locale.getString(HealthInfoLang.REGULAR_CHANGE);
if (change > 0) { if (change > 0) {
addNote(Icons.GREEN_THUMB + " Number of regular players has increased (+" + change + ")" + remainNote); addNote(Icons.GREEN_THUMB + sentenceStart + locale.getString(HealthInfoLang.REGULAR_CHANGE_INCREASE, change) + remainNote);
} else if (change == 0) { } else if (change == 0) {
addNote(Icons.GREEN_THUMB + " Number of regular players has stayed the same (+" + change + ")" + remainNote); addNote(Icons.GREEN_THUMB + sentenceStart + locale.getString(HealthInfoLang.REGULAR_CHANGE_ZERO, change) + remainNote);
} else if (change > -20) { } else if (change > -20) {
addNote(Icons.YELLOW_FLAG + " Number of regular players has decreased (" + change + ")" + remainNote); addNote(Icons.YELLOW_FLAG + sentenceStart + locale.getString(HealthInfoLang.REGULAR_CHANGE_DECREASE, change) + remainNote);
serverHealth -= 5; serverHealth -= 5;
} else { } else {
addNote(Icons.RED_WARN + " Number of regular players has decreased (" + change + ")" + remainNote); addNote(Icons.RED_WARN + sentenceStart + locale.getString(HealthInfoLang.REGULAR_CHANGE_DECREASE, change) + remainNote);
serverHealth -= 10; serverHealth -= 10;
} }
} }
@ -133,18 +141,15 @@ public abstract class AbstractHealthInfo {
String avgLastTwoWeeksString = timeAmountFormatter.apply(avgLastTwoWeeks); String avgLastTwoWeeksString = timeAmountFormatter.apply(avgLastTwoWeeks);
String avgFourToTwoWeeksString = timeAmountFormatter.apply(avgFourToTwoWeeks); String avgFourToTwoWeeksString = timeAmountFormatter.apply(avgFourToTwoWeeks);
if (avgFourToTwoWeeks >= avgLastTwoWeeks) { if (avgFourToTwoWeeks >= avgLastTwoWeeks) {
addNote(Icons.GREEN_THUMB + " Active players seem to have things to do (Played " addNote(Icons.GREEN_THUMB + locale.getString(HealthInfoLang.ACTIVE_PLAY_COMPARISON_INCREASE,
+ avgLastTwoWeeksString + " vs " + avgFourToTwoWeeksString avgLastTwoWeeksString, avgFourToTwoWeeksString));
+ ", last two weeks vs weeks 2-4)");
} else if (avgFourToTwoWeeks - avgLastTwoWeeks > TimeUnit.HOURS.toMillis(2L)) { } else if (avgFourToTwoWeeks - avgLastTwoWeeks > TimeUnit.HOURS.toMillis(2L)) {
addNote(Icons.RED_WARN + " Active players might be running out of things to do (Played " addNote(Icons.RED_WARN + locale.getString(HealthInfoLang.ACTIVE_PLAY_COMPARISON_DECREASE,
+ avgLastTwoWeeksString + " vs " + avgFourToTwoWeeksString avgLastTwoWeeksString, avgFourToTwoWeeksString));
+ ", last two weeks vs weeks 2-4)");
serverHealth -= 5; serverHealth -= 5;
} else { } else {
addNote(Icons.YELLOW_FLAG + " Active players might be running out of things to do (Played " addNote(Icons.YELLOW_FLAG + locale.getString(HealthInfoLang.ACTIVE_PLAY_COMPARISON_DECREASE,
+ avgLastTwoWeeksString + " vs " + avgFourToTwoWeeksString avgLastTwoWeeksString, avgFourToTwoWeeksString));
+ ", last two weeks vs weeks 2-4)");
} }
} }
} }

View File

@ -10,6 +10,8 @@ import com.djrapitops.plan.data.store.keys.AnalysisKeys;
import com.djrapitops.plan.data.store.mutators.PlayersMutator; import com.djrapitops.plan.data.store.mutators.PlayersMutator;
import com.djrapitops.plan.data.store.mutators.PlayersOnlineResolver; import com.djrapitops.plan.data.store.mutators.PlayersOnlineResolver;
import com.djrapitops.plan.data.store.mutators.TPSMutator; import com.djrapitops.plan.data.store.mutators.TPSMutator;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.locale.lang.HealthInfoLang;
import com.djrapitops.plan.utilities.formatting.Formatter; import com.djrapitops.plan.utilities.formatting.Formatter;
import com.djrapitops.plan.utilities.html.icon.Icons; import com.djrapitops.plan.utilities.html.icon.Icons;
import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.api.TimeAmount;
@ -31,7 +33,9 @@ public class HealthInformation extends AbstractHealthInfo {
public HealthInformation( public HealthInformation(
AnalysisContainer analysisContainer, AnalysisContainer analysisContainer,
int lowTPSThreshold, int activeMinuteThreshold, Locale locale,
int lowTPSThreshold,
int activeMinuteThreshold,
int activeLoginThreshold, int activeLoginThreshold,
Formatter<Long> timeAmountFormatter, Formatter<Long> timeAmountFormatter,
Formatter<Double> decimalFormatter, Formatter<Double> decimalFormatter,
@ -40,7 +44,9 @@ public class HealthInformation extends AbstractHealthInfo {
super( super(
analysisContainer.getUnsafe(AnalysisKeys.ANALYSIS_TIME), analysisContainer.getUnsafe(AnalysisKeys.ANALYSIS_TIME),
analysisContainer.getUnsafe(AnalysisKeys.ANALYSIS_TIME_MONTH_AGO), analysisContainer.getUnsafe(AnalysisKeys.ANALYSIS_TIME_MONTH_AGO),
activeMinuteThreshold, activeLoginThreshold, timeAmountFormatter, decimalFormatter, percentageFormatter locale,
activeMinuteThreshold, activeLoginThreshold,
timeAmountFormatter, decimalFormatter, percentageFormatter
); );
this.analysisContainer = analysisContainer; this.analysisContainer = analysisContainer;
this.lowTPSThreshold = lowTPSThreshold; this.lowTPSThreshold = lowTPSThreshold;
@ -75,11 +81,11 @@ public class HealthInformation extends AbstractHealthInfo {
.mapToInt(Optional::get) .mapToInt(Optional::get)
.average().orElse(0); .average().orElse(0);
if (avgOnlineOnRegister >= 1) { if (avgOnlineOnRegister >= 1) {
addNote(Icons.GREEN_THUMB + " New Players have players to play with when they join (" addNote(Icons.GREEN_THUMB + locale.getString(HealthInfoLang.NEW_PLAYER_JOIN_PLAYERS_GOOD,
+ decimalFormatter.apply(avgOnlineOnRegister) + " on average)"); decimalFormatter.apply(avgOnlineOnRegister)));
} else { } else {
addNote(Icons.YELLOW_FLAG + " New Players may not have players to play with when they join (" addNote(Icons.YELLOW_FLAG + locale.getString(HealthInfoLang.NEW_PLAYER_JOIN_PLAYERS_BAD,
+ decimalFormatter.apply(avgOnlineOnRegister) + " on average)"); decimalFormatter.apply(avgOnlineOnRegister)));
serverHealth -= 5; serverHealth -= 5;
} }
@ -88,12 +94,12 @@ public class HealthInformation extends AbstractHealthInfo {
if (playersNewMonth != 0) { if (playersNewMonth != 0) {
double retainPercentage = playersRetainedMonth * 1.0 / playersNewMonth; double retainPercentage = playersRetainedMonth * 1.0 / playersNewMonth;
String stickinessSentence = locale.getString(HealthInfoLang.NEW_PLAYER_STICKINESS,
percentageFormatter.apply(retainPercentage), playersRetainedMonth, playersNewMonth);
if (retainPercentage >= 0.25) { if (retainPercentage >= 0.25) {
addNote(Icons.GREEN_THUMB + " " + percentageFormatter.apply(retainPercentage) addNote(Icons.GREEN_THUMB + stickinessSentence);
+ " of new players have stuck around (" + playersRetainedMonth + "/" + playersNewMonth + ")");
} else { } else {
addNote(Icons.YELLOW_FLAG + " " + percentageFormatter.apply(retainPercentage) addNote(Icons.YELLOW_FLAG + stickinessSentence);
+ " of new players have stuck around (" + playersRetainedMonth + "/" + playersNewMonth + ")");
} }
} }
} }
@ -106,44 +112,39 @@ public class HealthInformation extends AbstractHealthInfo {
double aboveThreshold = tpsMutator.percentageTPSAboveThreshold(lowTPSThreshold); double aboveThreshold = tpsMutator.percentageTPSAboveThreshold(lowTPSThreshold);
long tpsSpikeMonth = analysisContainer.getValue(AnalysisKeys.TPS_SPIKE_MONTH).orElse(0); long tpsSpikeMonth = analysisContainer.getValue(AnalysisKeys.TPS_SPIKE_MONTH).orElse(0);
String avgLowThresholdString = "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; StringBuilder avgLowThresholdString = new StringBuilder(subNote);
if (aboveThreshold >= 0.96) { if (aboveThreshold >= 0.96) {
avgLowThresholdString += Icons.GREEN_THUMB; avgLowThresholdString.append(Icons.GREEN_THUMB);
} else if (aboveThreshold >= 0.9) { } else if (aboveThreshold >= 0.9) {
avgLowThresholdString += Icons.YELLOW_FLAG; avgLowThresholdString.append(Icons.YELLOW_FLAG);
serverHealth *= 0.9; serverHealth *= 0.9;
} else { } else {
avgLowThresholdString += Icons.RED_WARN; avgLowThresholdString.append(Icons.RED_WARN);
serverHealth *= 0.6; serverHealth *= 0.6;
} }
avgLowThresholdString += " Average TPS was above Low Threshold " avgLowThresholdString.append(locale.getString(HealthInfoLang.TPS_ABOVE_LOW_THERSHOLD, percentageFormatter.apply(aboveThreshold)));
+ decimalFormatter.apply(aboveThreshold * 100.0) + "% of the time";
String tpsDipSentence = locale.getString(HealthInfoLang.TPS_LOW_DIPS, lowTPSThreshold, tpsSpikeMonth);
if (tpsSpikeMonth <= 5) { if (tpsSpikeMonth <= 5) {
addNote(Icons.GREEN_THUMB + " Average TPS dropped below Low Threshold (" + lowTPSThreshold + ")" + addNote(Icons.GREEN_THUMB + tpsDipSentence + avgLowThresholdString);
" " + tpsSpikeMonth + " times" +
avgLowThresholdString);
} else if (tpsSpikeMonth <= 25) { } else if (tpsSpikeMonth <= 25) {
addNote(Icons.YELLOW_FLAG + " Average TPS dropped below Low Threshold (" + lowTPSThreshold + ")" + addNote(Icons.YELLOW_FLAG + tpsDipSentence + avgLowThresholdString);
" " + tpsSpikeMonth + " times" +
avgLowThresholdString);
serverHealth *= 0.95; serverHealth *= 0.95;
} else { } else {
addNote(Icons.RED_WARN + " Average TPS dropped below Low Threshold (" + lowTPSThreshold + ")" + addNote(Icons.RED_WARN + tpsDipSentence + avgLowThresholdString);
" " + tpsSpikeMonth + " times" +
avgLowThresholdString);
serverHealth *= 0.8; serverHealth *= 0.8;
} }
String downtimeSentence = locale.getString(HealthInfoLang.DOWNTIME, timeAmountFormatter.apply(serverDownTime));
if (serverDownTime <= TimeUnit.DAYS.toMillis(1L)) { if (serverDownTime <= TimeUnit.DAYS.toMillis(1L)) {
addNote(Icons.GREEN_THUMB + " Total Server downtime (No Data) was " + timeAmountFormatter.apply(serverDownTime)); addNote(Icons.GREEN_THUMB + downtimeSentence);
} else { } else {
long weekMs = TimeAmount.WEEK.toMillis(1L); long weekMs = TimeAmount.WEEK.toMillis(1L);
if (serverDownTime <= weekMs) { if (serverDownTime <= weekMs) {
addNote(Icons.YELLOW_FLAG + " Total Server downtime (No Data) was " + timeAmountFormatter.apply(serverDownTime)); addNote(Icons.YELLOW_FLAG + downtimeSentence);
serverHealth *= (weekMs - serverDownTime) * 1.0 / weekMs; serverHealth *= (weekMs - serverDownTime) * 1.0 / weekMs;
} else { } else {
addNote(Icons.RED_WARN + " Total Server downtime (No Data) was " + timeAmountFormatter.apply(serverDownTime)); addNote(Icons.RED_WARN + downtimeSentence);
long monthMs = TimeAmount.MONTH.toMillis(1L); long monthMs = TimeAmount.MONTH.toMillis(1L);
serverHealth *= (monthMs - serverDownTime) * 1.0 / monthMs; serverHealth *= (monthMs - serverDownTime) * 1.0 / monthMs;
} }

View File

@ -8,6 +8,8 @@ import com.djrapitops.plan.data.store.keys.NetworkKeys;
import com.djrapitops.plan.data.store.mutators.PlayersMutator; import com.djrapitops.plan.data.store.mutators.PlayersMutator;
import com.djrapitops.plan.data.store.mutators.SessionsMutator; import com.djrapitops.plan.data.store.mutators.SessionsMutator;
import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plan.system.info.server.Server;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.locale.lang.HealthInfoLang;
import com.djrapitops.plan.utilities.formatting.Formatter; import com.djrapitops.plan.utilities.formatting.Formatter;
import com.djrapitops.plan.utilities.html.icon.Icon; import com.djrapitops.plan.utilities.html.icon.Icon;
import com.djrapitops.plan.utilities.html.icon.Icons; import com.djrapitops.plan.utilities.html.icon.Icons;
@ -20,6 +22,7 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
public NetworkHealthInformation( public NetworkHealthInformation(
NetworkContainer container, NetworkContainer container,
Locale locale,
int activeMinuteThreshold, int activeMinuteThreshold,
int activeLoginThreshold, int activeLoginThreshold,
Formatter<Long> timeAmountFormatter, Formatter<Long> timeAmountFormatter,
@ -29,7 +32,9 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
super( super(
container.getUnsafe(NetworkKeys.REFRESH_TIME), container.getUnsafe(NetworkKeys.REFRESH_TIME),
container.getUnsafe(NetworkKeys.REFRESH_TIME_MONTH_AGO), container.getUnsafe(NetworkKeys.REFRESH_TIME_MONTH_AGO),
activeMinuteThreshold, activeLoginThreshold, timeAmountFormatter, decimalFormatter, percentageFormatter locale,
activeMinuteThreshold, activeLoginThreshold,
timeAmountFormatter, decimalFormatter, percentageFormatter
); );
this.container = container; this.container = container;
calculate(); calculate();
@ -48,12 +53,12 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
.orElse(Collections.emptyList()); .orElse(Collections.emptyList());
if (servers.isEmpty()) { if (servers.isEmpty()) {
addNote(Icons.HELP_RING + " No Bukkit/Sponge servers to gather session data - These measures are inaccurate."); addNote(Icons.HELP_RING + locale.getString(HealthInfoLang.NO_SERVERS_INACCURACY));
return; return;
} }
int serverCount = servers.size(); int serverCount = servers.size();
if (serverCount == 1) { if (serverCount == 1) {
addNote(Icons.HELP_RING + " Single Bukkit/Sponge server to gather session data."); addNote(Icons.HELP_RING + locale.getString(HealthInfoLang.SINGLE_SERVER_INACCURACY));
return; return;
} }
@ -68,7 +73,7 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
private void uniquePlayersNote(int serverCount, Key<Server> serverKey, List<DataContainer> perServerContainers) { private void uniquePlayersNote(int serverCount, Key<Server> serverKey, List<DataContainer> perServerContainers) {
Icon icon; Icon icon;
String uniquePlayersNote = " players visit on servers per day/server on average."; String uniquePlayersNote = locale.getString(HealthInfoLang.PLAYER_VISIT_PER_SERVER);
double average = perServerContainers.stream() double average = perServerContainers.stream()
.mapToInt(c -> c.getUnsafe(AnalysisKeys.AVG_PLAYERS_MONTH)) .mapToInt(c -> c.getUnsafe(AnalysisKeys.AVG_PLAYERS_MONTH))
.average().orElse(0.0); .average().orElse(0.0);
@ -95,7 +100,7 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
private void newPlayersNote(int serverCount, Key<Server> serverKey, List<DataContainer> perServerContainers) { private void newPlayersNote(int serverCount, Key<Server> serverKey, List<DataContainer> perServerContainers) {
Icon icon; Icon icon;
String newPlayersNote = " players register on servers per day/server on average."; String newPlayersNote = locale.getString(HealthInfoLang.PLAYER_REGISTER_PER_SERVER);
double average = perServerContainers.stream() double average = perServerContainers.stream()
.mapToInt(c -> c.getUnsafe(AnalysisKeys.AVG_PLAYERS_NEW_MONTH)) .mapToInt(c -> c.getUnsafe(AnalysisKeys.AVG_PLAYERS_NEW_MONTH))
.average().orElse(0.0); .average().orElse(0.0);
@ -147,7 +152,7 @@ public class NetworkHealthInformation extends AbstractHealthInfo {
private void playersNote(Key<Server> serverKey, List<DataContainer> perServerContainers) { private void playersNote(Key<Server> serverKey, List<DataContainer> perServerContainers) {
Icon icon = Icons.HELP_RING; Icon icon = Icons.HELP_RING;
String uniquePlayersNote = "${playersMonth} players played on the network:"; String uniquePlayersNote = "${playersMonth}" + locale.getString(HealthInfoLang.PLAYER_PLAY_ON_NETWORK);
StringBuilder subNotes = new StringBuilder(); StringBuilder subNotes = new StringBuilder();
perServerContainers.stream() perServerContainers.stream()
.sorted(Comparator.comparingInt(c -> 0 - c.getUnsafe(AnalysisKeys.PLAYERS_MONTH))) .sorted(Comparator.comparingInt(c -> 0 - c.getUnsafe(AnalysisKeys.PLAYERS_MONTH)))

View File

@ -66,7 +66,8 @@ public class LocaleSystem implements SubSystem {
ServerPageLang.values(), ServerPageLang.values(),
NetworkPageLang.values(), NetworkPageLang.values(),
ErrorPageLang.values(), ErrorPageLang.values(),
FailReason.values() FailReason.values(),
HealthInfoLang.values()
}; };
return Arrays.stream(lang) return Arrays.stream(lang)

View File

@ -0,0 +1,45 @@
package com.djrapitops.plan.system.locale.lang;
/**
* {@link Lang} enum for {@link com.djrapitops.plan.data.store.mutators.health.AbstractHealthInfo} related language.
*
* @author Rsl1122
*/
public enum HealthInfoLang implements Lang {
REGULAR_ACTIVITY_REMAIN("Regular Activity Remain", " ${0} of regular players have remained active (${1}/${2})"),
REGULAR_CHANGE("Regular Activity Change", " Number of regular players has "),
REGULAR_CHANGE_INCREASE("Regular Activity Change Increase", "increased (+${0})"),
REGULAR_CHANGE_ZERO("Regular Activity Change Zero", "stayed the same (+${0})"),
REGULAR_CHANGE_DECREASE("Regular Activity Change Decrease", "decreased (${0})"),
ACTIVE_PLAY_COMPARISON_INCREASE("Active Playtime Comparison Increase", " Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)"),
ACTIVE_PLAY_COMPARISON_DECREASE("Active Playtime Comparison Decrease", " Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)"),
NEW_PLAYER_JOIN_PLAYERS_GOOD("New Player Join Players, Yes", " New Players have players to play with when they join (${0} on average)"),
NEW_PLAYER_JOIN_PLAYERS_BAD("New Player Join Players, No", " New Players may not have players to play with when they join (${0} on average)"),
NEW_PLAYER_STICKINESS("New Player Stickiness", " ${0} of new players have stuck around (${1}/${2})"),
TPS_ABOVE_LOW_THERSHOLD("TPS Above Low Threshold", " Average TPS was above Low Threshold ${0} of the time"),
TPS_LOW_DIPS("TPS Low Dips", " Average TPS dropped below Low Threshold (${0}) ${1} times"),
DOWNTIME("Downtime", "Total Server downtime (No Data) was ${0}"),
NO_SERVERS_INACCURACY("No Servers Inaccuracy", " No Bukkit/Sponge servers to gather session data - These measures are inaccurate."),
SINGLE_SERVER_INACCURACY("Single Servers Inaccuracy", " Single Bukkit/Sponge server to gather session data."),
PLAYER_VISIT_PER_SERVER("Player Visit Server", " players visit on servers per day/server on average."),
PLAYER_REGISTER_PER_SERVER("Player Register Server", " players register on servers per day/server on average."),
PLAYER_PLAY_ON_NETWORK("Player Play on Network", " players played on the network:");
private final String identifier;
private final String defaultValue;
HealthInfoLang(String identifier, String defaultValue) {
this.identifier = identifier;
this.defaultValue = defaultValue;
}
@Override
public String getIdentifier() {
return "Health - " + identifier;
}
@Override
public String getDefault() {
return defaultValue;
}
}

View File

@ -315,3 +315,21 @@ WebServer FAIL - SSL Context || 网页服务器SSL 环境
WebServer FAIL - Store Load || 网页服务器SSL 证书载入失败。 WebServer FAIL - Store Load || 网页服务器SSL 证书载入失败。
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Zertifikat konnte nicht geladen werden. WebServer FAIL - Store Load || WebServer: SSL Zertifikat konnte nicht geladen werden.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -313,3 +313,21 @@ WebServer FAIL - SSL Context || Web Palvelin: SSL Kontekstin
WebServer FAIL - Store Load || Web Palvelin: SSL Sertifikaatin lataus ei onnistunut. WebServer FAIL - Store Load || Web Palvelin: SSL Sertifikaatin lataus ei onnistunut.
Yesterday || 'Eilen' Yesterday || 'Eilen'
Today || 'Tänään' Today || 'Tänään'
Health - Active Playtime Comparison Decrease || Aktiivisilta pelaajilta voi olla loppumassa tekeminen (Pelasivat ${0} vs ${1}, viimeisen kahden viikon vs viikot 2-4)
Health - Active Playtime Comparison Increase || Aktiivisilta pelaajilta vaikuttaa olevan tekemistä (Pelasivat ${0} vs ${1}, viimeisen kahden viikon vs viikot 2-4)
Health - Downtime || Palvelimen downtime (Ei Dataa) oli ${0}
Health - New Player Join Players, No || Uusilla pelaajilla voi olla yksinäistä (${0} paikalla keskimäärin)
Health - New Player Join Players, Yes || Uusilla pelaajilla on kavereita liittyessä (${0} paikalla keskimäärin)
Health - New Player Stickiness || ${0} uusista pelaajista jäi pelaamaan (${1}/${2})
Health - No Servers Inaccuracy || Ei Bukkit/Sponge palvelimia sessio tietojen keräykseen - Nämä arviot ovat epätarkkoja.
Health - Player Play on Network || pelaajaa pelasi verkossa:
Health - Player Register Server || pelaajaa rekisteröityi palvelimille per päivä/palvelin keskimäärin.
Health - Player Visit Server || pelaajaa käy palvelimilla per päivä/palvelin keskimäärin.
Health - Regular Activity Change || Kestopelaajien määrä on
Health - Regular Activity Change Decrease || pienentynyt (${0})
Health - Regular Activity Change Increase || kasvanut (+${0})
Health - Regular Activity Change Zero || pysynyt samana (+${0})
Health - Regular Activity Remain || ${0} kestopelaajista on pysynyt aktiivisena (${1}/${2})
Health - Single Servers Inaccuracy || Yksi Bukkit/Sponge palvelin sessio tietojen keräykseen.
Health - TPS Above Low Threshold || Keskimääräinen TPS oli alarajan yläpuolella ${0} ajasta
Health - TPS Low Dips || Keskimääräinen TPS putosi alarajan alapuolelle (${0}) ${1} kertaa

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times

View File

@ -314,3 +314,21 @@ WebServer FAIL - SSL Context || WebServer: SSL Context Initia
WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed. WebServer FAIL - Store Load || WebServer: SSL Certificate loading Failed.
Yesterday || 'Yesterday' Yesterday || 'Yesterday'
Today || 'Today' Today || 'Today'
Health - Active Playtime Comparison Decrease || Active players might be running out of things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Active Playtime Comparison Increase || Active players seem to have things to do (Played ${0} vs ${1}, last two weeks vs weeks 2-4)
Health - Downtime || Total Server downtime (No Data) was ${0}
Health - New Player Join Players, No || New Players may not have players to play with when they join (${0} on average)
Health - New Player Join Players, Yes || New Players have players to play with when they join (${0} on average)
Health - New Player Stickiness || ${0} of new players have stuck around (${1}/${2})
Health - No Servers Inaccuracy || No Bukkit/Sponge servers to gather session data - These measures are inaccurate.
Health - Player Play on Network || players played on the network:
Health - Player Register Server || players register on servers per day/server on average.
Health - Player Visit Server || players visit on servers per day/server on average.
Health - Regular Activity Change || Number of regular players has
Health - Regular Activity Change Decrease || decreased (${0})
Health - Regular Activity Change Increase || increased (+${0})
Health - Regular Activity Change Zero || stayed the same (+${0})
Health - Regular Activity Remain || ${0} of regular players have remained active (${1}/${2})
Health - Single Servers Inaccuracy || Single Bukkit/Sponge server to gather session data.
Health - TPS Above Low Threshold || Average TPS was above Low Threshold ${0} of the time
Health - TPS Low Dips || Average TPS dropped below Low Threshold (${0}) ${1} times