Reset the scoreboard in the configuration stage

This commit is contained in:
Tim203 2024-11-02 11:48:58 +01:00
parent 67a1805fa6
commit d61ad7baef
No known key found for this signature in database
3 changed files with 7 additions and 3 deletions

View file

@ -81,7 +81,7 @@ public final class WorldCache {
resetTitleTimes(false);
}
public void removeScoreboard() {
public void resetScoreboard() {
scoreboard.removeScoreboard();
scoreboard = new Scoreboard(session);
}

View file

@ -45,5 +45,11 @@ public class JavaFinishConfigurationPacketTranslator extends PacketTranslator<Cl
}
session.sendUpstreamPacket(playerListPacket);
session.getEntityCache().removeAllPlayerEntities();
// while ClientboundLoginPacket holds the level, it doesn't hold the scoreboard.
// The ClientboundStartConfigurationPacket indirectly removes the old scoreboard,
// and this packet indirectly creates the new one.
// This makes this packet a good place to reset the scoreboard.
session.getWorldCache().resetScoreboard();
}
}

View file

@ -71,8 +71,6 @@ public class JavaLoginTranslator extends PacketTranslator<ClientboundLoginPacket
DimensionUtils.fastSwitchDimension(session, fakeDim);
}
session.getWorldCache().removeScoreboard();
// Remove all bossbars
session.getEntityCache().removeAllBossBars();
// Remove extra hearts, hunger, etc.