diff --git a/pom.xml b/pom.xml index 68f5c1c..bc325c9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.extendedclip.papi.expansion.mcstatistics statistics-expansion - 2.0.0 + 2.0.1 PAPI-Expansion-Statistic PlaceholderAPI expansion for minecraft statistic placeholders diff --git a/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsExpansion.java b/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsExpansion.java index 4ffbe18..47d411f 100644 --- a/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsExpansion.java +++ b/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsExpansion.java @@ -34,8 +34,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -import java.time.Duration; -import java.time.temporal.ChronoUnit; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -47,7 +45,7 @@ public class StatisticsExpansion extends PlaceholderExpansion implements Cacheab private final String VERSION = getClass().getPackage().getImplementationVersion(); private final boolean isLegacy = !Enums.getIfPresent(Material.class, "TURTLE_HELMET").isPresent(); public static final String SERVER_VERSION = Bukkit.getBukkitVersion().split("-")[0]; - + @Override public String getAuthor() { return "clip"; @@ -100,7 +98,7 @@ public String onRequest(final OfflinePlayer offlinePlayer, String identifier) { * Time played */ case "time_played": { - return StatisticsUtils.formatTime(Duration.of(secondsPlayed, ChronoUnit.SECONDS)); + return StatisticsUtils.formatTime(secondsPlayed); } case "time_played:seconds": { @@ -139,7 +137,7 @@ public String onRequest(final OfflinePlayer offlinePlayer, String identifier) { * Time since last death */ case "time_since_death": { - return StatisticsUtils.formatTime(Duration.of(secondsSinceLastDeath, ChronoUnit.SECONDS)); + return StatisticsUtils.formatTime(secondsSinceLastDeath); } case "seconds_since_death": { @@ -278,6 +276,10 @@ private String calculateTotal(final Player player, final Statistic statistic) { continue; } + if (!isLegacy && material.name().startsWith("LEGACY") || material.name().equals("BURNING_FURNACE")) { + continue; + } + if (statistic == Statistic.MINE_BLOCK && (material.name().equals("GRASS") || material.name().equals("SOIL"))) { continue; } diff --git a/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsUtils.java b/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsUtils.java index d979e17..f344ddf 100644 --- a/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsUtils.java +++ b/src/main/java/com/extendedclip/papi/expansion/mcstatistics/StatisticsUtils.java @@ -22,12 +22,11 @@ import com.google.common.base.Enums; import com.google.common.base.Optional; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Statistic; import org.bukkit.entity.Player; -import java.time.Duration; +import java.util.StringJoiner; public class StatisticsUtils { public static int getSecondsPlayed(final Player player, final boolean isLegacy) { @@ -117,50 +116,33 @@ public static boolean isItem(final Material material, final boolean isLegacy) { } } - /** - * @author Sxtanna - */ - public static String formatTime(final Duration duration) { - final StringBuilder builder = new StringBuilder(); + public static String formatTime(long seconds) { + final StringJoiner joiner = new StringJoiner(" "); - long seconds = duration.getSeconds(); long minutes = seconds / 60; long hours = minutes / 60; - long days = hours / 24; + final long days = hours / 24; seconds %= 60; minutes %= 60; - hours %= 60; - days %= 24; + hours %= 24; - if (seconds > 0) { - builder.insert(0, seconds + "s"); - } - - if (minutes > 0) { - if (builder.length() > 0) { - builder.insert(0, ' '); - } - - builder.insert(0, minutes + "m"); + if (days > 0) { + joiner.add(days + "d"); } if (hours > 0) { - if (builder.length() > 0) { - builder.insert(0, ' '); - } - - builder.insert(0, hours + "h"); + joiner.add(hours + "h"); } - if (days > 0) { - if (builder.length() > 0) { - builder.insert(0, ' '); - } + if (minutes > 0) { + joiner.add(minutes + "m"); + } - builder.insert(0, days + "d"); + if (seconds > 0) { + joiner.add(seconds + "s"); } - return builder.toString(); + return joiner.toString(); } }