Fix errors with playtime message length
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -147,7 +147,7 @@
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.20.1-R0.1-SNAPSHOT</version>
|
||||
<version>1.20.2-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
||||
@@ -11,6 +11,7 @@ import dev.heliosares.auxprotect.spigot.AuxProtectSpigot;
|
||||
import dev.heliosares.auxprotect.utils.*;
|
||||
import net.coreprotect.CoreProtect;
|
||||
import net.coreprotect.CoreProtectAPI;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.sql.SQLException;
|
||||
@@ -381,11 +382,13 @@ public class LookupCommand extends Command {
|
||||
return;
|
||||
}
|
||||
String name = users.stream().findAny().orElse(null);
|
||||
sender.sendMessage(PlayTimeSolver.solvePlaytime(rs,
|
||||
for (BaseComponent[] line : PlayTimeSolver.solvePlaytime(rs,
|
||||
params_.getAfter(),
|
||||
params_.getBefore() == Long.MAX_VALUE ? System.currentTimeMillis() : params_.getBefore(),
|
||||
name,
|
||||
plugin.getSenderAdapter(name) != null));
|
||||
plugin.getSenderAdapter(name) != null)) {
|
||||
sender.sendMessage(line);
|
||||
}
|
||||
return;
|
||||
} else if (params_.hasFlag(Flag.ACTIVITY)) {
|
||||
String uuid = sender.getUniqueId().toString();
|
||||
|
||||
@@ -15,21 +15,21 @@ import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PlayTimeSolver {
|
||||
public static BaseComponent[] solvePlaytime(List<DbEntry> entries, long startTimeMillis, long stopTimeMillis, String player, final boolean currentlyOnline) {
|
||||
public static BaseComponent[][] solvePlaytime(List<DbEntry> entries, long startTimeMillis, long stopTimeMillis, String player, final boolean currentlyOnline) {
|
||||
ComponentBuilder message = new ComponentBuilder().append("", FormatRetention.NONE);
|
||||
final int limitDays = 60;
|
||||
final int hours = (int) Math.ceil((stopTimeMillis - startTimeMillis) / 3600000D);
|
||||
if (hours - 1 > limitDays * 24) {
|
||||
message.append(Language.L.COMMAND__LOOKUP__PLAYTIME__TOOLONG.translate(limitDays));
|
||||
return message.create();
|
||||
return new BaseComponent[][]{message.create()};
|
||||
}
|
||||
StringBuilder line = new StringBuilder(ChatColor.DARK_GRAY + "" + ChatColor.STRIKETHROUGH);
|
||||
line.append(String.valueOf((char) 65293).repeat(6)).append(ChatColor.RESET);
|
||||
message.append(line + " " + Language.L.COMMAND__LOOKUP__PLAYTIME__HEADER.translate(player, Language.getOptionalS(player)) + " " + line);
|
||||
message.append("\n");
|
||||
LocalDateTime startTime = Instant.ofEpochMilli(startTimeMillis).atZone(ZoneId.systemDefault()).toLocalDateTime()
|
||||
.withMinute(0).withSecond(0).withNano(0);
|
||||
long firstTime = startTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
||||
@@ -100,6 +100,10 @@ public class PlayTimeSolver {
|
||||
newLogin = newLogout = false;
|
||||
}
|
||||
}
|
||||
List<BaseComponent[]> components = new ArrayList<>();
|
||||
components.add(message.create());
|
||||
message = new ComponentBuilder();
|
||||
|
||||
DateTimeFormatter formatterDate = DateTimeFormatter.ofPattern("ddMMM");
|
||||
DateTimeFormatter formatterDateTime = DateTimeFormatter.ofPattern("ddMMM hh a");
|
||||
for (int i = 0; i < startTime.getHour(); i++) {
|
||||
@@ -128,9 +132,11 @@ public class PlayTimeSolver {
|
||||
if (time.getHour() == 23) {
|
||||
message.append(" " + time.format(formatterDate)).color(ChatColor.BLUE).event((HoverEvent) null);
|
||||
|
||||
message.append(" (" + (Math.round(hourCount * 10.0) / 10.0) + "h)\n").color(ChatColor.GRAY)
|
||||
message.append(" (" + (Math.round(hourCount * 10.0) / 10.0) + "h)").color(ChatColor.GRAY)
|
||||
.event((HoverEvent) null);
|
||||
hourCount = 0;
|
||||
components.add(message.create());
|
||||
message = new ComponentBuilder();
|
||||
}
|
||||
}
|
||||
for (int i = counter.length; ; i++) {
|
||||
@@ -141,6 +147,7 @@ public class PlayTimeSolver {
|
||||
message.append(" " + startTime.plusHours(hours).format(formatterDate)).color(ChatColor.BLUE);
|
||||
message.append(" (" + (Math.round(hourCount * 10.0) / 10.0) + "h)").color(ChatColor.GRAY)
|
||||
.event((HoverEvent) null);
|
||||
return message.create();
|
||||
components.add(message.create());
|
||||
return components.toArray(new BaseComponent[0][0]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user