better formatting for ignoreclaim warning

This commit is contained in:
destro174 2022-02-25 21:53:28 +01:00
parent cba5fbbdf8
commit 3ae6542648
3 changed files with 46 additions and 5 deletions

View File

@ -136,7 +136,7 @@ public class Config extends AbstractConfig {
}
public static int ignoreClaimWarningDelay = 20 * 600;
public static String ignoreClaimWarningMessage = "<player> has had ignore claims on since <time>.";
public static String ignoreClaimWarningMessage = "<player> has had ignore claims on for <time>.";
public static String ignoreClaimWarningPermission = "griefprevention.ignoreclaimwarnings";
private static void miscSettings() {
ignoreClaimWarningDelay = config.getInt("settings.ignore-claim-warning-delay", ignoreClaimWarningDelay);

View File

@ -2,6 +2,7 @@ package me.ryanhamshire.GriefPrevention.alttd.tasks;
import me.ryanhamshire.GriefPrevention.GriefPrevention;
import me.ryanhamshire.GriefPrevention.alttd.config.Config;
import me.ryanhamshire.GriefPrevention.alttd.util.Utils;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template;
import net.kyori.adventure.text.minimessage.template.TemplateResolver;
@ -12,6 +13,7 @@ import org.bukkit.scheduler.BukkitRunnable;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@ -19,14 +21,13 @@ public class IgnoreClaimWarningTask extends BukkitRunnable
{
private GriefPrevention plugin;
private UUID uuid;
private String time;
private long time;
public IgnoreClaimWarningTask(GriefPrevention plugin, UUID uuid)
{
this.plugin = plugin;
this.uuid = uuid;
LocalTime localTime = LocalTime.now();
this.time = localTime.format(DateTimeFormatter.ofPattern("HH:mm"));
this.time = new Date().getTime();
this.init();
}
@ -42,7 +43,7 @@ public class IgnoreClaimWarningTask extends BukkitRunnable
if (player == null) return;
List<Template> templates = new ArrayList<>(List.of(
Template.template("player", player.name()),
Template.template("time", time)
Template.template("time", Utils.getPassedTime(time))
));
Bukkit.broadcast(MiniMessage.miniMessage().deserialize(Config.ignoreClaimWarningMessage, TemplateResolver.templates(templates)), Config.ignoreClaimWarningPermission);
this.init();

View File

@ -0,0 +1,40 @@
package me.ryanhamshire.GriefPrevention.alttd.util;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class Utils
{
public static String getPassedTime(Long time)
{
return convertTime(new Date().getTime() - time);
}
public static String convertTime(long timeInMillis)
{
return convertTime((int) TimeUnit.MILLISECONDS.toMinutes(timeInMillis));
}
private static String convertTime(int timeInMinutes)
{
int days = (int) TimeUnit.MINUTES.toDays(timeInMinutes);
int hours = (int) (TimeUnit.MINUTES.toHours(timeInMinutes) - TimeUnit.DAYS.toHours(days));
int minutes = (int) (TimeUnit.MINUTES.toMinutes(timeInMinutes) - TimeUnit.HOURS.toMinutes(hours)
- TimeUnit.DAYS.toMinutes(days));
StringBuilder stringBuilder = new StringBuilder();
if (days != 0)
{
stringBuilder.append(days).append(days == 1 ? " day, " : " days, ");
}
if (hours != 0)
{
stringBuilder.append(hours).append(hours == 1 ? " hour, " : " hours, ");
}
stringBuilder.append(minutes).append(minutes == 1 ? " minute, " : " minutes, ");
return stringBuilder.substring(0, stringBuilder.length() - 2);
}
}