mirror of
https://github.com/itHotL/PlayerStats.git
synced 2025-02-15 01:31:31 +01:00
This commit is contained in:
parent
a456c1aa14
commit
4dc5fe86e0
@ -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.msg.msgutils.LanguageKeyHandler;
|
||||||
import com.gmail.artemis.the.gr8.playerstats.statistic.StatCalculator;
|
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.EnumHandler;
|
||||||
import com.gmail.artemis.the.gr8.playerstats.utils.MyLogger;
|
|
||||||
import com.gmail.artemis.the.gr8.playerstats.utils.OfflinePlayerHandler;
|
import com.gmail.artemis.the.gr8.playerstats.utils.OfflinePlayerHandler;
|
||||||
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
@ -157,11 +156,9 @@ public final class Main extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupMetrics() {
|
private void setupMetrics() {
|
||||||
MyLogger.logLowLevelMsg("setupMetrics called: " + System.currentTimeMillis());
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
MyLogger.logLowLevelMsg("setupMetrics running: " + System.currentTimeMillis());
|
|
||||||
final Metrics metrics = new Metrics(getInstance(), 15923);
|
final Metrics metrics = new Metrics(getInstance(), 15923);
|
||||||
final boolean placeholderExpansionActive;
|
final boolean placeholderExpansionActive;
|
||||||
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||||
@ -173,7 +170,6 @@ public final class Main extends JavaPlugin {
|
|||||||
} else {
|
} else {
|
||||||
placeholderExpansionActive = false;
|
placeholderExpansionActive = false;
|
||||||
}
|
}
|
||||||
MyLogger.logLowLevelMsg("expansion present: " + placeholderExpansionActive);
|
|
||||||
metrics.addCustomChart(new SimplePie("using_placeholder_expansion", () -> placeholderExpansionActive ? "yes" : "no"));
|
metrics.addCustomChart(new SimplePie("using_placeholder_expansion", () -> placeholderExpansionActive ? "yes" : "no"));
|
||||||
}
|
}
|
||||||
}.runTaskLaterAsynchronously(this, 200);
|
}.runTaskLaterAsynchronously(this, 200);
|
||||||
|
@ -16,16 +16,16 @@ public interface InternalFormatter {
|
|||||||
|
|
||||||
/** @return a TextComponent with the following parts:
|
/** @return a TextComponent with the following parts:
|
||||||
<br>[player-name]: [number] [stat-name] {sub-stat-name}*/
|
<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:
|
/** @return a TextComponent with the following parts:
|
||||||
<br>[Total on] [server-name]: [number] [stat-name] [sub-stat-name]*/
|
<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:
|
/** @return a TextComponent with the following parts:
|
||||||
<br>[PlayerStats] [Top 10] [stat-name] [sub-stat-name]
|
<br>[PlayerStats] [Top 10] [stat-name] [sub-stat-name]
|
||||||
<br> [1.] [player-name] [number]
|
<br> [1.] [player-name] [number]
|
||||||
<br> [2.] [player-name] [number]
|
<br> [2.] [player-name] [number]
|
||||||
<br> [3.] etc...*/
|
<br> [3.] etc...*/
|
||||||
TextComponent formatTopStat(RequestSettings requestSettings, LinkedHashMap<String, Integer> topStats);
|
TextComponent formatAndSaveTopStat(RequestSettings requestSettings, LinkedHashMap<String, Integer> topStats);
|
||||||
}
|
}
|
@ -51,7 +51,7 @@ public final class OutputManager implements InternalFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextComponent formatPlayerStat(@NotNull RequestSettings requestSettings, int playerStat) {
|
public TextComponent formatAndSavePlayerStat(@NotNull RequestSettings requestSettings, int playerStat) {
|
||||||
BiFunction<Integer, CommandSender, TextComponent> playerStatFunction =
|
BiFunction<Integer, CommandSender, TextComponent> playerStatFunction =
|
||||||
getMessageBuilder(requestSettings).formattedPlayerStatFunction(playerStat, requestSettings);
|
getMessageBuilder(requestSettings).formattedPlayerStatFunction(playerStat, requestSettings);
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ public final class OutputManager implements InternalFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextComponent formatServerStat(@NotNull RequestSettings requestSettings, long serverStat) {
|
public TextComponent formatAndSaveServerStat(@NotNull RequestSettings requestSettings, long serverStat) {
|
||||||
BiFunction<Integer, CommandSender, TextComponent> serverStatFunction =
|
BiFunction<Integer, CommandSender, TextComponent> serverStatFunction =
|
||||||
getMessageBuilder(requestSettings).formattedServerStatFunction(serverStat, requestSettings);
|
getMessageBuilder(requestSettings).formattedServerStatFunction(serverStat, requestSettings);
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ public final class OutputManager implements InternalFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 =
|
BiFunction<Integer, CommandSender, TextComponent> topStatFunction =
|
||||||
getMessageBuilder(requestSettings).formattedTopStatFunction(topStats, requestSettings);
|
getMessageBuilder(requestSettings).formattedTopStatFunction(topStats, requestSettings);
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ public final class OutputManager implements InternalFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private MessageBuilder getMessageBuilder(RequestSettings requestSettings) {
|
private MessageBuilder getMessageBuilder(RequestSettings requestSettings) {
|
||||||
if (requestSettings.isAPIRequest() || !requestSettings.isConsoleSender()) {
|
if (!requestSettings.isConsoleSender()) {
|
||||||
return messageBuilder;
|
return messageBuilder;
|
||||||
} else {
|
} else {
|
||||||
return consoleMessageBuilder;
|
return consoleMessageBuilder;
|
||||||
|
@ -68,7 +68,7 @@ public final class NumberFormatter {
|
|||||||
double min = smallUnit.getSeconds();
|
double min = smallUnit.getSeconds();
|
||||||
double leftover = number / 20.0;
|
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);
|
double days = Math.floor(leftover / 86400);
|
||||||
leftover = leftover % (86400);
|
leftover = leftover % (86400);
|
||||||
if (smallUnit == Unit.DAY) {
|
if (smallUnit == Unit.DAY) {
|
||||||
@ -78,10 +78,14 @@ public final class NumberFormatter {
|
|||||||
return output.append(format.format(days))
|
return output.append(format.format(days))
|
||||||
.append("d").toString();
|
.append("d").toString();
|
||||||
}
|
}
|
||||||
output.append(format.format(days))
|
if (days == 0) {
|
||||||
.append("d");
|
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")) {
|
if (output.toString().contains("d")) {
|
||||||
output.append(" ");
|
output.append(" ");
|
||||||
}
|
}
|
||||||
@ -94,10 +98,14 @@ public final class NumberFormatter {
|
|||||||
return output.append(format.format(hours))
|
return output.append(format.format(hours))
|
||||||
.append("h").toString();
|
.append("h").toString();
|
||||||
}
|
}
|
||||||
output.append(format.format(hours))
|
if (hours == 0) {
|
||||||
.append("h");
|
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")) {
|
if (output.toString().contains("h")) {
|
||||||
output.append(" ");
|
output.append(" ");
|
||||||
}
|
}
|
||||||
@ -110,10 +118,14 @@ public final class NumberFormatter {
|
|||||||
return output.append(format.format(minutes))
|
return output.append(format.format(minutes))
|
||||||
.append("m").toString();
|
.append("m").toString();
|
||||||
}
|
}
|
||||||
output.append(format.format(minutes))
|
if (minutes == 0) {
|
||||||
.append("m");
|
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")) {
|
if (output.toString().contains("m")) {
|
||||||
output.append(" ");
|
output.append(" ");
|
||||||
}
|
}
|
||||||
@ -124,7 +136,7 @@ public final class NumberFormatter {
|
|||||||
return output.toString();
|
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;
|
return bigUnit >= unitToEvaluate && unitToEvaluate >= smallUnit;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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.StandardMessage;
|
||||||
import com.gmail.artemis.the.gr8.playerstats.enums.Target;
|
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.statistic.request.RequestSettings;
|
||||||
import com.gmail.artemis.the.gr8.playerstats.msg.OutputManager;
|
import com.gmail.artemis.the.gr8.playerstats.msg.OutputManager;
|
||||||
import com.gmail.artemis.the.gr8.playerstats.reload.ReloadThread;
|
import com.gmail.artemis.the.gr8.playerstats.reload.ReloadThread;
|
||||||
@ -60,18 +59,11 @@ public final class StatThread extends Thread {
|
|||||||
Target selection = requestSettings.getTarget();
|
Target selection = requestSettings.getTarget();
|
||||||
try {
|
try {
|
||||||
TextComponent statResult = switch (selection) {
|
TextComponent statResult = switch (selection) {
|
||||||
case PLAYER -> outputManager.formatPlayerStat(requestSettings, statCalculator.getPlayerStat(requestSettings));
|
case PLAYER -> outputManager.formatAndSavePlayerStat(requestSettings, statCalculator.getPlayerStat(requestSettings));
|
||||||
case TOP -> outputManager.formatTopStat(requestSettings, statCalculator.getTopStats(requestSettings));
|
case TOP -> outputManager.formatAndSaveTopStat(requestSettings, statCalculator.getTopStats(requestSettings));
|
||||||
case SERVER -> outputManager.formatServerStat(requestSettings, statCalculator.getServerStat(requestSettings));
|
case SERVER -> outputManager.formatAndSaveServerStat(requestSettings, statCalculator.getServerStat(requestSettings));
|
||||||
};
|
};
|
||||||
if (requestSettings.isAPIRequest()) {
|
outputManager.sendToCommandSender(requestSettings.getCommandSender(), statResult);
|
||||||
String msg = ComponentUtils.getTranslatableComponentSerializer()
|
|
||||||
.serialize(statResult);
|
|
||||||
requestSettings.getCommandSender().sendMessage(msg);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
outputManager.sendToCommandSender(requestSettings.getCommandSender(), statResult);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (ConcurrentModificationException e) {
|
catch (ConcurrentModificationException e) {
|
||||||
if (!requestSettings.isConsoleSender()) {
|
if (!requestSettings.isConsoleSender()) {
|
||||||
|
@ -49,7 +49,7 @@ public final class PlayerStatRequest extends StatRequest<Integer> implements Req
|
|||||||
|
|
||||||
TextComponent prettyComponent = Main
|
TextComponent prettyComponent = Main
|
||||||
.getStatFormatter()
|
.getStatFormatter()
|
||||||
.formatPlayerStat(completedRequest, stat);
|
.formatAndSavePlayerStat(completedRequest, stat);
|
||||||
|
|
||||||
String prettyString = ComponentUtils
|
String prettyString = ComponentUtils
|
||||||
.getTranslatableComponentSerializer()
|
.getTranslatableComponentSerializer()
|
||||||
|
@ -127,8 +127,6 @@ public final class RequestHandler {
|
|||||||
} else if (offlinePlayerHandler.isRelevantPlayer(arg) && requestSettings.getPlayerName() == null) {
|
} else if (offlinePlayerHandler.isRelevantPlayer(arg) && requestSettings.getPlayerName() == null) {
|
||||||
requestSettings.setPlayerName(arg);
|
requestSettings.setPlayerName(arg);
|
||||||
requestSettings.setTarget(Target.PLAYER);
|
requestSettings.setTarget(Target.PLAYER);
|
||||||
} else if (arg.equalsIgnoreCase("api")) {
|
|
||||||
requestSettings.setAPIRequest();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
patchRequest(requestSettings);
|
patchRequest(requestSettings);
|
||||||
|
@ -29,7 +29,6 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
public final class RequestSettings {
|
public final class RequestSettings {
|
||||||
|
|
||||||
private final CommandSender sender;
|
private final CommandSender sender;
|
||||||
private boolean isAPIRequest;
|
|
||||||
private Statistic statistic;
|
private Statistic statistic;
|
||||||
private String playerName;
|
private String playerName;
|
||||||
private Target target;
|
private Target target;
|
||||||
@ -49,29 +48,19 @@ public final class RequestSettings {
|
|||||||
<br>- boolean isAPIRequest
|
<br>- boolean isAPIRequest
|
||||||
|
|
||||||
@param sender the CommandSender who prompted this RequestGenerator
|
@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.sender = sender;
|
||||||
this.isAPIRequest = isAPIRequest;
|
|
||||||
target = Target.TOP;
|
target = Target.TOP;
|
||||||
playerFlag = false;
|
playerFlag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RequestSettings getBasicRequest(CommandSender sender) {
|
public static RequestSettings getBasicRequest(CommandSender sender) {
|
||||||
return new RequestSettings(sender, false);
|
return new RequestSettings(sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RequestSettings getBasicAPIRequest() {
|
public static RequestSettings getBasicAPIRequest() {
|
||||||
return new RequestSettings(Bukkit.getConsoleSender(), true);
|
return new RequestSettings(Bukkit.getConsoleSender());
|
||||||
}
|
|
||||||
|
|
||||||
public void setAPIRequest() {
|
|
||||||
this.isAPIRequest = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAPIRequest() {
|
|
||||||
return isAPIRequest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NotNull CommandSender getCommandSender() {
|
public @NotNull CommandSender getCommandSender() {
|
||||||
|
@ -49,7 +49,7 @@ public final class ServerStatRequest extends StatRequest<Long> implements Reques
|
|||||||
|
|
||||||
TextComponent prettyComponent = Main
|
TextComponent prettyComponent = Main
|
||||||
.getStatFormatter()
|
.getStatFormatter()
|
||||||
.formatServerStat(completedRequest, stat);
|
.formatAndSaveServerStat(completedRequest, stat);
|
||||||
|
|
||||||
String prettyString = ComponentUtils
|
String prettyString = ComponentUtils
|
||||||
.getTranslatableComponentSerializer()
|
.getTranslatableComponentSerializer()
|
||||||
|
@ -51,7 +51,7 @@ public final class TopStatRequest extends StatRequest<LinkedHashMap<String, Inte
|
|||||||
|
|
||||||
TextComponent prettyComponent = Main
|
TextComponent prettyComponent = Main
|
||||||
.getStatFormatter()
|
.getStatFormatter()
|
||||||
.formatTopStat(completedRequest, stat);
|
.formatAndSaveTopStat(completedRequest, stat);
|
||||||
|
|
||||||
String prettyString = ComponentUtils
|
String prettyString = ComponentUtils
|
||||||
.getTranslatableComponentSerializer()
|
.getTranslatableComponentSerializer()
|
||||||
|
Loading…
Reference in New Issue
Block a user