Fixed bug with time-number-formatting (#116), removed api test method (#115)

This commit is contained in:
Artemis-the-gr8 2022-08-15 16:57:45 +02:00
parent a456c1aa14
commit 4dc5fe86e0
10 changed files with 40 additions and 53 deletions

View File

@ -14,7 +14,6 @@ import com.gmail.artemis.the.gr8.playerstats.msg.OutputManager;
import com.gmail.artemis.the.gr8.playerstats.msg.msgutils.LanguageKeyHandler;
import com.gmail.artemis.the.gr8.playerstats.statistic.StatCalculator;
import com.gmail.artemis.the.gr8.playerstats.utils.EnumHandler;
import com.gmail.artemis.the.gr8.playerstats.utils.MyLogger;
import com.gmail.artemis.the.gr8.playerstats.utils.OfflinePlayerHandler;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
@ -157,11 +156,9 @@ public final class Main extends JavaPlugin {
}
private void setupMetrics() {
MyLogger.logLowLevelMsg("setupMetrics called: " + System.currentTimeMillis());
new BukkitRunnable() {
@Override
public void run() {
MyLogger.logLowLevelMsg("setupMetrics running: " + System.currentTimeMillis());
final Metrics metrics = new Metrics(getInstance(), 15923);
final boolean placeholderExpansionActive;
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
@ -173,7 +170,6 @@ public final class Main extends JavaPlugin {
} else {
placeholderExpansionActive = false;
}
MyLogger.logLowLevelMsg("expansion present: " + placeholderExpansionActive);
metrics.addCustomChart(new SimplePie("using_placeholder_expansion", () -> placeholderExpansionActive ? "yes" : "no"));
}
}.runTaskLaterAsynchronously(this, 200);

View File

@ -16,16 +16,16 @@ public interface InternalFormatter {
/** @return a TextComponent with the following parts:
<br>[player-name]: [number] [stat-name] {sub-stat-name}*/
TextComponent formatPlayerStat(RequestSettings requestSettings, int playerStat);
TextComponent formatAndSavePlayerStat(RequestSettings requestSettings, int playerStat);
/** @return a TextComponent with the following parts:
<br>[Total on] [server-name]: [number] [stat-name] [sub-stat-name]*/
TextComponent formatServerStat(RequestSettings requestSettings, long serverStat);
TextComponent formatAndSaveServerStat(RequestSettings requestSettings, long serverStat);
/** @return a TextComponent with the following parts:
<br>[PlayerStats] [Top 10] [stat-name] [sub-stat-name]
<br> [1.] [player-name] [number]
<br> [2.] [player-name] [number]
<br> [3.] etc...*/
TextComponent formatTopStat(RequestSettings requestSettings, LinkedHashMap<String, Integer> topStats);
TextComponent formatAndSaveTopStat(RequestSettings requestSettings, LinkedHashMap<String, Integer> topStats);
}

View File

@ -51,7 +51,7 @@ public final class OutputManager implements InternalFormatter {
}
@Override
public TextComponent formatPlayerStat(@NotNull RequestSettings requestSettings, int playerStat) {
public TextComponent formatAndSavePlayerStat(@NotNull RequestSettings requestSettings, int playerStat) {
BiFunction<Integer, CommandSender, TextComponent> playerStatFunction =
getMessageBuilder(requestSettings).formattedPlayerStatFunction(playerStat, requestSettings);
@ -59,7 +59,7 @@ public final class OutputManager implements InternalFormatter {
}
@Override
public TextComponent formatServerStat(@NotNull RequestSettings requestSettings, long serverStat) {
public TextComponent formatAndSaveServerStat(@NotNull RequestSettings requestSettings, long serverStat) {
BiFunction<Integer, CommandSender, TextComponent> serverStatFunction =
getMessageBuilder(requestSettings).formattedServerStatFunction(serverStat, requestSettings);
@ -67,7 +67,7 @@ public final class OutputManager implements InternalFormatter {
}
@Override
public TextComponent formatTopStat(@NotNull RequestSettings requestSettings, @NotNull LinkedHashMap<String, Integer> topStats) {
public TextComponent formatAndSaveTopStat(@NotNull RequestSettings requestSettings, @NotNull LinkedHashMap<String, Integer> topStats) {
BiFunction<Integer, CommandSender, TextComponent> topStatFunction =
getMessageBuilder(requestSettings).formattedTopStatFunction(topStats, requestSettings);
@ -138,7 +138,7 @@ public final class OutputManager implements InternalFormatter {
}
private MessageBuilder getMessageBuilder(RequestSettings requestSettings) {
if (requestSettings.isAPIRequest() || !requestSettings.isConsoleSender()) {
if (!requestSettings.isConsoleSender()) {
return messageBuilder;
} else {
return consoleMessageBuilder;

View File

@ -68,7 +68,7 @@ public final class NumberFormatter {
double min = smallUnit.getSeconds();
double leftover = number / 20.0;
if (isInRange(max, min, 86400) && leftover >= 86400) {
if (isInRange(max, 86400, min) && leftover >= 86400) {
double days = Math.floor(leftover / 86400);
leftover = leftover % (86400);
if (smallUnit == Unit.DAY) {
@ -78,10 +78,14 @@ public final class NumberFormatter {
return output.append(format.format(days))
.append("d").toString();
}
output.append(format.format(days))
.append("d");
if (days == 0) {
output.append("0d");
} else {
output.append(format.format(days))
.append("d");
}
}
if (isInRange(max, min, 3600) && leftover >= 3600) {
if (isInRange(max, 3600, min)) {
if (output.toString().contains("d")) {
output.append(" ");
}
@ -94,10 +98,14 @@ public final class NumberFormatter {
return output.append(format.format(hours))
.append("h").toString();
}
output.append(format.format(hours))
.append("h");
if (hours == 0) {
output.append("0h");
} else {
output.append(format.format(hours))
.append("h");
}
}
if (isInRange(max, min, 60) && leftover >= 60) {
if (isInRange(max, 60, min)) {
if (output.toString().contains("h")) {
output.append(" ");
}
@ -110,10 +118,14 @@ public final class NumberFormatter {
return output.append(format.format(minutes))
.append("m").toString();
}
output.append(format.format(minutes))
.append("m");
if (minutes == 0) {
output.append("0m");
} else {
output.append(format.format(minutes))
.append("m");
}
}
if (isInRange(max, min, 1) && leftover > 0) {
if (isInRange(max,1, min) && leftover > 0) {
if (output.toString().contains("m")) {
output.append(" ");
}
@ -124,7 +136,7 @@ public final class NumberFormatter {
return output.toString();
}
private boolean isInRange(double bigUnit, double smallUnit, double unitToEvaluate) {
private boolean isInRange(double bigUnit, double unitToEvaluate, double smallUnit) {
return bigUnit >= unitToEvaluate && unitToEvaluate >= smallUnit;
}
}

View File

@ -2,7 +2,6 @@ package com.gmail.artemis.the.gr8.playerstats.statistic;
import com.gmail.artemis.the.gr8.playerstats.enums.StandardMessage;
import com.gmail.artemis.the.gr8.playerstats.enums.Target;
import com.gmail.artemis.the.gr8.playerstats.msg.components.ComponentUtils;
import com.gmail.artemis.the.gr8.playerstats.statistic.request.RequestSettings;
import com.gmail.artemis.the.gr8.playerstats.msg.OutputManager;
import com.gmail.artemis.the.gr8.playerstats.reload.ReloadThread;
@ -60,18 +59,11 @@ public final class StatThread extends Thread {
Target selection = requestSettings.getTarget();
try {
TextComponent statResult = switch (selection) {
case PLAYER -> outputManager.formatPlayerStat(requestSettings, statCalculator.getPlayerStat(requestSettings));
case TOP -> outputManager.formatTopStat(requestSettings, statCalculator.getTopStats(requestSettings));
case SERVER -> outputManager.formatServerStat(requestSettings, statCalculator.getServerStat(requestSettings));
case PLAYER -> outputManager.formatAndSavePlayerStat(requestSettings, statCalculator.getPlayerStat(requestSettings));
case TOP -> outputManager.formatAndSaveTopStat(requestSettings, statCalculator.getTopStats(requestSettings));
case SERVER -> outputManager.formatAndSaveServerStat(requestSettings, statCalculator.getServerStat(requestSettings));
};
if (requestSettings.isAPIRequest()) {
String msg = ComponentUtils.getTranslatableComponentSerializer()
.serialize(statResult);
requestSettings.getCommandSender().sendMessage(msg);
}
else {
outputManager.sendToCommandSender(requestSettings.getCommandSender(), statResult);
}
outputManager.sendToCommandSender(requestSettings.getCommandSender(), statResult);
}
catch (ConcurrentModificationException e) {
if (!requestSettings.isConsoleSender()) {

View File

@ -49,7 +49,7 @@ public final class PlayerStatRequest extends StatRequest<Integer> implements Req
TextComponent prettyComponent = Main
.getStatFormatter()
.formatPlayerStat(completedRequest, stat);
.formatAndSavePlayerStat(completedRequest, stat);
String prettyString = ComponentUtils
.getTranslatableComponentSerializer()

View File

@ -127,8 +127,6 @@ public final class RequestHandler {
} else if (offlinePlayerHandler.isRelevantPlayer(arg) && requestSettings.getPlayerName() == null) {
requestSettings.setPlayerName(arg);
requestSettings.setTarget(Target.PLAYER);
} else if (arg.equalsIgnoreCase("api")) {
requestSettings.setAPIRequest();
}
}
patchRequest(requestSettings);

View File

@ -29,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
public final class RequestSettings {
private final CommandSender sender;
private boolean isAPIRequest;
private Statistic statistic;
private String playerName;
private Target target;
@ -49,29 +48,19 @@ public final class RequestSettings {
<br>- boolean isAPIRequest
@param sender the CommandSender who prompted this RequestGenerator
@param isAPIRequest whether this RequestGenerator is coming through the API or the onCommand
*/
private RequestSettings(@NotNull CommandSender sender, boolean isAPIRequest) {
private RequestSettings(@NotNull CommandSender sender) {
this.sender = sender;
this.isAPIRequest = isAPIRequest;
target = Target.TOP;
playerFlag = false;
}
public static RequestSettings getBasicRequest(CommandSender sender) {
return new RequestSettings(sender, false);
return new RequestSettings(sender);
}
public static RequestSettings getBasicAPIRequest() {
return new RequestSettings(Bukkit.getConsoleSender(), true);
}
public void setAPIRequest() {
this.isAPIRequest = true;
}
public boolean isAPIRequest() {
return isAPIRequest;
return new RequestSettings(Bukkit.getConsoleSender());
}
public @NotNull CommandSender getCommandSender() {

View File

@ -49,7 +49,7 @@ public final class ServerStatRequest extends StatRequest<Long> implements Reques
TextComponent prettyComponent = Main
.getStatFormatter()
.formatServerStat(completedRequest, stat);
.formatAndSaveServerStat(completedRequest, stat);
String prettyString = ComponentUtils
.getTranslatableComponentSerializer()

View File

@ -51,7 +51,7 @@ public final class TopStatRequest extends StatRequest<LinkedHashMap<String, Inte
TextComponent prettyComponent = Main
.getStatFormatter()
.formatTopStat(completedRequest, stat);
.formatAndSaveTopStat(completedRequest, stat);
String prettyString = ComponentUtils
.getTranslatableComponentSerializer()