Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.extendedclip.papi.expansion.mcstatistics</groupId>
<artifactId>statistics-expansion</artifactId>
<version>2.0.0</version>
<version>2.0.1</version>
<name>PAPI-Expansion-Statistic</name>
<description>PlaceholderAPI expansion for minecraft statistic placeholders</description>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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";
Expand Down Expand Up @@ -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": {
Expand Down Expand Up @@ -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": {
Expand Down Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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();
}
}