Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa
private CraftWorldBorder clientWorldBorder = null;
private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
private long lastSaveTime; // Paper - getLastPlayed replacement API
private @Nullable CraftScoreboard scoreboardOverride;

public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
Expand Down Expand Up @@ -2517,6 +2518,14 @@ public CraftScoreboard getScoreboard() {
return this.server.getScoreboardManager().getPlayerBoard(this);
}

public @Nullable CraftScoreboard getScoreboardOverride() {
return this.scoreboardOverride;
}

public void setScoreboardOverride(@Nullable CraftScoreboard scoreboardOverride) {
this.scoreboardOverride = scoreboardOverride;
}

@Override
public void setScoreboard(Scoreboard scoreboard) {
Preconditions.checkArgument(scoreboard != null, "Scoreboard cannot be null");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public final class CraftScoreboardManager implements ScoreboardManager {
private final CraftScoreboard mainScoreboard;
private final MinecraftServer server;
private final Collection<CraftScoreboard> scoreboards = new WeakCollection<>();
private final Map<CraftPlayer, CraftScoreboard> playerBoards = new HashMap<>();

public CraftScoreboardManager(MinecraftServer server, net.minecraft.world.scores.Scoreboard scoreboard) {
this.mainScoreboard = new CraftScoreboard(scoreboard);
Expand Down Expand Up @@ -54,7 +53,7 @@ public void registerScoreboardForVanilla(CraftScoreboard scoreboard) {
}

public CraftScoreboard getPlayerBoard(CraftPlayer player) {
CraftScoreboard board = this.playerBoards.get(player);
CraftScoreboard board = player.getScoreboardOverride();
return board == null ? this.getMainScoreboard() : board;
}

Expand All @@ -66,9 +65,9 @@ public void setPlayerBoard(CraftPlayer player, CraftScoreboard scoreboard) {
}

if (scoreboard == this.mainScoreboard) {
this.playerBoards.remove(player);
player.setScoreboardOverride(null);
} else {
this.playerBoards.put(player, scoreboard);
player.setScoreboardOverride(scoreboard);
}

ServerPlayer serverPlayer = player.getHandle();
Expand All @@ -94,7 +93,7 @@ public void setPlayerBoard(CraftPlayer player, CraftScoreboard scoreboard) {

// CraftBukkit method
public void removePlayer(CraftPlayer player) {
this.playerBoards.remove(player);
player.setScoreboardOverride(null);
}

// CraftBukkit method
Expand Down
Loading