Skip to content

Commit 1abebce

Browse files
committed
fix(replay): actual scoreboard
1 parent 4ab804c commit 1abebce

3 files changed

Lines changed: 17 additions & 13 deletions

File tree

type.replayviewer/src/main/java/net/swofty/type/replayviewer/event/PlayerJoinEvent.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private void loadReplay(Player player, UUID replayId, InstanceContainer instance
130130
}
131131
ReplayGameMetadata gameMetadata;
132132
try (ReplayDataReader reader = new ReplayDataReader(protocolMetadata.gameMetadata().payload())) {
133-
gameMetadata = (ReplayGameMetadata) adapter.readMetadata(reader);
133+
gameMetadata = adapter.readMetadata(reader);
134134
if (reader.available() != 0) throw new IllegalArgumentException("Trailing replay metadata payload");
135135
}
136136
ReplayDescriptor descriptor = new ReplayDescriptor(
@@ -185,6 +185,9 @@ private void loadReplay(Player player, UUID replayId, InstanceContainer instance
185185
} catch (Exception e) {
186186
Logger.error(e, "Failed to load replay {}", replayId);
187187
player.sendMessage("§cThis replay is corrupt, incomplete, or unsupported.");
188+
if (player instanceof HypixelPlayer hp) {
189+
hp.sendTo(ServerType.PROTOTYPE_LOBBY);
190+
}
188191
}
189192
}
190193

type.replayviewer/src/main/java/net/swofty/type/replayviewer/playback/scoreboard/GenericReplayScoreboard.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,17 @@
1313
import java.util.ArrayList;
1414
import java.util.Date;
1515
import java.util.List;
16-
import java.util.UUID;
1716

1817
public class GenericReplayScoreboard implements ReplayScoreboard {
1918
private final ReplaySession session;
2019
private Sidebar sidebar;
21-
private UUID viewerUuid;
2220

2321
public GenericReplayScoreboard(ReplaySession session) {
2422
this.session = session;
2523
}
2624

2725
@Override
2826
public void create(Player viewer) {
29-
viewerUuid = viewer.getUuid();
3027
sidebar = new Sidebar(getTitle());
3128
sidebar.addViewer(viewer);
3229
update(session);
@@ -43,10 +40,10 @@ public void update(ReplaySession session) {
4340

4441
for (int i = 0; i < lines.size() && i < 15; i++) {
4542
sidebar.createLine(new Sidebar.ScoreboardLine(
46-
"line_" + i,
43+
"line_" + i,
4744
lines.get(i),
48-
lines.size() - i,
49-
Sidebar.NumberFormat.blank()
45+
lines.size() - i,
46+
Sidebar.NumberFormat.blank()
5047
));
5148
}
5249
}
@@ -72,12 +69,14 @@ public List<Component> getLines(ReplaySession session) {
7269

7370
lines.add(Component.empty());
7471

75-
lines.add(Component.text(session.getFormattedTime(), NamedTextColor.GREEN)
76-
.append(Component.text(" " + session.getMetadata().descriptor().serverId(), NamedTextColor.DARK_GRAY)));
72+
lines.add(Component.text("Date: ", NamedTextColor.WHITE).append(Component.text(new SimpleDateFormat("MM/dd/yyyy").format(new Date(session.getMetadata().descriptor().startTime())), NamedTextColor.GREEN)));
73+
lines.add(Component.text("Time: ", NamedTextColor.WHITE).append(Component.text(new SimpleDateFormat("HH:mm").format(new Date(session.getMetadata().descriptor().startTime())), NamedTextColor.GREEN)).appendSpace().append(
74+
Component.text("(EST)", NamedTextColor.GREEN)
75+
));
7776

7877
lines.add(Component.empty());
7978

80-
lines.add(Component.text("Game", NamedTextColor.WHITE).appendSpace().append(Component.text("BedWars", NamedTextColor.GREEN)));
79+
lines.add(Component.text("Game: ", NamedTextColor.WHITE).append(Component.text("BedWars", NamedTextColor.GREEN)));
8180
lines.add(Component.text("Mode: ", NamedTextColor.WHITE)
8281
.append(Component.text(formatMode(session.gameModeId()), NamedTextColor.GREEN)));
8382

type.replayviewer/src/main/java/net/swofty/type/replayviewer/playback/scoreboard/ReplayScoreboard.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package net.swofty.type.replayviewer.playback.scoreboard;
22

3+
import net.kyori.adventure.text.Component;
34
import net.minestom.server.entity.Player;
5+
import net.swofty.type.game.replay.api.ReplayPlaybackContext;
46
import net.swofty.type.replayviewer.playback.ReplaySession;
57

68
import java.util.List;
@@ -22,7 +24,7 @@ public interface ReplayScoreboard extends net.swofty.type.game.replay.api.Replay
2224
void update(ReplaySession session);
2325

2426
@Override
25-
default void update(net.swofty.type.game.replay.api.ReplayPlaybackContext context) {
27+
default void update(ReplayPlaybackContext context) {
2628
update((ReplaySession) context);
2729
}
2830

@@ -38,14 +40,14 @@ default void update(net.swofty.type.game.replay.api.ReplayPlaybackContext contex
3840
*
3941
* @return the scoreboard title
4042
*/
41-
net.kyori.adventure.text.Component getTitle();
43+
Component getTitle();
4244

4345
/**
4446
* Gets the current lines to display.
4547
*
4648
* @param session the replay session
4749
* @return list of lines for the scoreboard
4850
*/
49-
List<net.kyori.adventure.text.Component> getLines(ReplaySession session);
51+
List<Component> getLines(ReplaySession session);
5052

5153
}

0 commit comments

Comments
 (0)