Skip to content

Commit 0772b53

Browse files
committed
🐛 Fixed formatting incorrectly putting , at the end of lists rather than as separators.
1 parent 2148a5f commit 0772b53

File tree

5 files changed

+32
-33
lines changed

5 files changed

+32
-33
lines changed

src/client/java/xyz/bitsquidd/ninja/format/FormatHelper.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.minecraft.core.BlockPos;
44
import org.jspecify.annotations.NullMarked;
55

6+
import java.util.Collection;
67
import java.util.List;
78

89
/**
@@ -23,4 +24,28 @@ public static String formatPosition(final BlockPos pos) {
2324
public static String formatRotation(final float pitch, final float yaw) {
2425
return String.format("[Pitch;%.1f Yaw;%.1f]", pitch, yaw);
2526
}
27+
28+
public static String formatList(Collection<?> entries, int maxEntries) {
29+
StringBuilder sb = new StringBuilder();
30+
sb.append("[");
31+
32+
List<String> entriesList = entries.stream().map(Object::toString).toList();
33+
int size = entriesList.size();
34+
35+
boolean tooMany = size > maxEntries;
36+
int displayed = Math.min(size, maxEntries);
37+
38+
for (int i = 0; i < displayed; i++) {
39+
if (i > 0) sb.append(",");
40+
sb.append(entriesList.get(i));
41+
}
42+
43+
if (tooMany) {
44+
sb.append("...+").append(size - maxEntries).append(" more]");
45+
} else {
46+
sb.append("]");
47+
}
48+
49+
return sb.toString();
50+
}
2651
}

src/client/java/xyz/bitsquidd/ninja/handler/PacketHandler.java

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55

66
import xyz.bitsquidd.ninja.format.PacketInfoBundle;
77

8-
import java.util.Collection;
9-
import java.util.List;
10-
118
@NullMarked
129
public abstract class PacketHandler<T extends Packet<?>> {
13-
private static final int MAX_DISPLAYED_ENTRIES = 5;
10+
protected static final int MAX_DISPLAYED_ENTRIES = 5;
1411

1512

1613
protected final Class<T> packetClass;
@@ -53,30 +50,4 @@ public final PacketInfoBundle getPacketInfo(Packet<?> packet) {
5350

5451
protected abstract PacketInfoBundle getPacketInfoInternal(T packet);
5552

56-
57-
// Helper functions:
58-
protected final String formatList(Collection<?> entries) {
59-
StringBuilder sb = new StringBuilder();
60-
sb.append("[");
61-
62-
List<String> entriesList = entries.stream().map(Object::toString).toList();
63-
int size = entriesList.size();
64-
65-
boolean tooMany = size > MAX_DISPLAYED_ENTRIES;
66-
67-
for (int i = 0; i < MAX_DISPLAYED_ENTRIES; i++) {
68-
if (i >= size) break;
69-
sb.append(entriesList.get(i));
70-
if (i > 0) sb.append(",");
71-
}
72-
73-
if (tooMany) {
74-
sb.append("...+").append(size - MAX_DISPLAYED_ENTRIES).append(" more]");
75-
} else {
76-
sb.append("]");
77-
}
78-
79-
return sb.toString();
80-
}
81-
8253
}

src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/RemoveEntitiesHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.network.protocol.game.ClientboundRemoveEntitiesPacket;
55
import org.jetbrains.annotations.NotNull;
66

7+
import xyz.bitsquidd.ninja.format.FormatHelper;
78
import xyz.bitsquidd.ninja.format.PacketInfoBundle;
89
import xyz.bitsquidd.ninja.format.PacketInfoSegment;
910
import xyz.bitsquidd.ninja.handler.PacketHandler;
@@ -23,7 +24,7 @@ public RemoveEntitiesHandler() {
2324

2425
@Override
2526
protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundRemoveEntitiesPacket packet) {
26-
String removedEntityIdList = formatList(packet.getEntityIds().stream().toList());
27+
String removedEntityIdList = FormatHelper.formatList(packet.getEntityIds().stream().toList(), MAX_DISPLAYED_ENTRIES);
2728

2829
return PacketInfoBundle.of(
2930
packetType,

src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/SetPassengersHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.network.protocol.game.ClientboundSetPassengersPacket;
55
import org.jetbrains.annotations.NotNull;
66

7+
import xyz.bitsquidd.ninja.format.FormatHelper;
78
import xyz.bitsquidd.ninja.format.PacketInfoBundle;
89
import xyz.bitsquidd.ninja.format.PacketInfoSegment;
910
import xyz.bitsquidd.ninja.handler.PacketHandler;
@@ -25,7 +26,7 @@ public SetPassengersHandler() {
2526

2627
@Override
2728
protected @NotNull PacketInfoBundle getPacketInfoInternal(ClientboundSetPassengersPacket packet) {
28-
String passengerIdList = formatList(packet.getPassengers().length > 0 ? Arrays.stream(packet.getPassengers()).boxed().toList() : List.of());
29+
String passengerIdList = FormatHelper.formatList(packet.getPassengers().length > 0 ? Arrays.stream(packet.getPassengers()).boxed().toList() : List.of(), MAX_DISPLAYED_ENTRIES);
2930

3031
return PacketInfoBundle.of(
3132
packetType,

src/client/java/xyz/bitsquidd/ninja/handler/impl/clientbound/SetPlayerTeamHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.network.protocol.game.ClientboundSetPlayerTeamPacket;
55
import org.jetbrains.annotations.NotNull;
66

7+
import xyz.bitsquidd.ninja.format.FormatHelper;
78
import xyz.bitsquidd.ninja.format.PacketInfoBundle;
89
import xyz.bitsquidd.ninja.format.PacketInfoSegment;
910
import xyz.bitsquidd.ninja.handler.PacketHandler;
@@ -36,7 +37,7 @@ public SetPlayerTeamHandler() {
3637
segments.add(PacketInfoSegment.of(Component.text("PlayerAction"), Component.text(playerAction != null ? playerAction.name() : "null")));
3738

3839
if (!packet.getPlayers().isEmpty()) {
39-
segments.add(PacketInfoSegment.of(Component.text("Players"), Component.text(formatList(packet.getPlayers()))));
40+
segments.add(PacketInfoSegment.of(Component.text("Players"), Component.text(FormatHelper.formatList(packet.getPlayers(), MAX_DISPLAYED_ENTRIES))));
4041
}
4142

4243
packet.getParameters().ifPresent(params -> {

0 commit comments

Comments
 (0)